Systick 更新

之前写的systick_config(loadvalue) 根据系统时钟为72Mhz来写的,如果system clock不是72MHz怎么办?

重新写了一下,先获取,系统时钟频率。

1 //参数为ms
2 void Systick_Init(u16 ms)
3 {     
4     RCC_ClocksTypeDef RCC_Clocks;
5      /* SystTick configuration: an interrupt every 1ms */
6     RCC_GetClocksFreq(&RCC_Clocks);
7     SysTick_Config(ms*RCC_Clocks.SYSCLK_Frequency / 1000);
8     NVIC_SetPriority (SysTick_IRQn, 1);    
9 }
Systick_Init

说下关键的RCC_ClocksTypeDef

1 typedef struct
2 {
3   uint32_t SYSCLK_Frequency;  /*!< returns SYSCLK clock frequency expressed in Hz */
4   uint32_t HCLK_Frequency;    /*!< returns HCLK clock frequency expressed in Hz */
5   uint32_t PCLK1_Frequency;   /*!< returns PCLK1 clock frequency expressed in Hz */
6   uint32_t PCLK2_Frequency;   /*!< returns PCLK2 clock frequency expressed in Hz */
7   uint32_t ADCCLK_Frequency;  /*!< returns ADCCLK clock frequency expressed in Hz */
8 }RCC_ClocksTypeDef;
RCC_ClocksTypeDef


 

posted @ 2013-06-18 14:02  wwjdwy  阅读(275)  评论(0)    收藏  举报