STM32--TIM1&8--PWM输出-注意事项

一.

函数:TIM_CtrlPWMOutputs(TIM8, ENABLE);

作用:TIMx->BDTR |= 0x8000;

->置高级定时器TIM1&TIM8的BDTR的15位为1,使能OC&OCN输出。

                                                        默认为0:强制禁止OC&OCN输出

故:在使用高级定时器输出PWM时必须调用此函数

void TIM_CtrlPWMOutputs(TIM_TypeDef* TIMx, FunctionalState NewState)
{
  /* Check the parameters */
  assert_param(IS_TIM_LIST2_PERIPH(TIMx));
  assert_param(IS_FUNCTIONAL_STATE(NewState));
  if (NewState != DISABLE)
  {
    /* Enable the TIM Main Output */
    TIMx->BDTR |= TIM_BDTR_MOE;
  }
  else
  {
    /* Disable the TIM Main Output */
    TIMx->BDTR &= (uint16_t)(~((uint16_t)TIM_BDTR_MOE));
  }  
}

BDTR->位 15
一旦刹车输入有效,该位被硬件异步清 ’0’ 。根据 AOE 位的设置值,该位可以由软件清 ’0’ 或被自动置1 。它仅对配置为输出的通道有效。
0 :禁止 OC OCN 输出或强制为空闲状态;
1 :如果设置了相应的使能位 (TIMx_CCER 寄存器的 CCxE CCxNE ) ,则开启 OC OCN
出。

 

 二.

关于单片机stm32默认引脚B3,B4主功能是JTDO,NJTRS,想使用IO功能时需要重定义功能

GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable, ENABLE);

stm32 B3B4引脚当IO使用_LqNanfangdexue的博客-CSDN博客

 

  • 4
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
定时器8输出PWM的代码如下所示: ```c #include "PWM.h" int main() { u16 led0pwmval = 0; u8 dir = 1; NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); // NVIC初始化分组 LED_Init(); // LED初始化 delay_init(); // 延时初始化 TIM_PWM_Init(899, 0); // 不分频。PWM频率=72000000/900=80Khz while(1) { delay_ms(10); if(dir) { led0pwmval++; } else { led0pwmval--; } if(led0pwmval > 300) { dir = 0; } if(led0pwmval == 0) { dir = 1; } // 往CCR2寄存器写入不断变化的led0pwmval值,调整比较值,就能输出不断变化的占空比了 TIM_SetCompare2(TIM8, led0pwmval); } } ``` 在这段代码中,我们使用了定时器8来输出PWM信号。首先,我们需要进行一些初始化工作,包括设置NVIC分组、LED初始化和延时初始化。然后,我们调用TIM_PWM_Init函数来初始化定时器8,设置不分频,使得PWM频率为80KHz。接下来,我们进入一个循环,每隔10毫秒调整led0pwmval的值,从而改变占空比。最后,我们使用TIM_SetCompare2函数将led0pwmval的值写入CCR2寄存器,实现PWM输出。 #### 引用[.reference_title] - *1* [STM32F103C8T6---定时器1&定时器8输出PWM信号注意事项](https://blog.csdn.net/weixin_51134981/article/details/129971600)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [STM32F1定时器-PWM输出](https://blog.csdn.net/weixin_46251230/article/details/126796005)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值