完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
使用freemodbus时断言 RT_ASSERT( eRcvState == STATE_RX_IDLE ). 想查是什么原因, 故将此断言屏蔽, 然后添加打印信息 BOOL idle state. / 但是从逻辑上分析, 进入时eRcvState一定为1. 想问下什么情况会出现此现象. 加了临界区, 所以应该没有别的线程能改, 然后查了所有线程的内存, 没有溢出现象 |
|
相关推荐
2个回答
|
|
eRcvState 发生变化的函数只有 xMBRTUReceiveFSM 和 xMBRTUTimerT35Expired,
在这两个函数里加打印看看出问题前后, eRcvState 是在哪发生变化的,再具体分析吧 |
|
|
|
怎么说呢, 随意改的内容, 如加个全局变量啥的, 就在其他地方进入断言, 如串口RT_ASSERT(serial != RT_NULL);, 但是同样, 加入if后, serial是有地址的, 且地址是正确的
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
小黑屋| 手机版| Archiver| 电子发烧友 ( 粤ICP备14022951号 )
GMT+8, 2023-5-13 00:26 , Processed in 0.731868 second(s), Total 123, Slave 107 queries .
Powered by 电子发烧友网
© 2015 www.ws-dc.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 深圳华秋电子有限公司
电子发烧友 (电路图) 粤公网安备 44030402000349 号 电信与信息服务业务经营许可证:粤 B2-20160233 工商网监 粤ICP备 14022951 号