This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] CC3235SF:如何使用 IIC 在中断?中读取数据

Guru**** 2558250 points


请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/wireless-connectivity/wi-fi-group/wifi/f/wi-fi-forum/1052897/cc3235sf-how-to-use-iic-to-read-data-in-interrupt

器件型号:CC3235SF

您好!

我通过 IIC 接口与 bmx160传感器通信。 当我使用计时器中断读取 bmx160传感器的数据时,我发现 IIC 读写功能无法发送。 但是,当我在线程中初始化 bmx160传感器时,我可以正常操作寄存器,但我无法在中断中读取和写入 IIC。 为什么?

IIC 初始化和读写功能接口:

定时器初始化和中断功能:

请帮助我解决此问题。

谢谢你。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您处于回调模式、但未显示 i2ccallbackfxn。 是否确定不希望阻塞模式? 在回调模式下、I2C_transfer 会立即返回、而不是像在阻塞模式下那样等待下一个事务。  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我的 i2ccallbackfxn

    但在计时器中断中、我仍然无法使用 I2C 读写函数来读取和写入数据、但它可以在线程中正常使用。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您是否已尝试 i2cParams.transferMode = I2C_MODE_BLOCKING?

    您是否尝试过分析 i2c 总线?

    请考虑这些选项。  

    在 for 循环之后、似乎需要一个 SEM_WAIT。 这可能是它在线程中工作的原因。 回想一下、I2C_transfer 会立即以回调模式返回。  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    是的、在我将它设置为阻塞模式后、它仍然不起作用。 在我进入 for ()循环之前,一切都正常,但当我输入 for ()并使用 IIC 读取数据时,它不起作用。 程序卡在 IIC 中。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您能调试并找到等待的线路吗?

    您能否使用逻辑分析仪来调试总线?