树莓派4B串口通讯
前言
继上次成功以后,当我在一个新的系统重新进行树莓派串口配置时,发现怎样都无法配置成功,更痛苦的是,经过串口配置以后,重启树莓派居然无法进入系统,震惊的我尝试一整天,经历了整整其七次的重装系统以后,不得不确认,之前的方案存在某种问题,但是未能解决,有大佬知道的可以留言指导一下
同时,感谢该大佬的文章,终于成功的配置了树莓派的串口,并且有了新的认识。
大佬的文章
关于树莓派串口的资料可以直接参见大佬的文章
1、准备工作
树莓派4B
安装wiringPi库
2、添加串口使用
通过一下命令打开文件
sudo nano /boot/config.txt
在其中添加自己需要使用的串口(具体语句如下)
dtoverlay=uart2 //串口2
dtoverlay=uart3 //串口3
dtoverlay=uart4 //串口4
dtoverlay=uart5 //串口5
随后保存(ctrl+o、回车),退出(ctrl+x)
重启使用以下指令检查是否成功的打开
ls /dev/ttyAMA*
IO口对应关系:
串口 | 对应IO口 |
---|---|
uart2(ttyAMA1) | TXD(P30)RXD(P31) |
uart3(ttyAMA2) | TXD(P7)RXD(P21) |
uart4(ttyAMA3) | TXD(P10)RXD(P13) |
uart5(ttyAMA4) | TXD(P26)RXD(P23) |
注:所有IO口对应的是wiringPi的IO口编码,具体可以通过一下指令查看
gpio readall
3、代码测试
这里使用串口2进行测试,使用USB转TTL连接树莓派对应引脚与PC机后,打开Geany输入以下代码
#include "wiringPi.h"
#include "wiringSerial.h"
int main()
{
int ser;
//开启wiringPi
wiringPiSetup();
//设置串口及波特率
ser = serialOpen("/dev/ttyAMA1", 115200);
while(1)
{
//发送字符串
serialPrintf(ser, "hello I am Pi\r\n");
delay(2000);
}
//释放资源
serialClose(ser);
return 0;
}
测试结果:
4、后记
不能依照以往的惯例进行测试,也许之前只是凑巧,在失败以后别放弃,尝试查找资料(抓大佬),问题总会迎刃而解。