树莓派与串口通信
第一步进行相关参数配置
/*修改cmdline.txt文件*/
1.cd /boot/ //进入该目录下打开cmdline.txt文件
![在这里插入图片描述](https://img-blog.csdnimg.cn/20210113224810302.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2JveWJz,size_16,color_FFFFFF,t_70#pic_center)
2.sudo vi cmdline.txt
删除[]之间的部分
删掉里面的 console=serial1,115200
dwc_otg.lpm_enable=0 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait
3.修改inittab 文件
cd /etc/
sudo vi inittab
注释最后一行内容,在前面加上;
我这里使用的是3B的树莓派每一个人的文件下不一定相同大家可以根据自己的在网上看一下相关配置资料
4.配置好这里数据最后我们在重新启动一下进行更新就可以了
sudo reboot 重启
二、常用的相关函数
三、代码测试
上面我们进行了相应的配置下面我们就用一些简单的代码来实现树莓派与Windows之间的串口通信
#include<stdio.h>
#include<stdlib.h>
#include<wiringSerial.h>
#include<wiringPi.h>
//注意包含相应函数的头文件
int main(void)
{
int fd;
int cmd;
if(wiringPiSetup()==-1) //初始化判断
{
printf("初始化失败!\n");
exit(-1);
}
fd=serialOpen("/dev/ttyAMA0",9600); //串口默认"/dev/ttyAMA0"波特率9600
if(fd==-1)
{
printf("open error\n");
exit(-1);
}
while(1)
{
//进行串口数据的判断并打印接受到的数据
/* while(serialDataAvail(fd)!=-1)
{
cmd=serialGetchar(fd);
printf("cmd=%d\n",cmd);
}*/
serialPutchar(fd,'Y');
delayMicroseconds(1000000); //每秒写入一个字符
//如果我们想进行字符串之间的传送查看相应的函数使用就好了
//serialPuts(fd,"xaio yin student");
}
serialclose(fd);
return 0;
}
*注意编译的时候要加上相应的库连接
gcc serial.c -lwiringPi
![在这里插入图片描述](https://img-blog.csdnimg.cn/20210113231303125.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2JveWJz,size_16,color_FFFFFF,t_70)
打开串口工具观察自己的代码看是否实现相应的功能
在串口使用的时候我们要注意波特率的选择应该和我们编程中的数据相同 在这里我们选择的是9600