CubeMX生成STM32F1+FREERTOS初始代码在VScode和Keil无法编译的问题

📅 2026/7/9 7:07:00
CubeMX生成STM32F1+FREERTOS初始代码在VScode和Keil无法编译的问题
一、VScode一问题1freertos_os2.h:134:4: error: #error Definition INCLUDE_xTaskGetCurrentTaskHandle must equal 1 to implement Thread Management API.把include parameters里面的xTaskGetCurrentTaskHandle改成ENable二问题二cmsis_os2.c 第 31 行报错 error: #include expects FILENAME or FILENAME导致 NVIC_SetPriority、SysTick 等未定义。如图所示在根目录CMakeLists.txt的# Add STM32CubeMX generated sources前一行添加一行add_definitions(-DCMSIS_device_headerstm32f1xx.h)(三)问题三port.c 和 cmsis_os2.c 都定义了 SysTick_Handlermultiple definition。在Inc里找到FreeRTOSConfig.h在下面用户代码区添加一行把一个SysTick_Handler指向别的地方去#define SysTick_Handler SysTick_Handler_Dummy二、keil编译 cmsis_os2.c 时报错 #13: expected a file name指向 freertos_os2.h 的 #include CMSIS_device_header 行。这个把库的版本改成1.8.5就能通过不知道ST的人是怎么测试的