1.環境搭建
- STM32CubeMX
- keil5
- stm32f103zet6
2.點亮RTOS的第一盞燈
- 打開STM32CubeMX新建工程並選擇MCU型號爲stm32f103zet6
- 經過查找電路圖發現燈的引腳爲PB5,先將PB5配置爲輸出模式,由於按照電路圖設計,當該引腳爲低電平時候,燈被點亮,故先將該引腳配置爲默認輸出高電平,順便起個別名叫LED0
- 在SYS選項下將調試模式設置爲
Serial Wire
,開啓燒寫調試功能
- 選擇Timebase Source爲systick以外的一個,此處使用TIM1做爲HAL庫時鐘源,systick時鐘源就留給了freeRTOS使用
- 進入工程源碼下的freertos.c文件下編寫任務函數
/* USER CODE BEGIN Header_LED_Task */
/**
* @brief Function implementing the LEDTask thread.
* @param argument: Not used
* @retval None
*/
/* USER CODE END Header_LED_Task */
void LED_Task(void const * argument)
{
/* USER CODE BEGIN LED_Task */
/* Infinite loop */
for(;;)
{
/*燈閃爍*/
HAL_GPIO_WritePin(LED0_GPIO_Port, LED0_Pin, GPIO_PIN_RESET);
osDelay(1000);
HAL_GPIO_WritePin(LED0_GPIO_Port, LED0_Pin, GPIO_PIN_SET);
osDelay(1000);
}
/* USER CODE END LED_Task */
}