PWM输出遇到的问题

2019-08-13 18:46发布

本帖最后由 龙之谷 于 2017-10-14 19:19 编辑

目的:计划输出PWM,并在更新中断中更改频率、占空比
平台:STM32F1
初始化配置:
[mw_shl_code=c,true]void DO1_PB8_TIM4_CH3(uint16_t arr, uint16_t psc)
{
        RCC->APB1ENR |= RCC_APB1ENR_TIM4EN;
        RCC->APB2ENR |= RCC_APB2ENR_IOPBEN;
        GPIOB->CRH   &= 0XFFFFFFF0;
        GPIOB->CRH   |= 0X0000000B;
        TIM4->ARR     = arr;
        TIM4->PSC     = psc;
        TIM4->CCMR2  |= 6 << 4;
        TIM4->CCMR2  |= 1 << 3;
        TIM4->CCER   |= 1 << 8;
        TIM4->CR1     = 0X0080;        
        
        TIM4->DIER   |= (1 << 0);
        TIM4->CR1    |= 0X01;
        
        MY_NVIC_Init(2,3,TIM4_IRQn,2);
}[/mw_shl_code]

问题:不使能TIM4->DIER |= (1 << 0);更新中断,PWM输出正常,使能后能够进入中断,但是中断里面串口打印TIM4->SR的值很频繁,如下图
串口调试助手.PNG

上图中0X1F为TIM4->SR读取值,不应该是0X01吗?
TIM4->SR寄存器描述如下:
TIM4 SR.PNG
请问各位坛友,配置有问题吗,还是我其它地方的理解出现了偏差?求指教~~~~~



友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。