|
KL03的RM里说的是I2C模块的时钟源自系统时钟(system clock)
而KSDK里配置I2C时钟时使用的时钟源是总线时钟(BusClock)
/* Get the current bus clock.*/
i2cClockFreq = CLOCK_SYS_GetI2cFreq(instance);
I2C_HAL_SetBaudRate(base, i2cClockFreq, device->baudRate_kbps, NULL);
static inline uint32_t CLOCK_SYS_GetI2cFreq(uint32_t instance)
{
return CLOCK_SYS_GetBusClockFreq();
}
uint32_t CLOCK_SYS_GetBusClockFreq(void)
{
return CLOCK_SYS_GetSystemClockFreq() / (CLOCK_HAL_GetOutDiv4(SIM) + 1);
}
实际测试KSDK里的i2c_comm_mstr_frdmkl03z例程时,时设置baudRate_kbps = 100U, 测出I2C时钟是192.3k
求释疑。
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?注册
x
|