我的PWM程序, 用TIM3 的第01路输出, PA6脚, 搞了两天, PA6脚没看到波形,

2019-07-21 01:30发布

本帖最后由 LIGONG004 于 2019-5-14 09:03 编辑

#include "stm32f10x.h"
int  main(void)
    {
    TIM3->CCR1=600;             //占空比= 30%
    RCC->APB1ENR |= 1 << 1;     //使能TIM3时钟

    RCC->APB2ENR|=1<<2;         //使能PORTA时钟
    GPIOA->CRL &= 0XF0FFFFFF;   //PA6推挽复用输出
    GPIOA->CRL |= 0X0B000000;   //50MHz
    GPIOA->ODR |= 1 << 6;       //PA6上拉

    TIM3->ARR = 1894;           //设定计数器重装值(PWM频率)  38KHz
    TIM3->PSC = 0;          //预分频器   0=不分频

    TIM3->CCMR1 |= 7 << 4;      //CH1 PWM2模式
    TIM3->CCMR1 |= 1 << 3;      //CH1预装载使能

    TIM3->CCER |= 1 << 0;       //捕获1输出使能

    TIM3->CR1 = 0X0080;     //ARPE设定
    TIM3->CR1 |= 0X01;      //TIM3使能        

    for(;;)  ;
            
    }

我的PWM程序,  用TIM3 的第01路输出, PA6脚,
搞了两天, PA6脚没看到波形,  
PA6脚就是高电平,没有方波,



友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
8条回答
LIGONG004
2019-07-21 15:24
本帖最后由 LIGONG004 于 2019-5-14 15:22 编辑

我操,我算是知道咋回事了,

就是最后一句       for(;;)  ;   
改为   
for(;;)    TIM3->CCR1=600;            //占空比= 30%
整个程序就对了,


示波器里看出PA6引脚有方波输出  周期26uS===38KHz

但我有一点不明白,PWM不是设置好了,自动输出方波么?  
为啥还要总是给 TIM3->CCR1=600; 付值呢   ?   得好好的查查

一周热门 更多>