方法一:定時器定時I/O反轉生成脈沖波形
1、建立STM32Cube選擇STM32F429,我使用的STM32F429-discovery開發板,晶振是8MHz,時鍾配置為180M,這樣定時器內部時鍾源為90HHz。
2、使能TIM2,時鍾源選擇內部時鍾,如下圖所示:

3、這里采用通用定時器產生定時中斷,在中斷里面翻轉芯片管腳,定時器配置如下:


4、生成源代碼,設置在keil 5環境下,編譯工程;
5、
中斷回調函數處進行管腳翻轉,另
為了能夠實現不同頻率的脈沖波,同時添加了修改定時器的周期的命令,如下圖所示:

在主循環之前需要打開定時器,使用函數:HAL_TIM_Base_Start_IT(&htim2);
方法二:使用定時器的PWM波功能可生成脈沖波形
1、建立STM32Cube工程,與方法一相同;
2、使能TIM2,時鍾源選擇內部時鍾,選擇channel 1,PWM Generation CH1功能,如下圖所示;

3、定時器配置如下圖所示:


4、生成源代碼,我的環境是Keil 5;
5、為了能夠實現不同頻率的脈沖波,我特意在中斷回調函數的地方,添加了修改定時器的周期的命令,如下圖所示

在主循環之前打開定時器,使用函數:HAL_TIM_OC_Start_IT(&htim2, TIM_CHANNEL_1);
注意:在這里必須直接使用寄存器設置,方能實現周期變化,如果使用HAL_TIM_OC_Init(),則波形出現亂碼,具體原因沒有查明;
6、最終通過示波器,查看輸出波形如下圖所示:

剛好10個周期為一個循環,高電平脈寬不變,而周期逐次增大。