我使用 I2C、使用 eUSCI_B、使用 SMCLK。 但是、如果我进入 LPM3 (使 LED 闪烁)、它使用使用 VLO 唤醒 RTC。 之后 I2C 似乎停止工作。 CS_getSMCLK()返回0,这似乎表明 SMCLK 不再可用。 我知道 SMCLK 在 LPM3中停止、但我是否必须执行一些操作才能在之后重新启动它?
我将 eUSCI_B 配置为在每个 I2C 事务上使用 SMCLK。 使用 DriverLib、在大多数示例和代码中、DriverLib 会调用 CS_getSMCLK()来设置位速率。 如果 CS_getSMCLK()返回0、则表示它未正确配置 eUSCI。 我想知道、当 eUSCI 请求 SMCLK 时是否会启动它、 而仅仅是对 CS_getSMCLK ()(在 SMCLK 处于活动状态之前发生)的调用存在缺陷?
在 POR 之后、我不配置时钟、而是在复位时钟之后使用默认配置。 我不认为这是相关的、但我也在使用 LPM4.5、I2C 连接到外部 RTC 芯片以从 LPM4.5唤醒处理器