各位帮忙,串口读写问题?

Memcol 2004-01-13 12:59:10
我给一串口写入一数据,按协议应该返回02,04,00,04不为零的四个字符。但我现在返回的是四个零。我一读就是四个零。请问我串口哪儿初始化错误拉。在c_iflag
,还是c_cflag,c_oflag.我写入保证是正确的。我现在外面出差,弄不完回不了家。各位帮帮忙?
...全文
31 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
daidai_____DD 2004-01-14
  • 打赏
  • 举报
回复
void initcum()
{
struct termios cum0;
unsigned char echo[6];
int handle;
handle=open(CUM0,O_RDWR|O_NOCTTY);
if (handle<0)
{printf("OPEN CUM0 ERROR!\n");exit(-1);}
tcgetattr(handle,&cum0);//不需要的。
bzero(&cum0,sizeof(struct termios));///////特别重要!一定要将结构清0。
cum0.c_cflag=B1200|~CRTSCTS|CS8|CLOCAL|CREAD;
cum0.c_cflag|=(PARENB);
cum0.c_oflag=0;
cum0.c_lflag=0;
cum0.c_cc[VMIN]=0;
cum0.c_cc[VTIME]=9;
cum0.c_iflag&=~(IXON|IXOFF);//不设置软件流控
cfsetispeed(&cum0,B1200);
cfsetospeed(&cum0,B1200);
tcsetattr(handle,TCSANOW,&cum0);
outb(0x03,0x3f8+3);//很久以前写的,不知道这句话是什么意思了。要用这句话,需要调用ioperm.
}
这是我的初始化过程,可能你用得上。
hero249 2004-01-13
  • 打赏
  • 举报
回复
设置一下:
buf.c_lflag$=~(ECHO|ICANON|IEXTEN|ISIG);
buf.c_iflag&=~(BRKINT|ICRNL|INPCK|ISTRIP|IXON);
buf.c_cflag|=&~(CSIZE|PARENB);
Memcol 2004-01-13
  • 打赏
  • 举报
回复
帮帮忙?

23,116

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
  • 应用程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧