赞
踩
从树莓派的相关资料我们可以看到,树莓派有两个串口可以使用。
当我们需要用串口实现树莓派和stm32或其他开发板的通信,则需要将硬件串口给GPIO使用。但默认的硬件串口是分配给蓝牙模块使用的,而性能较差的mini串口是分配给GPIO串口 TXD0、RXD0。
接下来就是要来解决这个问题。
在终端中输入该命令
ls /dev -al
找到主串口和辅助串口对应的是mini串口还是硬件串口。大多数还没配置的应该跟我一样是如下的对应关系。
首先先得确定config.txt文件在哪?这是一个大坑,在大多数教程中,他们的config.txt文件在 /boot 目录下,但是,我虽然有config.txt,但是我打开后,里面确是一片空白。
在树莓派4B中,他的config.txt文件是放在了 /boot/firmware 目录中。
# 这里备份一个config.txt文件,等下就算改乱了,也可以备份回来
sudo cp config.txt config.txt.bak
# 将下面两行代码添加到config.txt文件最后
dtoverlay=pi3-miniuart-bt
force_turbo=1
通过 gpio readall 命令查看gpio口TX和RX的位置。
我们把USB转TTL的RX接在树莓派的TX上,将USB转TTL的TX接在树莓派的RX上,然后再将他们共地,接线就好了。
#include <stdio.h> #include <wiringPi.h> #include <wiringSerial.h> #include <unistd.h> //有这个头文件才能使用sleep函数 int main() { int fd; int i; if(wiringPiSetup()<0) { return 1; } // 这里波特率设为115200,使用的串口是ttyAMA0 if((fd=serialOpen("/dev/ttyAMA0",115200))<0) { return 1; } //循环打印输入20次 for(i=0;i<20;i++) { printf("serial test output ...\n"); serialPrintf(fd,"abcd12345"); sleep(1); } serialClose(fd); return 0; }
将代码写在一个.c文件,然后再用gcc去编译生成可执行文件,关于这部分我这里就不再赘述。还有关于wiringPi库的下载,也请各位去查阅相关资料,这里也不讲解。
这样关于树莓派与pc端通信的demo就完成了。
还有更多关于串口的玩法还可以学习下这篇博客。里面讲解了如何打开树莓派4B的其他串口,实现树莓派内串口的相互连接通信。
参考博客:
感谢你的收看,如果对你有帮助的话,可以点个关注加点赞,希望你们能少走一点弯路。
赞
踩
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。