【发布时间】:2018-06-02 18:30:51
【问题描述】:
我使用 I2C 工具来测试固件(基于 HAL)、I2C、STM32L0 MCU。当我向 MCU 发送命令(通过 i2cset 实用程序)时,它会发送一个答案(在 i2cget 中接收)。它工作正常。如果我在单个 i2cset 之后调用 i2cget 两次,它会失败(这是预期的行为)。但是,如果我在该错误之后执行 i2cset,那么它也会失败。因此,接收传输中断(未激活回调)。如何修复?
目前,HAL_I2C_Slave_Receive_IT() 在HAL_I2C_SlaveTxCpltCallback() 中被调用。 HAL_I2C_SlaveRxCpltCallback() 致电 HAL_I2C_Slave_Transmit_IT()。我应该把HAL_I2C_Slave_Receive_IT() 放在两个回调中(接收/发送相关)吗?
【问题讨论】: