STM32F103C8 TIM4 PWM CH4不能输出PWM

2019-07-14 14:10发布

STM32F103C8写了一个 tiM4 PWM输出 输出通道为CH4,但不出PWM,不知寄存器哪里设置不对,求高手指点,


系统时钟为72MHz
TIM4_PWMOut_Init(999,71);
void TIM4_PWMOut_Init(u16 arr,u16 psc)
{
        RCC->APB1ENR|=1<<2;        //TIM4时钟使能
        RCC->APB2ENR|=1<<3;//使能B端口时钟
        TIM4->PSC=psc;          //72000000/72=1Mh
        TIM4->ARR=arr;          //1000000/1000=1000  PWM频率为1K
        TIM4->CCR4=500;
        
        TIM4->CCMR2|=(6<<12);//PWM模式样
        TIM4->CCMR2|=(1<<11);//开启预装载功能
        TIM4->CCER|=(1<<12);//CH4 开启输出对应管脚
        TIM4->CCER|=0<<13;//高电平有效
        
        TIM4->CR1|=0<<4;//向上计数
        TIM4->CR1|=(1<<7);//自动重装允许
        TIM4->SR=0X00;
        TIM4->DIER|=1<<0;//允许更新
        TIM4->DIER|=1<<4;//允许CH4中断
        TIM4->EGR|=1<<4;
        TIM4->CR1|=0x01;    //使能计数器
        MY_NVIC_Init(1,3,TIM4_IRQn,2);//中断        

}

void TIM4_IRQHandler(void)
{                                                                  
        
        if(TIM4->SR&0X0010)
        {
                TIM4->SR&=~(1<<4);
        }        
        
}
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
18条回答
陈囝囝100
1楼-- · 2019-07-15 19:43
asd004
2楼-- · 2019-07-15 23:48
 精彩回答 2  元偷偷看……
dull20112011
3楼-- · 2019-07-16 02:21
hnui2002 发表于 2019-2-18 20:28
打开tim4时钟,配置time4 pwm配置,配置好tim4 映射的GPIO初始化,打开计数器,开总中断。

看你好像没有配置映射gpio引脚,如果还不行用库的试试,寄存器的要一个一个试,有点麻烦。

手册上没有提IO要映射,见图片

dull20112011
4楼-- · 2019-07-16 07:08
有TIM4         
dull20112011
5楼-- · 2019-07-16 07:31
JSDGS 发表于 2019-2-18 21:11
首先要配置PWM时钟,PWM是复用管脚,这个也得配置.

缺省就是TIM4_CH3,手册没有提要管脚映射
dull20112011
6楼-- · 2019-07-16 09:21
asd004 发表于 2019-2-18 22:12
GOIO 时钟

RCC->APB2ENR|=1<<3;//使能B端口时钟
这不是打开了GPIO时钟

一周热门 更多>