本帖最后由 无涯 于 2009-12-3 21:45 编辑
在STM8的库函数的stm8s_clk.c中,有这么一个函数
void CLK_AdjustHSICalibrationValue(CLK_HSITrimValue_TypeDef CLK_HSICalibrationValue)
{
/* check the parameters */
assert_param(IS_CLK_HSITRIMVALUE_OK(CLK_HSICalibrationValue));
/* Store the new value */
CLK->HSITRIMR = (u8)((CLK->HSITRIMR & (u8)(~CLK_HSITRIMR_HSITRIM))|((u8)CLK_HSICalibrationValue));
}
一、CLK_HSITrimValue_TypeDef是一个0-7的enum,而且CLK_HSITRIMR_HSITRIM是0b00000111,但是部分型号是支持4BIT的HSI校正,这个函数只是按3BIT来写的,似乎不太对头。
二、调用这个函数来校正HSI,不起作用,最后还是自己写了一句 CLK_HSITRIMR = u8HSICalibrationValue; ,就可以了。请高手指点这是怎么回事? |