1. 利用STM32Cube建立工程模板,並對嵌入式芯片進行正確的引腳配置。
(1)選擇芯片:STM32F103C8Tx,在芯片選擇器中選擇對應的芯片:

(2)選擇自己的仿真器類型:

(3)由於開發板有外部晶振,使用外部時鍾:

(4)為了讓LED閃爍和蜂鳴器響,我們經查找電路圖,對應引腳分別為PB8 和PB14。

(5)接下來配置時鍾樹:

(6)我們用的開發環境是Keil5,所以選擇MDK-ARM。


(7)配置完成后點擊GENERATE CODE 生成代碼。

(8)讓小燈閃爍,在while(1)循環里寫入:

讓蜂鳴器響:

(9)實驗現象:

五、總結:
(1)實現小燈閃爍有兩種方式:
while (1)
{
HAL_GPIO_WritePin(GPIOB,GPIO_PIN_9,GPIO_PIN_SET);
//向PB9輸出高電平,點亮LED1燈
HAL_Delay(500);
//延時500ms
HAL_GPIO_WritePin(GPIOB,GPIO_PIN_8,GPIO_PIN_SET);
//向PB9輸出低電平,熄滅LED1燈
HAL_Delay(500);
//延時500ms
HAL_GPIO_TogglePin(GPIOB,GPIO_PIN_8);
//用翻轉電平的方式,實現LED2燈的點亮與熄滅
HAL_Delay(500);
//延時500ms
/* USER CODE END WHILE */
/* USER CODE BEGIN 3 */
}
(2)GPIO電平翻轉HAL庫函數
void HAL_GPIO_TogglePin(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin); /* 參數1:GPIOx,端口號,如:GPIOB,GPIOF。 參數2:GPIO_Pin,引腳號,如:GPIO_PIN_9,GPIO_PIN_12。 返回值:void,空。 */ //應用舉例:將PB8引腳輸出電平翻轉。 HAL_GPIO_TogglePin(GPIOB, GPIO_PIN_8);
(3) GPIO電平輸出HAL庫函數
void HAL_GPIO_WritePin(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin, GPIO_PinState PinState); /* 參數1:GPIOx,端口號,如:GPIOB,GPIOF。 參數2:GPIO_Pin,引腳號,如:GPIO_PIN_9,GPIO_PIN_12。 參數3:PinState,引腳輸出狀態。高電平----GPIO_PIN_SET;低電平----GPIO_PIN_RESET。 返回值:void,空。 */ //應用舉例:向PB8引腳輸出高電平。 HAL_GPIO_WritePin(GPIOB, GPIO_PIN_8, GPIO_PIN_SET);
