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 */
}