Skip to content

xMBMasterRTUTransmitFSM函数触发断言 #54

Open
@DavidLin1577

Description

@DavidLin1577

原代码如下:
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

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions