OpenEdv-开源电子网

 找回密码
 立即注册

扫一扫,访问微社区

正点原子新作:阿波罗STM32F767&F429&探索者STM32F4开发板&赶快来下载资料哦。

查看: 240|回复: 2

UCOS III FreeModbus丢包

[复制链接]

  离线 

5

主题

9

帖子

0

精华

初级会员

Rank: 2

积分
70
金钱
70
注册时间
2016-8-29
在线时间
20 小时
发表于 2018-1-12 16:12:36 | 显示全部楼层 |阅读模式
1金钱
问题如下:
    电脑端发送: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接口芯片,usb转串口测试。

解决方案:串口接收发送采用DMA,上位机发送指令包长不一,我应该什么时候读取DMA数据?

不知各位大佬有何想法。代码如附件。

谢谢!


测试数据

测试数据

123.rar

709.68 KB, 下载次数: 7

回复

使用道具 举报

  离线 

485

主题

9万

帖子

30

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
120640
金钱
120640
注册时间
2010-12-1
在线时间
967 小时
发表于 2018-1-13 01:39:23 | 显示全部楼层
回复

使用道具 举报

  离线 

22

主题

1497

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3400
金钱
3400
注册时间
2016-5-29
在线时间
504 小时
发表于 2018-1-13 11:33:22 | 显示全部楼层
DMA方式接收,当然要使用UART空闲中断了.空闲中断发生时,就是处理接收到数据的时机.
深圳富美莱怡家智能科技有限公司
主营:可视对讲,智能家居安防,灯光控制,空调控制
智能门窗,门锁.
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则




QQ|联系我们|手机版|官方淘宝店|新浪微博|微信公众平台|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2018-1-24 04:05

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表
/* */