代码讲解
main.c
#include "led.h"
#include "delay.h"
#include "sys.h"
#include "usart.h"
#include "timer.h"
vu16 freq = 5000, Period = 0;
__IO float Period_percent;
int main(void)
{
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);
delay_init();
LED_Init();
TIM8_PWM_Init(5000,0);
TIM2_Int_Init(5000,0);
uart_init(115200);
Period_percent = ((SystemCoreClock / freq) - 1) / 32767.0;
while(1)
{
LED0=!LED0;
delay_ms(300);
}
}
TIM8_PWM_Init(5000,0);
TIM2_Int_Init(5000,0);
此时的5000已经不再是溢出周期了,而是频率,我们对TIM8_PWM_Init go to definition
void TIM8_PWM_Init(u16 pfreq ,u16 psc)
{
. . . . . .
TimerPeriod = (SystemCoreClock / pfreq) - 1;
. . . . . .
TIM_TimeBaseStructure.TIM_Period = TimerPeriod;
. . . . . .