前言
参考博文
https://www.cnblogs.com/lulipro/p/5992172.html
1.wiringPi库
通过调用树莓派自带的wiringPi库来实现串口通讯,查看树莓派是否已装wiringPi,使用gpio -v来查看,如已安装会显示内容如下:
查看树莓派所有管脚gpio readall
2.wiringPi库串口通信
初次使用树莓派串口编程,需要配置,默认串口作为操作系统启动打印信息使用。
1.修改 cmdline.txt文件
>cd /boot/
>sudo vim cmdline.txt
删除【】之间的部分
dwc_otg.lpm_enable=0 【console=ttyAMA0,115200】 kgdboc=ttyAMA0,115200 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline rootwait
2.修改 inittab文件 如没有此文件跳过
>cd /etc/
>sudo vim inittab
注释掉最后一行内容:,在前面加上 # 号
#T0:23:respawn:/sbin/getty -L ttyAMA0 115200 vt100
3.sudo reboot 重启
3.测试程序
#include <wiringPi.h>
#include <wiringSerial.h>
#include <stdio.h>
#include <string.h>
#include <unistd.h>
char txbuf[128]="recv data";
char rxbuf[128]={0};
int main()
{
wiringPiSetup();
int fd=serialOpen("/dev/ttyAMA0",9600);
while(1)
{
if(serialDataAvail(fd) >=1) //如果串口缓存中有数据
{
read(fd,rxbuf,128);
printf("%s\r\n",rxbuf);
write(fd,txbuf,strlen(txbuf));
}
}
return 0;
}
4.注意
使用wiringPi库编程需要加上-lwiringPi,例如
gcc uart_test.c -lwiringPi