一、树莓派串口配置
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.sudo reboot 重启(这步之后有些树莓派就可以与电脑通信了,但我的不行)
3.上面步骤如果不行参考这篇博文:https://blog.csdn.net/qq_40388909/article/details/79438317
二、常用wiringPi串口函数
感谢作者:https://www.cnblogs.com/lulipro/p/5992172.html
三、树莓派与PC机通信
1.树莓派向电脑端发送数据
#include <stdlib.h>
#include <wiringSerial.h>
#include <wiringPi.h>
#include <stdio.h>
int main()
{
int fd;
if(wiringPiSetup() == -1)
{
printf("硬件接口初始化失败!\n");
exit(-1);
}
fd=serialOpen("/dev/ttyAMA0",9600);//打开并初始化串口,波特率9600
if(fd != -1){
printf("serial open success\n");
printf("fd=%d\n",fd);
}
while(1)
{
serialPutchar(fd,'v');//发送数据
delayMicroseconds(1000000);
serialPrintf(fd,"fuck!");
delayMicroseconds(1000000);
serialPuts(fd,"you are a lucky dog!");
delayMicroseconds(1000000);
}
return 0;
}
2.电脑端给树莓派发送数据
#include <stdlib.h>
#include <wiringSerial.h>
#include <wiringPi.h>
#include <stdio.h>
int main()
{
int fd;
int ret;
if(wiringPiSetup() == -1)
{
printf("硬件接口初始化失败!\n");
exit(-1);
}
fd=serialOpen("/dev/ttyAMA0",9600);//打开并初始化串口,波特率9600
if(fd != -1){
printf("serial open success\n");
printf("fd=%d\n",fd);
}
while(1)
{
while(serialDataAvail(fd) !=-1)//判断是否有数据发送过来
{
ret=serialGetchar(fd);
printf("ret=%d\n",ret);
}
}
return 0;
}