- 论坛徽章:
- 0
|
谢谢,dglwx,我从网上学习了一个方法。目前串口和终端都可以同时收到到数据,同时在终端中如果输入CTRL+C程序可以推出,哈哈,很好玩!
void CloseConsole(void)
{
int fp,err;
unsigned char buff[20];
unsigned char send_buff[20];
struct termios options;
printf("change1\n" ;
fp = open("/dev/console",O_RDONLY); // 改变console
ioctl(fp,TIOCCONS);
close(fp);
fp = open("/dev/ttyS0",O_RDWR|O_NOCTTY|O_NDELAY|O_NONBLOCK); //打开串口0读写
if(fp == -1) exit(0);
tcgetattr(fp,&options);
cfsetispeed(&options,B115200);
cfsetospeed(&options,B115200);
options.c_cflag |= (CLOCAL|CREAD);
tcsetattr(fp,TCSANOW,&options);
write(fp,"hello world!\n12",15);
while(1)
{
sleep(11);
while(err=ReadComPort(fp,buff,20)/*read(fp,buff,1)*/>0)
{
WriteComPort(fp, send_buff, ;
}
}
close(fp); //关闭串口0
fp = open("/dev/console",O_RDONLY); //恢复console 到串口0
ioctl(fp,TIOCCONS);
close(fp);
printf("change2\n" ;
} |
|