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

stm32怎么有pwm

雪舞飞扬之殇 2017-09-28 浏览量:1494
stm32怎么有pwm
0 0 收起

我来回答

上传资料:
选择文件 文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
最佳答案
  • 一般使用stm32内置的pwm相关寄存器(主要隶属于时钟寄存器部分)。

    f103系列库函数具体配置流程:

    1、使能定时器3和相关IO口时钟。
        使能定时器3时钟:RCC_APB1PeriphClockCmd();
        使能GPIOB时钟:RCC_APB2PeriphClockCmd();
    2、初始化IO口为复用功能输出。函数:GPIO_Init();
        GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;      
    3、这里我们是要把PB5用作定时器的PWM输出引脚,所以要重映射配置,
        所以需要开启AFIO时钟。同时设置重映射。
            RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO,ENABLE);
            GPIO_PinRemapConfig(GPIO_PartialRemap_TIM3, ENABLE); 
    4、初始化定时器:ARR,PSC等:TIM_TimeBaseInit();
    5、初始化输出比较参数:TIM_OC2Init();
    6、使能预装载寄存器: TIM_OC2PreloadConfig(TIM3, TIM_OCPreload_Enable); 
    7、使能定时器。TIM_Cmd();
    8、不断改变比较值CCRx,达到不同的占空比效果:TIM_SetCompare2();


    具体寄存器可以看stm32芯片手册,或者正点原子、野火等专业教程。

    • 发布于 2017-09-28
    • 举报
    • 评论 0
    • 1
    • 0

其他答案 数量:10
  • stm32用CubeMX配置Timer

    就可以產生PWM了

    PWM_intr.PNG

    Pulse-Width Modulation, 又稱pulse-duration modulation(PDM),是將脈波轉為類比信號的“一種技術”,利用在頻率不變的狀態下, 改變工作週期大小, 使整體平均電壓值上升或下降, 藉此間歇性電壓及功率切換以節省能源及控制等效果.

    • duty cycle 在一個信號週期裡,代表1的正脈衝的持續時間與脈衝總周期的比值。舉例來說,發出訊號1秒鐘,之後99秒沒有訊號,這是一個週期;之後又是發出一秒鐘的訊號,如此循環下去。而該訊號的工作週期就是1/(1+99)=1%。

    • PWM會較省電的原因 因為一般類比電壓要降低電壓輸出需靠增加電阻,源頭輸出電壓“持續”都為同一電壓,不過利用電阻改變最後輸出電壓,而PWM他靠的是一段時間內輸出的頻率來模擬類比電壓,“不需要持續的輸出”,故不會將電浪費在電阻上,即可達到省電效果。

    • STM32內部要產生PWM訊號時,需要透過Timer來實現。


    • 发布于2017-09-28
    • 举报
    • 评论 0
    • 1
    • 0

  • 可以使用GPIO进行模拟,也可以使用定时器上的硬件PWM
    • 发布于2017-09-28
    • 举报
    • 评论 0
    • 0
    • 0

  • 建议从正点原子上下载战舰或是其他stm32的资料来学习,视频资料齐全,有源代码,全都是开源的。
    • 发布于2017-09-28
    • 举报
    • 评论 0
    • 0
    • 0

  • 这是我曾经问的问题//www.icxbk.com/ask/detail/5609.html你可以看一下,对你应该有帮助的
    • 发布于2017-09-28
    • 举报
    • 评论 0
    • 0
    • 0

  • 可以用GPIO模拟或者用定时器产生PWM波都可以啊
    • 发布于2017-09-30
    • 举报
    • 评论 0
    • 0
    • 0

  • 看看pwm相关的配置 资料很多的
    • 发布于2017-09-30
    • 举报
    • 评论 0
    • 0
    • 0

电子老工程师 回复了  :进过查找国产没有替代的型号。 回复

相关问题

问题达人换一批

stm32怎么有pwm