材料
- 树莓派4
- win 10
- minicom串口助手测试
1.打通树莓派的串口通讯
1.外设IO口定义说明
从树莓派的相关资料我们可以看到,树莓派有两个串口可以使用,一个是硬件串口(/dev/ttyAMA0),另一个是mini串口(/dev/ttyS0)。硬件串口有单独的波特率时钟源,性能好,稳定性强;mini串口功能简单,稳定性较差,波特率由CPU内核时钟提供,受内核时钟影响。
树莓派(3/4代)板载蓝牙模块,默认的硬件串口是分配给蓝牙模块使用的,而性能较差的mini串口是分配给GPIO串口 TXD0、RXD0。
在开始前说明以下几点:
- 树莓派UART端口的位置:TXD位于HEAD-8;RXD位于HEAD-10;GND位于HEAD-6(可选其他GND,14也可)。
- 树莓派的TXD应接USB转串口设备的RXD,当然如果测试失败请交换RXD和TXD的顺序。
2.修改串口映射
- serial配置
输入命令$ ls /dev -al
查看默认的串口分配方式,如下图所示
由于硬件串口分配给板载蓝牙使用,所以要释放掉,并设置硬件串口分配给GPIO串口
首先登陆终端后,输入sudo raspi-config
命令进入树莓派的系统配置界面,选择第五个选项
接着进入p6 Serial,如下图所示
选择关闭串口登陆功能,打开硬件串口调试功能
完成后出现下图的提示界面,即为OK
serial0 GPIO
serial1 蓝牙模块
3.设置硬件串口为GPIO串口
接着将串口配置为GPIO串口
输入$ sudo vim /boot/config.txt
命令
进入vim编辑
将
dtoverlay=pi3-miniuart-bt
和
force_turbo=1
写入到最后,如下图
保存后退出vim
重启树莓派,输入ls /dev -al
,可以发现此时两个串口已经互相换了位置,如下图
4.禁用控制台功能
$ sudo systemctl stop serial-getty@ttyAMA0.service
$ sudo systemctl disable serial-getty@ttyAMA0.service
5.查看波特率
$ sudo stty -F /dev/ttyAMA0
波特率需要是9600,假如不是9600就要修改
6.修改波特率
$ sudo vim /boot/cmdline.txt
删除console=serial0,115200
字段
重启树莓派,再次查看波特率
上面所有配置完成之后,可以使用树莓派与其他硬件进行串口通信了。
2.利用minicom串口助手测试
在树莓派上安装配置minicom
- 安装minicom
输入sudo apt-get install minicom
安装
- 配置minicom
输入sudo minicom -s
选择第三个Serial port setup
进入配置界面之后
将输入A
将Serial Device
中的端口修改成/dev/ttyAMA0
同样输入E
按照提示选择9600
配置完如下图所示:
敲下回车确认,并选择Save setup as dfl
将配置改为minicom的默认配置
出现下图则为配置成功:
最后选择Exit from minicom
退出minicom
在pc端下载SSCOM串口调试助手
将树莓派的IO口通过USB转TTL模块接到PC端上,打开串口调试助手
选择端口,我这是COM5
,然后将波特率调整为9600
最后选中端口,打开串口
测试
测试一:
在PC端输入值并点击发送,
可以看到在树莓派上接收到了相应的字符串
测试二:
在树莓派界面随意敲下字符,
可以从PC端的串口调试工具中看到每个输入的字符,以单个字符的形式接收。
3.最后
到这里已经实现了树莓派的串口通讯,但是这种方法仅是测试用,要实现硬件通讯抛开PC端和PC外设的控制处理,这就要等之后利用python去实现,这方面的等之后再讲。