新手上路
- 积分
- 38
- 金钱
- 38
- 注册时间
- 2020-5-14
- 在线时间
- 12 小时
|
1金钱
STM32 F103流水灯例程,修改为STM32F103C8芯片后,delay_ms()函数工作正常(8M晶振)。
int main(void)
{
delay_init(); //Ñóê±oˉêy3õê¼»ˉ
LED_Init(); //3õê¼»ˉóëLEDᬽóμÄó2¼t½ó¿ú
while(1)
{
LED0=0;
delay_ms(500); //Ñóê±500ms
LED0=1;
delay_ms(500); //Ñóê±500ms
}
}
用示波器测试LED0上的波形,周期为1000ms,波形符合程序
修改system_stm32f10x.c的注释,改变芯片的SYSCLK
#if defined (STM32F10X_LD_VL) || (defined STM32F10X_MD_VL) || (defined STM32F10X_HD_VL)
/* #define SYSCLK_FREQ_HSE HSE_VALUE */
#define SYSCLK_FREQ_24MHz 24000000
#else
/* #define SYSCLK_FREQ_HSE HSE_VALUE */
/* #define SYSCLK_FREQ_24MHz 24000000 */
#define SYSCLK_FREQ_36MHz 36000000
/* #define SYSCLK_FREQ_48MHz 48000000 */
/* #define SYSCLK_FREQ_56MHz 56000000 */
/*#define SYSCLK_FREQ_72MHz 72000000*/
#endif
发现LED0上的输出波形,在SYSCLK_FREQ_36MHz以外的参数都能确输出,周期为1000ms左右。
在SYSCLK_FREQ_36MHz时,LED0的波形周期为880ms左右,显然delay_ms()函数延时不准确了,查了大半天也找不出什么原因,请各大师指导!
|
|