由于树莓派串口缓存一次只能缓存八个字节的数据,所以,当我们需要接受大于8字节的串口数据的时候,就需要通过软件来实现缓存。
示例:以下代码为接受串口数据后,以16进制方式打印数据
#include <stdlib.h>
#include <wiringSerial.h>
#include <wiringPi.h>
#include <stdio.h>
#include<string.h>
#include <unistd.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);
}
char cmd[128]={0};
int n=0;
while(1)
{
int i=0;
memset(cmd,0,128); //情况字符数组
while(serialDataAvail(fd)!=0)
{
char c=serialGetchar(fd); //接受一个字节
cmd[i]=c;
i++;
if(i==7) //当字节数超过8个的时候,

树莓派串口默认缓存限制为8字节,为接收更多数据,本文提供代码示例,通过软件实现超出8字节的数据缓存,并以16进制展示串口接收到的信息。

5487

被折叠的 条评论
为什么被折叠?



