项目场景:
项目需要通过串口建立树莓派4B与STM32的通信
问题描述:
尽管已经有很多教程,但总有点问题,因此,在此记录一下用于树莓派4B的串口调试实际操作过程
步骤:
第一步:启动mini UART 设备
(1)查看设备文件
执行ls -l /dev
指令,设备列表如图,其中serial0-> ttyS0是我们所需要的串口设备,若没有此项,则需先按下面(2)(3)步启动此项。
(2)启动串口设备
执行sudo raspi-config
命令,Interfacing Options——serial——yes——reboot,则可启用串口硬件。
(3)检测是否启动
A:执行上述(1)查看
B:执行sudo nano /boot/config.txt
指令,查找‘enable_uart=1’,若有则可,若无,添加即可
第二步:树莓派安装串口工具
(1)安装minicom
执行sudo apt-get install minicom
指令,安装minicom软件
(2)配置minicom
A:执行sudo minicom -s
指令,进入Serial port setup,
B:关闭F项,即硬件流控制设为No
C:设置E项的波特率(注意:9600/115200均可,但需要与通信设备(如:电脑)上的串口工具波特率设置相同)
D:至关重要,Serial Device:/dev/NAME,这个NAME必须与设备文件中的设备名相同,如上图,这里应当是ttyS0。
注:
C、D两步可用语句:minicom -D/dev/ttyS0 -b 9600
完成,-b设置波特率,-D设置设备
第三步:配置环境文件
这个是教材上说的,我就直接按部就班执行了
(1)进入 /boot/cmdline.txt 文件
执行sudo nano /boot/cmdline.txt
注释掉原文,替换为dwc_otg.lpm_enable=0 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline rootwait
(2)进入 /etc/inittab 文件
执行 sudo nano /etc/inittab
注释掉最后一行#T0:23:respawn:/sbin/getty -L ttyAMA0 115200 vt100
第四步:检验是否设置成功
我用电脑测试
(1)设置好电脑端的串口工具(如XCOM)
必须与minicom设置的波特率一致
(2)使用USB转TTL工具连接电脑与树莓派
三根线就可以,40引脚的树莓派接线与下图相同,注意TX要接USB转TTL工具的RX,RX接TX,GND起共地作用
(3)电脑发送指令给树莓派
A:执行sudo minicom
打开minicom
B:输入123,点击发送
(4)树莓派发送指令给电脑
A:设置minicom打开回显,Ctrl+A再按E,即可打开
B:在minicom中输入qqq,电脑端接受到qqq
改进
上述方法虽然可以调试好,但由于minicom每次默认打开的不是串口硬件,每次都需要重新配置,因此我改了其配置文件
配置文件在/etc/minicom
文件夹下,但是直接打开修改不了
因此还是用指令改吧
执行sudo nano /etc/minincom/minirc.dfl
添加行pr port /dev/ttyS0
Ctrl+S保存,Ctrl+X退出,再打开就好了
树莓派与STM32连接
按照改进方法,修改串口至ttyUSB0,使用USB转TTL模块连接STM32,USB接口接树莓派,杜邦线连接树莓派的串口引脚即可