凡亿助教-小云
凡事用心,一起进步
打开APP
公司名片
凡亿专栏 | ARM串口配置指南:三步让设备说话!
ARM串口配置指南:三步让设备说话!

想让ARM芯片的串口正常工作?别被复杂术语吓住!本文用最直白的方式,拆解硬件到软件的完整配置流程,让你3分钟掌握核心步骤。

1.png

一、硬件准备:先让电路“连通”

确认IO口复用关系

多数ARM芯片的UART引脚默认不是串口功能,需通过寄存器配置切换(如海思芯片需修改GPHCON寄存器)。

检查电路图,确保TX/RX引脚未被其他功能占用(如GPIO、USB等)。

连接外设

串口线需交叉连接:MCU的TX接外设的RX,RX接TX,GND必须共地。

若使用USB转串口模块,注意模块的TX/RX与芯片引脚对应(如CH340模块需交叉连接)。

二、寄存器配置:给芯片“发指令”

设置GPIO模式

将对应引脚设为UART功能(如S3C2410需配置GPHCON寄存器,将GPH2/GPH3设为TXD0/RXD0)。

禁用上下拉电阻(如GPA0PUD寄存器清零)。

配置UART核心参数

数据格式:8位数据位、无校验、1位停止位(通过ULCON寄存器设置)。

波特率:根据时钟频率计算除数(如PCLK=100MHz时,115200波特率需设置UBRDIV=53,UFRACVAL=4)。

收发模式:选择轮询或中断(如UCON寄存器设为轮询模式)。

禁用流控(可选)

若无需硬件流控,关闭RTS/CTS信号(如UMCON寄存器清零)。

三、软件驱动:让系统“识别”串口

内核设备树修改(Linux系统)

在设备树文件(如.dts)中添加UART节点,指定引脚和时钟参数。

重新编译内核并烧录,系统启动后会在/dev/下生成设备文件(如/dev/ttyAMA0)。

用户空间编程

打开设备:使用open("/dev/ttyAMA0", O_RDWR)获取文件描述符。

设置参数:通过termios结构体配置波特率、数据位等(如cfsetispeed(&options, B115200))。

读写数据:用read()和write()函数收发数据,或使用轮询方式检查状态寄存器(如UTRSTAT的TX/RX空标志)。

关键注意事项

时钟频率:波特率计算必须基于实际时钟源(PCLK或外部UCLK)。

权限问题:Linux下需确保用户有/dev/ttyAMA*的读写权限(可通过chmod或用户组配置)。

调试工具:使用逻辑分析仪或示波器检查TX/RX引脚电平,确认数据是否发送/接收。


本文凡亿教育原创文章,转载请注明来源!

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表凡亿课堂立场。文章及其配图仅供工程师学习之用,如有内容图片侵权或者其他问题,请联系本站作侵删。
相关阅读
进入分区查看更多精彩内容>
精彩评论

暂无评论