stm32f103的PA8口输出PWM问题

PA8口是用的TIM1高级定时器,如果直接用其他通用定时器的设置是无法直接输出PWM的,要加上TIM1->BDTR=0x8000这一句代码才可以使用。

那我猜TIM1和TIM8对应的所有IO口想输出PWM都要配置一下这个寄存器,TIM8所有通道想输出的话应该加上TIM8->BDTR=0x8000,但是为啥要配置这个寄存器不知道,也是看了别人的评论才知道配这个寄存器的,可能是我调用了串口1,在对串口1进行配置的时候影响了PA8口?


2023.06.20追加

看到这个文章帮助到了别人我很高兴,现在回答一下自己先前提的问题,即为何要有TIM8->BDTR=0x8000这句话才能输出PWM。

在进行PWM输出时,我们对TIM1 和TIM8 捕获/比较使能寄存器(TIMx_CCER)进行了操作,使能了OC1的输出,在我程序中有这么一句TIM1->CCER|=1<<0; 通过看芯片手册中TIMx_CCER的说法:

 要开启OC1的输出,其输出电平依赖于MOE……的值,而我们看TIM1 和TIM8 刹车和死区寄存器(TIMx_BDTR)的说法:

 要开启OC和OCN输出则要打开MOE使能,所以我们代码中要有TIM1->BDTR=0x8000这一句,并且这句代码一定要放在TIM1->CCER|=1<<0即输出使能OC1之前。

  • 4
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值