再次被外部串口折磨的经历(作者:gooogleman)

//-----------------------------------------------------------------------------------------------------------------------------------------

// Topic:再次被外部串口折磨的经历(作者:gooogleman)

// 作者:wogoyixikexie@gliet.gooogleman

// 论坛账号:gooogleman (经常在CSDN出没)

// 版权:桂林电子科技大学一系科协wogoyixikexie@gliet.gooogleman

// 平台:wince5.0.0 FL2440 5.0 BSP

// 发布日期:2010-04-10

// 最后修改:

// 注意事项:未经作者同意,商业网站不能转载,并且不得在转载的时候擅自修改、删除文章的任何部分

//-----------------------------------------------------------------------------------------------------------------------------------------

   嘿嘿,好久不写博客了,让朋友们失望了。很多老友都问,最近干啥了,怎么博客不更新了,以前可是每周几篇的,嘿嘿。我也不知道自己干啥了,貌似就是不想写了。有很多经验,都随着时间流逝了。嘿嘿以后多写写吧。

   最近,俺的外部串口又出问题了,表现为丢失数据,蓝牙连接不上了。嘿嘿,记得去年七月份,小弟大刀阔斧的把4.2BSP的 串口驱动,包括外部串口的移植到5.0 和6.0中表现还算可以。不过今年再次map 个虚拟串口,就导致连接蓝牙出问题了。后来发现内部串口收发数据同时也会丢书数据,导致GPRS上网有点慢。公司叫我尽快整好,俺一不做二不休。回家打开飞凌的FL2440 开发板,进行测试,发现FL2440 在115200 波特率下收发测试两小时,完全不丢数据。嘿嘿,我就更换到俺的PDA中,测试,终于不丢数据了。嘿嘿,干脆也把外部串口换了,不过这个外部串口真的不好整啊,搞了几天,发现连中断都不产生。非常郁闷,哎我发现长时间不调试代码,手也生疏了,我居然也没验证读写寄存器就开始在那里查看中断了,再次回来检测,发现压根没有配置成功寄存器。汗!重新开始查看,发现这个注册表配置有问题,把地址写入,发现这个地址压根不对,汗死我了。我居然没有发现,我太容易相信别人的东西了,把注册表修改,就当时居然导致系统在打开任意COM口的时候很慢,咋回事呢?无奈,我在程序直接赋值,强制转换数目类型。终于OK了,测试读写寄存器,正常了。哈哈哈。

  不过还是不行,不知道咋回事,后来我把流控相关的东西屏蔽,包括中断,可是还是不行。后来尝试把debug 串口屏蔽(嘿嘿,我真晕,我把debug口和普通串口同时用,行才怪!),屏蔽之后立即可以了。不过问题来了,能够接收发送数据,但是接收一段时间以后就不接受数据了,真晕,重新关闭,打开串口也是不行了。汗,跑到串口MDD去想提高线程,发现我以前早已把线程优先级提高到97 了,汗。并且除了罢工以外,一旦点击触摸屏,这个外部串口就在接收数据的时候会有大量数据丢失的状况。汗死我了,无奈了一天,突然想起来,标准5.0的 串口驱动是有两个线程的,MDD一个,PDD也有一个,嘿嘿,直觉告诉我,我会有好运了,把PDD线程设置成97,就不再丢数据了,但是罢工问题仍然存在。嘿嘿,后来想想,再次拿出以前我写的提高中断响应速度的文章看看,在PDD 中断线程部分加入中断清理过程,果然!外部串口稳固运行!不再丢数据,不再罢工,效果相当的明显,以前100个byte 都会丢失,现在1K byte都没有丢失。哈哈哈哈。爽爽!嘿嘿关于串口,关于外部串口 4.2、5.0 、6.0的问题请在博客后留言。嘿嘿,我会提供一些经验的。

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 7
    评论
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值