完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
问题如下:
电脑端发送:0A 04 75 30 00 01 2A B2 单片机响应:0A 04 02 00 0B 5D 36 5MS发送一次,结果如下图所示。丢包率 = 19194*8/(7*22008) = 0.9967 假想:软件:串口接收采用中断方式,系统关中断期间未及时把数据从USARTx->DR取走,后续数据覆盖。 ------>>>>>>>采用不同波特率测试,结果丢包基本都在0.99 。 ------>>>>>>>以波特率为115200计算。1byte数据时间T = 1000 000 *(8+1)/115200 = 78us 。1M时候T = 9us 。这两种波特率丢包率应该有区别,但是测试没有太大区别。感觉假想似乎有问题? 硬件:采用mini开发板和公司demo板测试数据基本一致。 注:测试时暂未加485接口芯片,u***转串口测试。 解决方案:串口接收发送采用DMA,上位机发送指令包长不一,我应该什么时候读取DMA数据? 不知各位大佬有何想法。代码如附件。 谢谢! 123.rar (709.68 KB ) |
|
相关推荐
4个回答
|
|
|
|
DMA方式接收,当然要使用UART空闲中断了.空闲中断发生时,就是处理接收到数据的时机.
|
|
|
|
我补充下楼上说的:空闲中断也就是接收完成中断,这个中断是以帧为结束中断,不会收到一个字节就中断,mcu会检测到最后一个数据,然后产生一个中断,判断最后一个的标准是一个时间内没有数据接收,个人理解希望对楼主有帮助!如果还不懂可以回复我传个工程过来!
|
|
|
|
你丢包就丢包,标题前干嘛加上UCOSiii呀,跟UCOS没有半毛钱关系吧。
|
|
|
|
只有小组成员才能发言,加入小组>>
692 浏览 0 评论
1106 浏览 1 评论
2473 浏览 5 评论
2808 浏览 9 评论
移植了freeRTOS到STMf103之后显示没有定义的原因?
2646 浏览 6 评论
使用eim外接fpga可是端口一点反应都没有有没有大哥指点一下啊
653浏览 9评论
649浏览 7评论
请教大神怎样去解决iMX6Q在linux3.0.35内核上做AP失败的问题呢
781浏览 6评论
628浏览 5评论
668浏览 5评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-22 04:44 , Processed in 1.076425 second(s), Total 85, Slave 65 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号