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