社区
Linux/Unix社区
帖子详情
关于linux下串口通讯中回车的问题.
super_max
2009-07-30 03:50:51
我有如下问题请各位LINUX高手指教:
我的程序是跑在linux下的串口通讯程序,通讯一方是我的LINUX程序,另一方是个单片机.
他给我发送数据的时候现在我必须让他在数据的末尾再另加发一个回车的ASIC码我才能收到,否则收不到,这是怎么回事情啊?
...全文
1091
11
打赏
收藏
关于linux下串口通讯中回车的问题.
我有如下问题请各位LINUX高手指教: 我的程序是跑在linux下的串口通讯程序,通讯一方是我的LINUX程序,另一方是个单片机. 他给我发送数据的时候现在我必须让他在数据的末尾再另加发一个回车的ASIC码我才能收到,否则收不到,这是怎么回事情啊?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
11 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
lddnqx
2012-06-01
打赏
举报
回复
不知道楼主的问题解决了吗 我也遇到这种情况 求指教
asd159357321
2011-09-16
打赏
举报
回复
楼主 我也想在Linux下编写一个可以与单片机通信的程序 请问你是只用C编的 还是用QT什么的编写的串口通信程序啊?
yefenglulu
2009-10-20
打赏
举报
回复
设置原始模式可以通过cfmakeraw函数,同时可以添加超时和读取最小字符的设置。
super_max
2009-08-10
打赏
举报
回复
options.c_lflag &= ~(ICANON | ECHO | ECHOE | ISIG);
options.c_oflag &= ~OPOST;
接受程序设置了,还是那样.
应该不是发送方的问题.因为我用另外一个linux系统发送也是这样,发送完了必须发送个回车.
这边才接到.
piedgogo
2009-08-06
打赏
举报
回复
恩,应该是你的发送程序设计要求的?
你linux是接收数据的?那看有没有回车应该去看单片机程序啊。
w0911h
2009-08-06
打赏
举报
回复
设置原始通信模式,串口不对接收到的数据进行处理而直接返回
options.c_lflag &= ~(ICANON | ECHO | ECHOE | ISIG);
options.c_oflag &= ~OPOST;
super_max
2009-08-06
打赏
举报
回复
while(1)
{
nread = read(fd, buff, 127);
while((nread>0))
{
buff[nread]='\0';
printf("%s",buff);
nread = 0;
}
}
}
这个是我的读串口程序,我没加任何判断,只要读到了就显示.可如果对方不发送回车我这边就怎么也显示不出来.无论对方之前发了多少东西,只要最后发个回车,前面发的就会全部显示出来.
mississipii
2009-08-06
打赏
举报
回复
首先要有一个协议,如果协议里没有回车就不用了,直接进行收发,还有就是可以的话在协议里增加一个报文长度,这样也很好判断结束.
想想也不对呀,怎么会让对方加结束符你才能收到,你是怎么判断一帧数据结束的?查检一下
super_max
2009-08-05
打赏
举报
回复
1
查了查资料,好象是说需要设置为原始模式.可究竟怎么设置为原始模式,总也没个统一的说法.高手们谁有这方面经验啊?
pottichu
2009-07-30
打赏
举报
回复
检查一下 单片机程序,是不是有缓冲机制?
ShowMan
2009-07-30
打赏
举报
回复
设计用回车做发送标志吧。
关于嵌入式
linux
下的
串口通讯
问题
---
回车
、换行、缓冲
嵌入式
Linux
串口通讯
测试
问题
: 经过实验,从
Linux
(PC)通过串口向嵌入式
Linux
开发板发送数据时,串口初始化完毕后遇到
回车
(0x0d)或换行(0x0a)才开始从串口接收数据,
回车
或换行前的数据接收不到,
回车
或换行后的数据接收正常.从嵌入式
Linux
开发板通过串口向
Linux
(PC)发送数据,接收正常.无丢字符现象.请问这是为什么?两台
Linux
(PC)经过
串口通讯
接收正常.
linux
串口 换行十六制,关于嵌入式
linux
下的
串口通讯
问题
---
回车
、换行、缓冲
嵌入式
Linux
串口通讯
测试
问题
:经过实验,从
Linux
(PC)通过串口向嵌入式
Linux
开发板发送数据时,串口初始化完毕后遇到
回车
(0x0d)或换行(0x0a)才开始从串口接收数据,
回车
或换行前的数据接收不到,
回车
或换行后的数据接收正常.从嵌入式
Linux
开发板通过串口向
Linux
(PC)发送数据,接收正常.无丢字符现象.请问这是为什么?两台
Linux
(PC)经过
串口通讯
接收正常.-------...
linux
串口输出后不换行,关于嵌入式
linux
下的
串口通讯
问题
---需增加
回车
/换行才能接收...
问题
:在
Linux
应用层,直接从/dev/tty***使用read()函数读数据,无法读到,只有在数据末尾加上0a/0d才可以读到数据(这里是发送十六进制的数据,ASCLL码同理,增加
回车
才可以读到数据)原因:在
linux
内核
中
增加了行缓存的机制,必须出现一个结束符read函数才能从缓冲区里读出数据解决:改变termio这个类型定义的结构体变量,改变
Linux
串口设置参数termio这个结构体的介...
linux
串口 换行十六制,关于嵌入式
linux
下的
串口通讯
问题
---需增加
回车
/换行才能接收...
问题
:在
Linux
应用层,直接从/dev/tty***使用read()函数读数据,无法读到,只有在数据末尾加上0a/0d才可以读到数据(这里是发送十六进制的数据,ASCLL码同理,增加
回车
才可以读到数据)原因:在
linux
内核
中
增加了行缓存的机制,必须出现一个结束符read函数才能从缓冲区里读出数据解决:改变termio这个类型定义的结构体变量,改变
Linux
串口设置参数termio这个结构体的介...
嵌入式
Linux
串口0出错,嵌入式
Linux
串口通讯
测试
问题
嵌入式
Linux
串口通讯
测试
问题
:经过实验,从
Linux
(PC)通过串口向嵌入式
Linux
开发板发送数据时,串口初始化完毕后遇到
回车
(0x0d)或换行(0x0a)才开始从串口接收数据,
回车
或换行前的数据接收不到,
回车
或换行后的数据接收正常.从嵌入式
Linux
开发板通过串口向
Linux
(PC)发送数据,接收正常.无丢字符现象.请问这是为什么?两台
Linux
(PC)经过
串口通讯
接收正常.-------...
Linux/Unix社区
23,223
社区成员
74,536
社区内容
发帖
与我相关
我的任务
Linux/Unix社区
Linux/Unix社区 应用程序开发区
复制链接
扫一扫
分享
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章