linux下多串口的问题?
请问,我的开发板有多个串口。有两个串口需要一直工作。COM0接收传感器发过来的数据,COM1与上位机交互。有些命令COM1还要转发给COM0。我只会一个串口如COM0接收...
请问,我的开发板有多个串口。有两个串口需要一直工作。COM0接收传感器发过来的数据,COM1与上位机交互。有些命令COM1还要转发给COM0。我只会一个串口如COM0接收数据什么的。。请问两个串口怎么让他们同时工作?而且还要让一个串口转发数据给另一个呢?求解答。
展开
推荐于2016-07-06
展开全部
你open俩串口就OK了
至于转发数据的话 你read一个串口的数据在buf里 判断是否转发的 是的话就write buf到另一个串口里 很简单
int com0_fd = open(...) ;
int com1_fd = open(...) ;
tcgetattr() tcsetattr()....
.....
char buf[1024] ;
int length = read(com0_fd , buf , 1024) ;
判断是否转发的
是的话
write(com1_fd , buf, length);
当然 实际写的时候不是这么简单的流程 你可能给俩串口开俩线程 用锁来控制同步 通过全局数据结构体传递数据 串口的读函数可能会用到select等。
至于转发数据的话 你read一个串口的数据在buf里 判断是否转发的 是的话就write buf到另一个串口里 很简单
int com0_fd = open(...) ;
int com1_fd = open(...) ;
tcgetattr() tcsetattr()....
.....
char buf[1024] ;
int length = read(com0_fd , buf , 1024) ;
判断是否转发的
是的话
write(com1_fd , buf, length);
当然 实际写的时候不是这么简单的流程 你可能给俩串口开俩线程 用锁来控制同步 通过全局数据结构体传递数据 串口的读函数可能会用到select等。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询