大家好、
由于论坛的帮助、我能够让我们的定制板正常运行、从而使用 driverlib 在 I2C 模式下正确配置 eUSCI。
现在、我们需要尽可能降低功耗、因此我首先要做的是使用 ACLK 而不是 SMCLK 作为时钟
I2C。 嗯,一块蛋糕 我想…
由于某种原因,我的 ACLK 似乎没有正确启动..... 我的代码基于我在 Resource Explorer 中找到的示例、这是我配置 ACLK 的操作
int main (void) { volatile uint32_t j; PMM_unlockLPM5 (); WDT_A_HOLD (WDT_A_base); //为 XIN 和 XOUT 配置引脚 //将 P2.0和 P2.1设置为模块功能输入。 GPIO_setPeripheralModuleFunctionInputPin ( GPIO_PORT_P2、 GPIO_PIN0 + GPIO_PIN1、 GPIO_PRIMARY_MODULE_FUNCTION ); PMM_unlockLPM5 (); //初始化 XT1晶体振荡器而不超时 //如果出现故障,代码将在此处挂起。 //对于超时而不是代码挂起,请使用 CS_TurnOnXT1LFWithTimeout () CS_TurnOnXT1LF ( CS_XT1_DRIVE_0 ); cs_initClockSignal ( CS_ACLK、 CS_XT1CLK_SELECT、 CS_CLOCK 分频器_1 ); //清除所有 OSC 故障标志 CS_clearAllOscFlagsWithTimeout (1000); //启用振荡器故障中断 SFR_enableInterrupt (SFR_oscillator_FAULT_INTERRUPT); uint32_t clkValue = CS_getACLK (); /*应用程序继续使用 I2C 读数 ... (笑声) (笑声) *
问题是、稍后在代码中、我卡在 I2C 操作中、这只是因为 clkValue = 0。 因此、我假设 ACLK 未启动。
假设晶振正确安装在 PCB 上(XT1是32K 晶振、在 P2.0和 P2.1之间、请参阅说明)、您对我应该检查什么内容有什么建议以查看这里有什么问题吗?
提前感谢、
Lorenzo