[STM32] STM32芯片寄存器编写PWM失败,请大侠指点

[复制链接]
7208|3
手机看帖
扫描二维码
随时随地手机跟帖
畅想天子|  楼主 | 2021-9-19 20:43 | 显示全部楼层 |阅读模式
STM32通用定时器TIM3  CH3输出PWM,根据数据手册 通用定时器  进行编写,最终结果不能输出PWM,不知道哪里出错了。
完全按照数据手册进行编写的
void BSP_GPIO_init()
{
    RCC->APB2ENR|=(1<<3);//GPIOB时钟打开
/*****配置PB0******/   
    GPIOB->CRL&=0xfffffff0;//CRL  清除低四位
    GPIOB->CRL|=0x0b;//PB0    配置位 复用推挽输出 50MHZ      
}

void TIM3_CH3_PWM_init(uint16_t  PWM_period ,uint16_t   duty)
{
    RCC->APB1ENR|=(1<<1);//TIM3时钟开启
    TIM3->EGR|=(1<<0);//UG置位,初始化计数器
    TIM3->ARR =PWM_period-1;//自动加载,决定频率
    TIM3->PSC=1;//预分频值
    TIM3->CCR3=duty-1;//占空比
    TIM3->CCMR2&=0xff8f;
    TIM3->CCMR2|=0x60;//OC3M[2:0]=110  PWM1 模式
    TIM3->CCMR2|=(1<<3);//OC3PE输出比较3预装载使能
    TIM3->CCER&=~(1<<9);//CC3P: 输出极性 高电平有效
    TIM3->CCER|=(1<<8);//CC3E:输入/捕获 3输出使能
    TIM3->CCMR2&=~(3<<0);//CC3S  CC3配置位输出通道
    TIM3->CR1&=~(3<<8);//CKD=00   时钟分频因子
    TIM3->CR1&=~(3<<5);//CMS=00   边沿对齐模式
    TIM3->CR1&=~(1<<4);//DIR=0;    向上计数
    TIM3->CR1|=(1<<7);//APRE         使能自动预装载寄存器
    TIM3->CR1|=(1<<0);//CEN          计数器使能
}



e4ac99ca60661e8eb8144fdf0e999b3.png

使用特权

评论回复
chineseboyzxy| | 2021-9-22 20:33 | 显示全部楼层
数据手册上确定PWM能支持到50MHz?

使用特权

评论回复
畅想天子|  楼主 | 2021-9-23 11:24 | 显示全部楼层
本帖最后由 畅想天子 于 2021-9-23 11:25 编辑
chineseboyzxy 发表于 2021-9-22 20:33
数据手册上确定PWM能支持到50MHz?

我的定时器TIM3,时钟是APB1 ,所以应该GPIO设置成10MHZ,我再试试

使用特权

评论回复
畅想天子|  楼主 | 2021-9-23 12:39 | 显示全部楼层
畅想天子 发表于 2021-9-23 11:24
我的定时器TIM3,时钟是APB1 ,所以应该GPIO设置成10MHZ,我再试试

谢谢,指点,成功了

使用特权

评论回复
您需要登录后才可以回帖 登录 | 注册

本版积分规则

我要发帖 我要提问 投诉建议 申请版主

本版热帖

本版活跃用户

优质原创写原创,赢大奖

编辑推荐

  • 1 呐咯密密 得到打赏 ¥310.00
  • 2 qbwww 得到打赏 ¥215.00
  • 3 yanzhengxin1 得到打赏 ¥150.00
  • 4 full_stack 得到打赏 ¥100.00
  • 5 laocuo1142 得到打赏 ¥55.00
  • 6 zhangjiantao 得到打赏 ¥50.00
  • 7 二哲科技 得到打赏 ¥50.00
  • 8 cjseng 得到打赏 ¥50.00
  • 9 qintian0303 得到打赏 ¥25.00
  • 10 逍遥李 得到打赏 ¥20.00
在线客服 快速回复 返回顶部 返回列表