linux 串口 换行十六制,关于嵌入式linux下的串口通讯问题---回车、换行、缓冲

在嵌入式Linux串口通信中,遇到问题:发送数据时,需跟随回车或换行符才能开始接收。原因是默认的行缓冲模式。解决方案包括设置串口为原始模式,禁用ICANON、ECHO等终端特性,避免依赖结束符。cfmakeraw函数也可用于设置原始模式。
摘要由CSDN通过智能技术生成

嵌入式Linux串口通讯测试问题:

经过实验,从Linux(PC)通过串口向嵌入式Linux开发板发送数据时,串口初始化完毕后遇到回车(0x0d)或换行(0x0a)才开始从串口接收数据,回车或换行前的数据接收不到,回车或换行后的数据接收正常.从嵌入式Linux开发板通过串口向Linux(PC)发送数据,接收正常.无丢字符现象.请问这是为什么?两台Linux(PC)经过串口通讯接收正常.

-----------------------------

应该是你初始化不完整造成的.不知道你是直接端口操作还是访问的 ttySX来完成的.

-----------------------------

=============================================================================

我现在编写了一个

linux串口接收程序,

接收时必须在发送信息的后面附带一个

回车符,要不然它只会存在接受缓存中而不

接收,我上网搜了,说是什么行缓冲的问题,但是不知道怎么去解决啊!

------------------------------------

linux串口中,默认的模式下只有但backspace按下的时候,才可以把缓冲区的数据提交给进程,

linux提供了一个接口可以改变

串口的这种默认的行为,详细信息可以查看 man termios

============================================================================

http://www.lslnet.com/linux/dosc1/06/linux-137429.htm(注:这个程序就是我用的一个能够实现接收串口数据的程序,其中把信息分开接收是因为设置的最少接收的字节数的问题,可以设置成大一些的数据)

现在想用

串口接收数据,找了一个

串口程序,前一段用的每问题。现在发现了一个问题,各位高手帮忙看一下如何解决?

接受程序是这样的:(之前的初始化就不写了,肯定没问题)

char buff[512];

while((nread = read(fd,buff,10))>0)//fd是端口文件

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值