模板下载:
链接:https://pan.baidu.com/s/1N32Hx7cTbDoRinuzTUB3zw 提取码:6aox
1、MDK使用MDK5.26及其以上版本。
2、IAR使用IAR8.30及其以上版本。
3、教程直可以先看之前发布的,除了新增的一些功能,其它功能基本没区别:
https://www.cnblogs.com/armfly/p/11256219.html
/************************************************************************************************************ 模块名称 : 主程序模块。* 文件名称 : main.c* 版 本 : V1.0* 说 明 : 本实验主要学习FreeRTOS的串口调试方法(打印任务执行情况)* 实验目的:* 1. 学习FreeRTOS的串口调试方法(打印任务执行情况)。* 2. 为了获取FreeRTOS任务的执行情况,需要执行如下三个操作* a. 在FreeRTOSConfig.h文件中使能如下宏* #define configUSE_TRACE_FACILITY 1* #define configGENERATE_RUN_TIME_STATS 1* #define configUSE_STATS_FORMATTING_FUNCTIONS 1* #define portCONFIGURE_TIMER_FOR_RUN_TIME_STATS() (ulHighFrequencyTimerTicks = 0ul)* #define portGET_RUN_TIME_COUNTER_VALUE() ulHighFrequencyTimerTicks* b. 创建一个定时器,这个定时器的时间基准精度要高于系统时钟节拍,这样得到的任务信息才准确。* c. 调用函数vTaskList和vTaskGetRunTimeStats即可获取任务任务的执行情况。* 实验内容:* 1. 按下按键K1可以通过串口打印任务执行情况(波特率115200,数据位8,奇偶校验位无,停止位1)* =================================================* 任务名 任务状态 优先级 剩余栈 任务序号* vTaskUserIF R 1 318 1* IDLE R 0 118 5* vTaskLED B 2 490 2* vTaskMsgPro B 3 490 3* vTaskStart B 4 490 4** 任务名 运行计数 使用率* vTaskUserIF 467 <1%* IDLE 126495 99%* vTaskMsgPro 1 <1%* vTaskStart 639 <1%* vTaskLED 0 <1%* 串口软件建议使用SecureCRT(V7光盘里面有此软件)查看打印信息。* 各个任务实现的功能如下:* vTaskTaskUserIF 任务: 接口消息处理 * vTaskLED 任务: LED闪烁* vTaskMsgPro 任务: 消息处理,这里是用作LED闪烁* vTaskStart 任务: 启动任务,也就是最高优先级任务,这里实现按键扫描* 2. 任务运行状态的定义如下,跟上面串口打印字母B, R, D, S对应:* #define tskBLOCKED_CHAR ( 'B' ) 阻塞* #define tskREADY_CHAR ( 'R' ) 就绪* #define tskDELETED_CHAR ( 'D' ) 删除* #define tskSUSPENDED_CHAR ( 'S' ) 挂起* #define tskRUNNING_CHAR ( 'X' ) 运行* 注意事项:* 1. 本实验推荐使用串口软件SecureCRT,要不串口打印效果不整齐。此软件在* V7开发板光盘里面有。* 2. 务必将编辑器的缩进参数和TAB设置为4来阅读本文件,要不代码显示不整齐。** 修改记录 :* 版本号 日期 作者 说明* V1.0 2019-05-02 Eric2013 1. ST固件库到V1.3.0版本* 2. BSP驱动包V1.2* 3. FreeRTOS版本V10.2.0** Copyright (C), 2019-2030, 安富莱电子 www.armfly.com***********************************************************************************************************/