|
spwm可調(diào)載波頻率20-100khz,正弦頻率200-10khz
index_wave運行結果.png (61.69 KB, 下載次數(shù): 72)
下載附件
2021-11-23 17:32 上傳
制作PWM表的py腳本
- #! python3
- #coding=utf-8
- """
- Python版本:3.x
- 計算不同配置下呼吸燈的周期
- 運行方式:
- 在命令行中輸入:python count.py
- 運行結果:
- 打印出當前配置中一個呼吸周期的時間
- """
- #PWM點數(shù)
- POINT_NUM = 110
- #周期倍數(shù)
- PERIOD_CLASS = 10
- #幅值等級
- AMPLITUDE_CLASS = 1
- #定時器定時周期
- TIMER_TIM_Period = 2**10
- #APB1定時器分頻
- TIMER_TIM_Prescaler1 = 235
- #APB2定時器分頻
- TIMER_TIM_Prescaler2 = 470
- #STM32系統(tǒng)時鐘頻率和周期
- f_hclk = 168000000
- #定時器計時頻率
- f_pclk1 = f_hclk/2
- t_pclk1 = 1/f_pclk1
- f_pclk2 = f_hclk
- t_pclk2 = 1/f_pclk2
- #APB1定時器update事件周期
- t_timer1 = t_pclk1*TIMER_TIM_Prescaler1*TIMER_TIM_Period
- #APB1每個PWM點的時間
- T_Point1 = t_timer1 * PERIOD_CLASS * AMPLITUDE_CLASS
- #APB1整個呼吸周期
- T_Up_Down_Cycle1 = T_Point1 * POINT_NUM
- print ("APB1總線定時器呼吸周期:",T_Up_Down_Cycle1)
- #APB2定時器update事件周期
- t_timer2 = t_pclk2*TIMER_TIM_Prescaler2*TIMER_TIM_Period
- #APB2每個PWM點的時間
- T_Point2 = t_timer2 * PERIOD_CLASS * AMPLITUDE_CLASS
- #APB2整個呼吸周期
- T_Up_Down_Cycle2 = T_Point2 * POINT_NUM
- print ("APB2總線定時器呼吸周期:",T_Up_Down_Cycle2)
復制代碼
STM32主程序:
- #include "stm32f4xx.h"
- #include "./led/bsp_breath_led.h"
- #include "./usart/bsp_debug_usart.h"
- /**
- * @brief 主函數(shù)
- * @param 無
- * @retval 無
- */
- int main(void)
- {
-
- /*初始化串口*/
- Debug_USART_Config();
-
- printf("\r\n 歡迎使用野火 STM32 F407 開發(fā)板。\r\n");
- printf("\r\n 呼吸燈例程\r\n");
- printf("\r\n RGB LED 以呼吸燈的形式閃爍\r\n ");
- /* 初始化呼吸燈 */
- //輸入?yún)?shù):頻率
- //輸入范圍:200~10000
- //單位:Hz
- BreathLED_Config(10000);
-
- while(1)
- {
- }
- }
- /*********************************************END OF FILE**********************/
復制代碼
野火的代碼下載:
單色呼吸燈代碼.7z
(464.56 KB, 下載次數(shù): 28)
2021-11-23 17:35 上傳
點擊文件名下載附件
載波和正弦頻率可調(diào) 下載積分: 黑幣 -5
|
評分
-
查看全部評分
|