• 已解决 73482 个问题
  • 已帮助 5993 位优秀工程师

stm32f429的PWM周期设置

宫梓萱 2019-07-23 浏览量:1141

stm32的PWM输出,一般先设置好定时器的周期,比如TIM_TimebaseStructure.TIM_Period        = 1000,

再通过TIM_SetCompar函数来设置比较值。比如比较直设置成500,

那么PWM输出的就是占空比50%的方波,

但是这种情况下,就是方波的周期是固定的。

现在我想在程序中改变TIM_TimebaseStructure.TIM_Period  这个值,有没有专用的函数来改变定时器的周期值


0 0 收起

我来回答

上传资料:
选择文件 文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
最佳答案
  • 可以的:

    使用这个两个函数:

      TIM_PrescalerConfig(DPORT_TIM_base[DPx]PrescalerTIM_PSCReloadMode_Update);
      TIM_SetAutoreload(DPORT_TIM_base[DPx] Period);
    ​这个是我改的的一个改变方波频率的函数,使用的F407单片机

    11.jpg

    • 发布于 2019-07-23
    • 举报
    • 评论 7
    • 0
    • 0
宫梓萱 回复了 川楠:嗯呢,谢谢你啊。请问下stm32f429内部的CCMRAM怎么使用啊 回复
川楠 回复了 宫梓萱:这个我没有用过,建议你看看安富莱的开发板资料,他们的资料开源,知识点讲的比较透 回复
宫梓萱 回复了 川楠:还有最后一个问题啊,就是我产生了PWM,我需要随时的是启动和关停这一路PWM波形,有么专门的函数啊 回复
川楠 回复了 川楠:有。TIM_CCxCmd(DPORT_TIM_base[DPx] TIM_Channel_1State); 回复
宫梓萱 回复了 川楠:你好,我使用了PWM管脚驱动一个LED灯,当使用TIM_CCxCmd命令关闭PWM后,LED管脚仍有1V的电压。这个是不是哪里每配置好啊 回复
川楠 回复了 宫梓萱:你用示波器看一下管脚的波形,看看是不是PWM是否完全停止。先确定是硬件的问题还是软件的问题。 回复
宫梓萱 回复了 川楠:PWM完全停止了,不过此时电平是1V左右 回复

其他答案 数量:1
  • 定时器的周期值可以通过修改它的分频器配置来改变,用的TIM_PrescalerConfig这个函数,不过调用这个函数,需要定时器停止工作,不然会异常
    • 发布于2019-07-31
    • 举报
    • 评论 0
    • 0
    • 0

相关问题

问题达人换一批

stm32f429的PWM周期设置