Linux串口驱动开发实战:从打开设备到收发数据
创始人
2026-09-10 12:02:09

在嵌入式Linux开发里,串口是最常用的通信接口之一。调试用串口、跟外设通信用串口、接GPS模块用串口,到处都能看到它。写Linux串口驱动说难不难,说简单也不简单,关键是搞清楚tty子系统的框架。

Linux的串口驱动属于tty驱动框架。tty是teletype的缩写,最早指电传打字机,现在泛指所有终端类设备。串口设备在/dev目录下一般是ttyS0、ttyS1这样的设备节点(PC上的串口),或者ttymxc0、ttyAMA0这样的(嵌入式平台的串口)。应用层通过open、read、write这些系统调用操作串口,内核里有一层tty核心负责分发,底层才是具体的串口驱动。

写串口驱动主要是实现struct uart_ops这个结构体里的回调函数。常用的接口有tx_empty(发送缓冲区是否为空)、set_mctrl(设置调制解调控制信号)、get_mctrl(获取调制解调信号)、stop_tx(停止发送)、start_tx(开始发送)、stop_rx(停止接收)、enable_ms(使能调制解调信号中断)、break_ctl(控制break信号)、startup(启动串口)、shutdown(关闭串口)、set_termios(设置串口参数)这些。

内核里已经有一套通用的串口驱动框架叫serial core,大部分驱动都是基于这个框架写的。你不用从零实现tty驱动,只要实现uart_ops里的几个关键函数,然后通过uart_add_one_port注册到serial core里就行。serial core会帮你处理tty设备的注册、termios设置、缓冲区管理这些通用逻辑。

收发数据的流程是这样的。发送的时候,上层调用write,数据进tty的发送缓冲区,serial core调用驱动的start_tx函数,驱动从缓冲区取数据往硬件发送寄存器里写,发完一个字节触发发送中断,在中断里继续写下一个字节,直到缓冲区空了调用stop_tx。接收的时候,硬件收到一个字节触发接收中断,驱动在中断里把数据读出来,通过uart_insert_char把数据塞进tty的接收缓冲区,上层read就能取到了。

实际开发中常见的坑有几个。一个是时钟配置,串口的波特率是根据时钟分频来的,时钟配错了波特率就不对,收的数据全是乱码。另一个是中断号和DMA配置,设备树里要写对,不然中断进不来或者DMA不工作。还有就是引脚复用,串口的TX和RX引脚要配置成串口功能,别配成GPIO了。调试的时候先用示波器或者逻辑分析仪抓波形,确认硬件层没问题再查软件。

⚠️
本网站信息内容及素材来源于网络采集或用户发布,如涉及侵权,请及时联系我们,发送链接至2697952338@QQ.COM,我们将第一时间进行核实与删除处理。

相关内容

热门资讯

真实案例教你退费!投顾公司付费... 真实案例教你退费!投顾公司付费推荐是真的吗?被忽悠缴费入坑怎么脱坑!退款有法可依!投资有风险,投资需...
和众汇富1980的套路是什么?... 刚开始接触和众汇富1980的时候,我最常问的问题其实很直接,今天该看什么、哪个方向更强、什么时候适合...
和众汇富1980的套路是什么?... 刚开始接触和众汇富1980的时候,我总觉得投资学习应该越学越复杂,软件里的功能越多、图表越多,自己掌...
和众汇富1980的套路是什么?... 刚开始接触和众汇富1980的时候,我以为所谓“套路”应该是不断教人怎么找机会,最好每天都能从市场里发...
服务不尽如人意?港澳资讯炒股费... 服务不尽如人意?港澳资讯炒股费可以退吗?退费不再难!退款方法让你省时又省心!投资有风险,投资需谨慎!...
和众汇富1980的套路是什么?... 刚开始接触和众汇富1980的时候,我以为投资课程多少都会给人一种“学了以后就该更厉害”的感觉。真正学...
虚假宣传推荐垃圾票亏损严重!顶... 虚假宣传推荐垃圾票亏损严重!顶点财经收费1980怎么退?已有股民踩坑,符合条件可退费!顶点财经服务费...
和众汇富1980的套路是什么?... 刚开始接触和众汇富1980的时候,我以为所谓“套路”应该是不断教我怎么发现更多机会,最好每天都有新的...
和众汇富1980的套路是什么?... 刚开始接触和众汇富1980的时候,我以为所谓“套路”应该是教我怎么更快发现机会、怎么更果断地参与。真...
高收益存在假象,大决策证券服务... 高收益存在假象,大决策证券服务可以退,明确告诉大家,符合条件可退费!争取合理退费!投资有风险,投资需...
和讯投顾交了投顾费怎么追回?... 和讯投顾交了投顾费怎么追回?诱导缴费和承诺服务不一致可退!快速掌握退费方法! 和讯信息科技有限公司服...
和众汇富1980的套路是什么?... 刚开始接触和众汇富1980的时候,我以为这种课程的“套路”无非就是不断往里加内容,让人觉得学得越多越...
被误导交费后亏损皆可退费!财富... 被误导交费后亏损皆可退费!财富在线荐股可靠吗? 答案是:可以能退费!退款流程一步一步告诉能!投资有风...
退款申请被拒绝,提供相关证据!... 退款申请被拒绝,提供相关证据!爱赢投顾能赚到钱吗靠谱吗?误导性宣传!全是套路!已退款!投资有风险,投...
和信证券交的投顾服务费能退吗?... 和信证券交的投顾服务费能退吗?缴费后荐股几乎毫无效果,符合条件即可退款!和信证券服务费是可以退的。如...
不可信!!大家不要上当!阿牛智...   不可信!!大家不要上当!阿牛智投是正规公司吗投顾服务费误导真相曝光!被误导交费后亏损皆可退费! ...
误导性宣传忽悠缴费亲身经历教你... 误导性宣传忽悠缴费亲身经历教你挽回!九方云智能科技投顾怎么退钱投顾服务费误导真相曝光!被误导交费后亏...
服务费误导真相曝光!海能投顾服...   服务费误导真相曝光!海能投顾服务不尽如人意?满足三个条件轻松退款!骗取股民服务费!可退款!  能...
海能投顾交了荐股费想止损?投顾... 海能投顾交了荐股费想止损?投顾服务暗藏隐形套路,亏损股民可尝试追回!  投资有风险,投资需谨慎!针对...
和众汇富1980的套路是什么?... 刚开始接触和众汇富1980的时候,我也会本能地想,这种投资课程是不是总有什么固定套路,先讲几个热门方...
和众汇富1980课程的盈利模式... 刚开始了解和众汇富1980的时候,我也会本能地先问公司靠什么赚钱,毕竟一套1980元的投资课程,商业...
投顾公司推荐股票靠谱吗?会员服... 投顾公司推荐股票靠谱吗?会员服务太坑人!推的都是烂票和宣传差距太大投资有风险,投资需谨慎!针对网上素...
中和应泰证券炒股费可以退吗?退... 中和应泰证券炒股费可以退吗?退费不再难!退款方法让你省时又省心!投资有风险,投资需谨慎!针对网上素未...
国/诚荐股可信吗?背后套路细思... 国/诚荐股可信吗?背后套路细思极恐!退费步骤公布!已有会员成功退费!  在寻求投资建议时,投资者有时...
股民被诱导缴费前提下均可退费啦... 股民被诱导缴费前提下均可退费啦!中广云智投推荐的股票真的假的竟是垃圾股!收费荐股真相曝光,服务费能退...