Open
Description
原代码如下:
vMBMasterPortSerialEnable( TRUE, FALSE );
eSndState = STATE_M_TX_XFWR;
这种情况会在接收函数xMBMasterRTUReceiveFSM()触发断言
RT_ASSERT(( eSndState == STATE_M_TX_IDLE ) || ( eSndState == STATE_M_TX_XFWR ));
修改如下解决:
eSndState = STATE_M_TX_XFWR;
vMBMasterPortSerialEnable( TRUE, FALSE );
//eSndState = STATE_M_TX_XFWR;
问题原因是状态更新不及时,接收中断触发了,变量状态还没有更新,所以还要提前
不过我不知道原作者和其他用户是否遇到这种问题,所以抛砖引玉,armink看到也请分析一下,谢谢
Metadata
Metadata
Assignees
Labels
No labels