linux下编程对嵌入式设备输入命令该如何配置串口

qyangxjtu 2009-02-20 11:46:06
我想通过串口配置嵌入式设备,如write(fd, "reboot\r\n", 8);后希望设备重启

请问在初始化串口时该如何配置c_oflag,c_lflag,
在打开的时候是不是只用open("/dev/ttyS0", O_RDWR|ONONBLOCK)就可以了

现在从串口读数据是对的,即可以读到系统的启动信息,但是无法输入命令,如reboot等
在c_oflag为0,newtio.c_lflag &= ~(ICANON|ECHO|ECHOE);(原始方式)时,输入reboot的输出为r9\wt#q, 把输入长度8改为9(包括/0)后输出为r9\wt#x
配成标准模式newtio.c_lflag |= (ECHO|ICANON|ECHOE); 时,偶尔会出现以下输出(刚从非标准模式转为标准模式时)
{r
{r : not found
D"(# D"(P""P""P""D("
这是有not found这个输出,表明接收了{r命令,但是没找到该命令。所以我推断应该是采用标准模式

但不知为何,任何模式下回显都不对,也就是说输出的命令都不对

尝试将c_oflag配为其它的模式,因为不知道到底怎么配,也没得到预期的结果
...全文
119 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
qyangxjtu 2009-05-07
  • 打赏
  • 举报
回复
是因为配置出错,只要设置好波特率,起始停止位,奇偶校验位一类的就可以了
其它的都保留原来的设置

27,375

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 单片机/工控
社区管理员
  • 单片机/工控社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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