cychen
cychen
This guy hasn't written anything yet

注册于 2 years ago

回答
28
文章
0
关注者
2

我115200波特率最高1ms发38个字节 不丢吖。没使用dma

假如用udp接收数据 收到后马上发出采用这种线程收发 非常容易出错并且可能出现丢包

网线检测是不是没做?用if config 查下状态

只能自己在netif_find中写成 netif_find(e00)

用网线连接,是使用lwip方式。用ifconfig查看不到IP gw等信息

这个跟RX线程有很大关系,目前测试发现当发送数据过快时会丢包 发200包udp 丢几十包 .丢包出现在recvfrom,因为rt lwip流程是中断发邮箱 通知lwip 通知lwip其他 然后再通知rx线程 最后才到recvfrom 这里花的时间比较长 。目前未真正找出丢数据点 。利用同样的发送时间 freertos 未出现丢包.目前正改造采用NO-RX-thread 方式接收处理

这个包很像啊里的 啊里mqtt也有这个问题

连接成功后创建一个内部线程mqtt_yield_thread,并在合适的时候启动它 ?这里有个疑问 上电后假如网线没插上 过大概10S后 会反馈MQTT连接失败 这时候mqtt_yield_thread并不会启动,不启动那么等于重连功能用不上了 必须重新上电 所以mqtt_yield_thread是不是直接放while里面让他一直跑会好点 这样无论你何时接上网线他都还有机会去连接服务器

如果是外挂flash 建议不要使用fat文件系统,容易突然重启导致整个flash数据出错

能否提供下你的工程 [email]cychen88@126.com[/email] github上不知道怎么找到你更新

关于组播最最关键要把硬件组播过滤关掉!这是首要条件我发现绝大部份都是硬件默认关闭组播

回到
顶部

发布
问题

投诉
建议