求助:Linux下C语言如何向串口发送16进制数据

求助:Linux下C语言如何向串口发送16进制数据,第1张

Linux特点是所有都是文件

包括串口设备

首先 找到你串口对应的设备 一般是 /dev/ttyS1

当然 也可能是别的 需要你自己确认硬件。

然后 比如你要发送0x01,0x02,0x03,0x04,

int fd fd = open("/dev/ttyS1",O_RDWD)

char buf[256]={0x01,0x02,0x03,0x04}

write(fd,buf,4)

close(fd)

这样就可以了。

串口发送的数据是8位的,最大为255,就是FF,如果要发送大于255的数,必须变成几个字节发送,例如要发送十进制2315,就要将数据拆分 data(0)=2315/256data(1)=2315%256这样就拆分开数据,再将数据发送出去。

FILE * f = fopen("/dev/tty1", "rb")

unsigned char c = 0

fread(&c, 1, 1, f)

printf("recv: %x\n", c)

...

fclose(f)

当然,首先要先设定一下串口,网上查一下设定即可,比如9600波特率之类


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/8726858.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-20
下一篇 2023-04-20

发表评论

登录后才能评论

评论列表(0条)

保存