找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2074|回复: 0
打印 上一主题 下一主题
收起左侧

STM32F407输出可调spwm

[复制链接]
跳转到指定楼层
楼主
spwm可调载波频率20-100khz,正弦频率200-10khz


制作PWM表的py脚本
  1. #! python3
  2. #coding=utf-8

  3. """
  4. Python版本:3.x

  5. 计算不同配置下呼吸灯的周期

  6. 运行方式:
  7. 在命令行中输入:python count.py

  8. 运行结果:
  9. 打印出当前配置中一个呼吸周期的时间
  10. """


  11. #PWM点数
  12. POINT_NUM = 110

  13. #周期倍数
  14. PERIOD_CLASS = 10

  15. #幅值等级
  16. AMPLITUDE_CLASS = 1

  17. #定时器定时周期
  18. TIMER_TIM_Period = 2**10

  19. #APB1定时器分频
  20. TIMER_TIM_Prescaler1 = 235
  21. #APB2定时器分频
  22. TIMER_TIM_Prescaler2 = 470

  23. #STM32系统时钟频率和周期
  24. f_hclk = 168000000

  25. #定时器计时频率
  26. f_pclk1 = f_hclk/2
  27. t_pclk1 = 1/f_pclk1

  28. f_pclk2 = f_hclk
  29. t_pclk2 = 1/f_pclk2

  30. #APB1定时器update事件周期
  31. t_timer1 = t_pclk1*TIMER_TIM_Prescaler1*TIMER_TIM_Period

  32. #APB1每个PWM点的时间
  33. T_Point1 = t_timer1 * PERIOD_CLASS * AMPLITUDE_CLASS

  34. #APB1整个呼吸周期
  35. T_Up_Down_Cycle1 = T_Point1 * POINT_NUM

  36. print ("APB1总线定时器呼吸周期:",T_Up_Down_Cycle1)


  37. #APB2定时器update事件周期
  38. t_timer2 = t_pclk2*TIMER_TIM_Prescaler2*TIMER_TIM_Period

  39. #APB2每个PWM点的时间
  40. T_Point2 = t_timer2 * PERIOD_CLASS * AMPLITUDE_CLASS

  41. #APB2整个呼吸周期
  42. T_Up_Down_Cycle2 = T_Point2 * POINT_NUM

  43. print ("APB2总线定时器呼吸周期:",T_Up_Down_Cycle2)
复制代码

STM32主程序:
  1. #include "stm32f4xx.h"
  2. #include "./led/bsp_breath_led.h"
  3. #include "./usart/bsp_debug_usart.h"



  4. /**
  5.   * @brief  主函数
  6.   * @param  无
  7.   * @retval 无
  8.   */
  9. int main(void)
  10. {
  11.        
  12.   /*初始化串口*/
  13.   Debug_USART_Config();

  14.         printf("\r\n 欢迎使用野火  STM32 F407 开发板。\r\n");               
  15.         printf("\r\n 呼吸灯例程\r\n");          
  16.   printf("\r\n RGB LED 以呼吸灯的形式闪烁\r\n ");

  17.   /* 初始化呼吸灯 */
  18.         //输入参数:频率
  19.         //输入范围:200~10000
  20.         //单位:Hz
  21.         BreathLED_Config(10000);
  22.   
  23.   while(1)
  24.   {
  25.   }

  26. }


  27. /*********************************************END OF FILE**********************/

复制代码

野火的代码下载: 单色呼吸灯代码.7z (464.56 KB, 下载次数: 28)

评分

参与人数 1黑币 +30 收起 理由
admin + 30 共享资料的黑币奖励!

查看全部评分

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏1 分享淘帖 顶 踩
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表