树莓派和电脑之间的串口通信
初次使用树莓派串口编程,需要配置:
/* 修改 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
sudo reboot //重启
使用时需要包含头文件:#include <wiringSerial.h>
#include <stdio.h>
#include <stdlib.h>
#include <wiringPi.h>
#include <wiringSerial.h>
int main()
{
int fd; //Linux 的思想是:将一切 IO设备,都看做文件,fd就是代表串口抽象出来的文件
int cmd;//用来存放接收到的字节数据
wiringPiSetup();//端口初始化
fd = serialOpen("/dev/ttyAMA0",9600);//打开并初始化串口,波特率9600
if(fd == -1){
printf("打开串口失败\n");
exit(-1);
}
while(1){
while(serialDataAvail(fd) != -1){//获取串口缓存中可用的字节数。没有则返回-1
cmd = serialGetchar(fd);//从串口读取一个字节数据返回。如果串口缓存中没有可用的数据,则会等待10秒,如果10后还有没,返回-1。所以,在读取前,做好通过serialDataAvail判断下。
printf("get data:cmd = %d\n",cmd);
}
//serialPutchar(fd,'a');//发送一个字节
//serialPuts(fd,"Hello world\r\n");//发送一个字符串 \r\n意思是回车加换行
//delayMicroseconds(1000000);//一百万微秒=一秒
}
return 0;
}