13.使用树莓派串口与外设模块通信 | 您所在的位置:网站首页 › 树莓派nano保存和退出 › 13.使用树莓派串口与外设模块通信 |
从树莓派的相关资料我们可以看到,树莓派有两个串口可以使用,一个是硬件串口(/dev/ttyAMA0),另一个是mini串口(/dev/ttyS0)。硬件串口有单独的波特率时钟源,性能好,稳定性强;mini串口功能简单,稳定性较差,波特率由CPU内核时钟提供,受内核时钟影响。 树莓派(3/4代)板载蓝牙模块,默认的硬件串口是分配给蓝牙模块使用的,而性能较差的mini串口是分配给GPIO串口 TXD0、RXD0。 运行以下命令可以查看到默认的串口分配方式: ls /dev -al 由于硬件串口分配给板载蓝牙使用,所以我们要释放掉,并且设置硬件串口分配给GPIO串口。 1.ssh登录树莓派系统之后 sudo raspi-config 进入树莓派系统配置界面,选择第五个Interfacing Options: 进入P6 Serial 选择关闭串口登录功能,打开硬件串口调试功能: 完成后提示以下界面,按OK 退出raspi-config设置,并根据提示重启树莓派。 2.设置硬件串口为GPIO串口 编辑/boot目录下的config.txt文件 sudo nano /boot/config.txt 添加下面两行到最后: dtoverlay=pi3-miniuart-bt force_turbo=1 修改后的如下图片所示 保存:Ctrl+O,退出Ctrl+X。 重启树莓派 sudo reboot 重启树莓派后,再次输入ls /dev -al,可以看到两个串口已经互相换了位置: 3.minicom串口助手测试 安装minicom sudo apt-get install minicom 安装完成后启动minicom minicom -D /dev/ttyAMA0 -b 9600 其中-D表示选择串口/dev/ttyAMA0,-b 设置波特率为9600,此参数可以不用设置,默认115200。 打开串口就可以通过USB转TTL模块来传输数据了。 退出minicom的操作比较麻烦,根据提示,需要先按Ctrl+A,再按Z,弹出以下菜单, 接着按X,最后选YES按回车确定。 USB转TTL模块连接如下图: 4.C语言测试代码,打印hello world! 代码如下: #include #include #include int main() { int fd; if(wiringPiSetup() if((fd = serialOpen("/dev/ttyAMA0",9600)) printf("serial test start ...n"); serialPrintf(fd,"Hello World!!!n"); while(1) { serialPutchar(fd,serialGetchar(fd)); } serialClose(fd); return 0; } 新建testCom.c文件,并把上面的代码复制进去 nano testCom.c 保存:Ctrl+O,退出Ctrl+X。 使用gcc编译器来编译程序: gcc testCom.c -o test -lwiringPi 运行程序 ./test 也可以从串口发送数据给树莓派,树莓派会直接返回给串口显示。 注意:如果出现了显示乱码的情况,请检查一下波特率,需要设置为9600,与以上代码对应。 |
CopyRight 2018-2019 实验室设备网 版权所有 |