注册 登录  
 加关注
查看详情
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

火车的家

Put first thing first

 
 
 

日志

 
 

2011.06.29 蓝牙 uart (二)  

2011-06-29 16:28:45|  分类: linux kernel |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
接前文 link

那个郁闷的蓝牙问题终于有了突破性进展。

我发现当两次bt uart中断的间隔时间过长时(比如大于200ms),就很容易丢字节(但不是每次都丢字节)。另外,通过分析报文,发现每次丢字节都是在 bt uart的 fifo 填满之后发生的。所以,觉得很可能是因为bt uart 中断的间隔时间太长导致fifo被填满从而丢字节。事实上,在115200的波特率下,只要两次中断的间隔时间超过5毫秒fifo就可能被填满,更不用说200ms了。
 
于是,增加了一个后台线程,每隔1ms检测fifo并接收数据。经过测试,在115200波特率下android已经能正常接收文件。但是 460800 还是不行。可以暂时松一口气啦,呵呵

从这次项目中获得了一条很实用的经验:当 uart 接收到错误数据的时候,应该检查 uart 寄存器的各种错误标志位,尤其是 LSR 寄存器。
  评论这张
 
阅读(581)| 评论(2)

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018