网络优化公司排名,南阳企业网站排名优化,金塔凯元建设集团有限公司官方网站,做网站一定要用cms吗Keil5-STM32F103C8T6_江协科技移植FreeRTOS模版 1.江协资料(接线图视频相关资料下载)实际接线图(江协科技-STM32F103C8T6) 2.普中科技(STM32-F103玄武-FreeRTOS示例)3.FreeRTOS v9.0.0 下载使用4.开始从江协 3-1 LED闪烁移植FreeRTOS v91.项目文件如下2.复制3-1 LED闪烁项目重命… Keil5-STM32F103C8T6_江协科技移植FreeRTOS模版 1.江协资料(接线图视频相关资料下载)实际接线图(江协科技-STM32F103C8T6) 2.普中科技(STM32-F103玄武-FreeRTOS示例)3.FreeRTOS v9.0.0 下载使用4.开始从江协 3-1 LED闪烁移植FreeRTOS v91.项目文件如下2.复制3-1 LED闪烁项目重命名为 3-FreeRTOS移植模版STM32F103C8T63.打开复制好的项目4.解压FreeRTOSv9.0.0.zip5.在Keil5软件加入FreeRTOS的.c和.h文件6.配置工程include路径7.在Keil5软件修改部分.c和.h文件修改FreeRTOSConfig.h修改stm32f10x_it.c-注释代码修改stm32f10x_it.h-注释代码main.c修改 8.编译 运行编译-没有报错运行-led闪烁 5.参考资料6.百度云资料 1.江协资料(接线图视频相关资料下载) [3-2] LED闪烁LED流水灯蜂鸣器江协接线图 3-2 LED流水灯 江协示例程序 3-1LED闪烁 江协STM32资料下载
实际接线图(江协科技-STM32F103C8T6) 2.普中科技(STM32-F103玄武-FreeRTOS示例) 2.3-FreeRTOS移植--FreeRTOS移植普中STM32-F103玄武资料(FreeRTOS)下载
3.FreeRTOS v9.0.0 下载使用
我这边用到的是普中科技RTOS视频中介绍的FreeRTOS v9.0.0 如何下载使用FreeRTOS请参考我的文章 [嵌入式embed]Keil5打开FreeRTOS-v9项目提示:This is an MDK Version 4 project requiring…
4.开始从江协 3-1 LED闪烁移植FreeRTOS v9
1.项目文件如下 2.复制3-1 LED闪烁项目重命名为 3-FreeRTOS移植模版STM32F103C8T6 3.打开复制好的项目 4.解压FreeRTOSv9.0.0.zip 在3-FreeRTOS移植模版STM32F103C8T6创建FreeRTOS文件夹 复制FreeRTOSv9.0.0/FreeRTOS/Source的文件到 3-FreeRTOS移植模版STM32F103C8T6\FreeRTOS 删除FreeRTOS/porable部分文件夹,只保留Keil MemMang RVDS 复制FreeRTOSv9.0.0\FreeRTOS\Demo\CORTEX_STM32F103_Keil下的 FreeRTOSConfig.h到User文件夹 5.在Keil5软件加入FreeRTOS的.c和.h文件 新建三个Group,FreeRTOS_core 和 FreeRTOS_port 和 include FreeRTOS_core 引入 FreeRTOS的.c文件 FreeRTOS_port 引入FreeRTOS\portable\MemMang的heap_4.c FreeRTOS_port 引入FreeRTOS\portable\RVDS\ARM_CM3的port.c文件 include 引入FreeRTOS\include的所有.h文件 User引入FreeRTOSConfig.h System文件夹复制一些文件,并引入System 6.配置工程include路径 最终项目结构如图: 7.在Keil5软件修改部分.c和.h文件
修改FreeRTOSConfig.h /* 添加必须的四个宏 */
#define xPortPendSVHandler PendSV_Handler
#define vPortSVCHandler SVC_Handler
#define xPortSysTickHandler SysTick_Handler
#define INCLUDE_xTaskGetSchedulerState 1修改stm32f10x_it.c-注释代码 修改stm32f10x_it.h-注释代码 main.c修改
main.c完整替换
#include system.h
#include SysTick.h
#include led.h
#include usart.h
#include FreeRTOS.h
#include task.h//任务优先级
#define START_TASK_PRIO 1
//任务堆栈大小
#define START_STK_SIZE 128
//任务句柄
TaskHandle_t StartTask_Handler;
//任务函数
void start_task(void *pvParameters);//任务优先级
#define LED1_TASK_PRIO 2
//任务堆栈大小
#define LED1_STK_SIZE 50
//任务句柄
TaskHandle_t LED1Task_Handler;
//任务函数
void led1_task(void *pvParameters);/*******************************************************************************
* 函 数 名 : main
* 函数功能 : 主函数
* 输 入 : 无
* 输 出 : 无
*******************************************************************************/
int main()
{SysTick_Init(72);NVIC_PriorityGroupConfig(NVIC_PriorityGroup_4);//设置系统中断优先级分组4LED_Init();USART1_Init(115200);//创建开始任务xTaskCreate((TaskFunction_t )start_task, //任务函数(const char* )start_task, //任务名称(uint16_t )START_STK_SIZE, //任务堆栈大小(void* )NULL, //传递给任务函数的参数(UBaseType_t )START_TASK_PRIO, //任务优先级(TaskHandle_t* )StartTask_Handler); //任务句柄 vTaskStartScheduler(); //开启任务调度
}//开始任务任务函数
void start_task(void *pvParameters)
{taskENTER_CRITICAL(); //进入临界区//创建LED1任务xTaskCreate((TaskFunction_t )led1_task, (const char* )led1_task, (uint16_t )LED1_STK_SIZE, (void* )NULL,(UBaseType_t )LED1_TASK_PRIO,(TaskHandle_t* )LED1Task_Handler); vTaskDelete(StartTask_Handler); //删除开始任务taskEXIT_CRITICAL(); //退出临界区
} //LED1任务函数
void led1_task(void *pvParameters)
{while(1){LED30;vTaskDelay(200);LED31;vTaskDelay(800);}
}
8.编译 运行
编译-没有报错 运行-led闪烁 5.参考资料
三分钟移植FreeRTOS
6.百度云资料 完整项目资源