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