添加采集温度的ADC之后,又增加了两个LPUART。之后又打算先尝试着把RTC调试出来,然后就遇到莫名奇妙的问题了。
RTC采用的MCP7940N芯片,是I2C接口的。
先配置的引脚:
然后增加I2C的驱动:
在代码中增加初始化和发送测试的代码:
LPI2C_DRV_MasterInit(INST_LPI2C1, &lpi2c1_MasterConfig0,&lpi2c1MasterState);
uint8_t buffer[] = {0x01 , 0x02 , 0x03};
while(1)
{
LPI2C_DRV_MasterSendDataBlocking(INST_LPI2C1, buffer, 3, true, OSIF_WAIT_FOREVER);
}
然后,就J-LINK调试就卡在了发送函数那里出不来。将超时改为100后,示波器上也测量不到任何波形。
通过对比示例项目又修改了以下两处:
然后又重新编译了几次,为什么是几次,因为前两次不知道为什么不行,后面发现示波器有波形了。
波形不好看,示例工程中也是这样的,继续调试,
LPI2C_DRV_MasterSendDataBlocking函数的波形是这样(因为RTC地址设置的不对,所以没有应答)
LPI2C_DRV_MasterReceiveDataBlocking函数的波形是这样(因为RTC地址设置的不对,所以没有应答)
LPI2C_DRV_MasterSendDataBlocking对应写;
LPI2C_DRV_MasterReceiveDataBlocking对应读,应该是。
将速率调慢后,波形看着还可以了: