请教,怎么向linux下串口发送16进制数?比如0xFA之类的

请教,怎么向linux下串口发送16进制数?比如0xFA之类的,第1张

在程序中打开你的串口设备,int fdfd = open("/dev/ttyS1",O_RDWD)

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

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

write(fd,buf,4)

直接往你的串口写四个字节的数就可以了,在你的另一个程序中读取你往串口写的那几个数,十六进制打印出来就可以了。

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)

这样就可以了。

这个。。。为了避免在信息里不能出现保留字,所以它只能通过字符发送,比如有个0x0d 0x0a那就完了,自己写个转换函数么

void UncharToHex(char *data,unsigned char sourcedata)

{

unsigned char a = sourcedata >>4

data[0] = a >9? 'A'+ a -10:'0' + a

a = sourcedata &0x0f

data[1] = a >9? 'A'+ a -10:'0' + a

}

data是出口参数,当指针传递用- -!


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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存