当前位置: 技术问答>linux和unix
请大家帮忙讨论一段串口程序,谢谢!!
来源: 互联网 发布时间:2015-03-23
本文导语: 小弟自编了一段很简单的串口通信程序,名字叫serial.c,用gcc -lpthread -g serial.c -o test编译后用GDB调试。程序流程为发出一个字符给接在串口上的设备(单片机),单片机回送一个字符,当程序收到这个字符...
小弟自编了一段很简单的串口通信程序,名字叫serial.c,用gcc -lpthread -g serial.c -o test编译后用GDB调试。程序流程为发出一个字符给接在串口上的设备(单片机),单片机回送一个字符,当程序收到这个字符,程序结束。程序中启动了两个线程。辅助线程不停用多路I/O转接函数循环监视串口,看串口是否有数据到达。如果有数据到达,发出信号通知主线程,由主线程的信号处理句柄接收数据。而主线程中的工作是对串口做好设置,安装好信号处理句柄,由键盘输入字符并经串口发送出去。但调试过程中错误百出,我真是不知如何是好,程序代码如下,请高手帮我分析,错误的地方都加了注释。
#include
#include
#include
#include
#include
#include
#include
#define BAUDRATE B2400
#define SERIALCOM "/dev/ttyS1"
#define _POSIX_SOURCE 1
#define MYSIG 34
pthread_t ThreadWatch;
int comfd;
void signal_handler_IO (int status);
void WatchComm() ;
int res;
char buf[255];
main()
{
struct termios oldtio,newtio;
struct sigaction saio;
comfd = open(SERIALCOM, O_RDWR ¦ O_NOCTTY ¦ O_NONBLOCK);
if (comfd
#include
#include
#include
#include
#include
#include
#include
#define BAUDRATE B2400
#define SERIALCOM "/dev/ttyS1"
#define _POSIX_SOURCE 1
#define MYSIG 34
pthread_t ThreadWatch;
int comfd;
void signal_handler_IO (int status);
void WatchComm() ;
int res;
char buf[255];
main()
{
struct termios oldtio,newtio;
struct sigaction saio;
comfd = open(SERIALCOM, O_RDWR ¦ O_NOCTTY ¦ O_NONBLOCK);
if (comfd