谁能给我一个用C语言编写的串口通讯程序,不好意思我对这方面零基础,想找个简单程序学学

谁能给我一个用C语言编写的串口通讯程序,不好意思我对这方面零基础,想找个简单程序学学,第1张

#include <咐祥stdio.h> /*标准衡简搏输入输出定义*/

#include <stdlib.h>/*标准函数库定义*/

#include "string.h"

#include <fcntl.h> /*文件控制定义*/

#include <termios.h> /*POSIX 终端控制定义*/

#include <errno.h> /*错误号定义*/

#define FALSE -1

#define TRUE 0

int OpenDev(char *Dev)

{

int fd = open( Dev, O_RDWR | O_NOCTTY)

if (-1 == fd)

{

perror("Can't Open Serial Port")

return -1

}

else

return fd

}

int main(int argc, char **argv)

{

unsigned char rbuf[4096]

struct termios newtio

int fd

int rlen

int mode = 0

newtio.c_iflag = 0

newtio.c_oflag = 0

newtio.c_cflag = B9600|CS8|CREAD|CLOCAL//波特率9600,数据8位,自己可以改,其它的流控什么的没加。

newtio.c_lflag = 0

newtio.c_cc[VTIME] = 0

newtio.c_cc[VMIN] = 1

fd=OpenDev("COM1")//输入你的串口名称

if (fd <0)

exit(0)

printf("Open serial OK\n")

tcflush(fd,TCIOFLUSH)

tcsetattr(fd, TCSANOW, &newtio)

while (1) //循环读取数据

{

write(fd, "1234567890",10)

if((rlen = read(fd, rbuf, 4096))>0)

{

printf("\nLen %d\n",rlen)

rbuf[rlen] = '\0'

printf( "%s\n", rbuf)

}

sleep(1)

}

close(fd)

exit (0)

}

别忘咐高了给分啊。。

大致过程就是

配置串口通信,包括串口号、波特率圆谨、校验位、橘滑基停止位这些信息;

打开串口,和打开文件一样,在Linux下是这样,Windows下没试过,估计也差不多;

发送数据,即写串口,就跟写文件类似;

读取串口,让困用read就行。

具体的函数和配置参数可以参考一些别人的代码。


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

原文地址:https://54852.com/yw/12475395.html

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

发表评论

登录后才能评论

评论列表(0条)

    保存