
#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就行。
具体的函数和配置参数可以参考一些别人的代码。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)