求助:关于LINUX串口通信设置

dhxjyu 2012-12-22 03:08:39
下面是LINUX串口通信设置的一些问题。 希望大家帮我解释下那个规范模式输入和行模式输入是什么意思?在实际使用串口通信中,这两个东西运行后的表现是什么?



本地项
本地模式成员 c_lflag 控制输入字符如何被串行驱动使用。一般你设置 c_lflag 成员为 canonical 或 raw 输入方式。



表 6 - c_lflag成员常数 常数 描述
ISIG 使SIGINTR, SIGSUSP, SIGDSUSP, SIGQUIT等信号作用
ICANON 设定规范canonical(或行式raw)
XCASE Map uppercase /lowercase (废除)
ECHO 回显输入字符
ECHOE 回显擦除字符 BS-SP-BS
ECHOK 在删除字符后,回显 NL
ECHONL 回显 NL
NOFLSH 不在中断或退出字符后刷新输入缓冲
IEXTEN 扩展函数作用

ECHOCTL 以^char方式回显控制字符和以~?方式显示删除字符
ECHOPRT 回显提示有删除字符
ECHOKE BS-SP-BS整行,在有行删除时
FLUSHO 刷新输出
PENDIN 在下次读或输入时,将未决字符重打
TOSTOP 传送SIGTTOU信号作为背景

选择规范方式输入
规范方式输入是行式操作的。输入字符存放于一用户可编辑的缓冲中,直到接受到CR (回车)或 LF (进行)。

当选择这个模式时,你通常选择ICANON, ECHO, and ECHOE options:

options.c_lflag |= (ICANON | ECHO | ECHOE);
选择行方式输入
行式输入是不经处理的。输入字符在接受到后就直接传递,保持原样不处理。一般当你用行方式输入时,你需要去除 ICANON, ECHO, ECHOE, and ISIG 项:

options.c_lflag &= ~(ICANON | ECHO | ECHOE | ISIG);
关于回显的说明
决不 使用输入回显 (ECHO, ECHOE) ,当传送指令到一MODEM或其它计算机时,因为如果对方也回显字符的话,你就造成了在两个串口间反馈死循环!

...全文
361 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

1,318

社区成员

发帖
与我相关
我的任务
社区描述
主要是开发驱动技术
社区管理员
  • 驱动程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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