freertos入门(stm32f10c8t6版闪烁灯)

首先到官网下载freertos源码,然后找一个stm32f10c8t6的空模板,这个空模板实现点灯之类的都行。
然后在这个空模板的工程下新建一个FreeRtos文件夹
在这里插入图片描述
接着在FreeRtos文件夹下新建三个文件夹,分别是src存放源码
inc 存放头文件,port 存放移植平台相关文件
在这里插入图片描述
接着把FressRTOS的这个目录的文件全部复制到创建的port文件夹下(注意一个是你下载的FreeRTOS源码目录,一个是刚创建的stm32空模板,别搞乱了)
在这里插入图片描述
在这里插入图片描述
然后把FreeRTOS这个目录下文件也复制到刚创建的port文件夹下
在这里插入图片描述
然后回到FreeRTOS的根目录,复制这些到src文件夹下
在这里插入图片描述
在这里插入图片描述
接着复制FreeRTOS的这些到inc文件夹下
在这里插入图片描述
在这里插入图片描述
最后把FreeRTOS下的这个复制到模板工程下
在这里插入图片描述
在这里插入图片描述
然后打开这个模板工程。点击魔术棒到C++那添加文件路径
在这里插入图片描述
在这里插入图片描述
然后给每个文件夹添加文件
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
仔细看对着添加进去就好了,然后编译一下项目。
接着在这个配置文件中添加宏变量
在这里插入图片描述
然后注释三个函数SVC_Handler PendSV_Handler SysTick_Handler
在这里插入图片描述

然后开始编写代码,我们这里是让C13引脚输入高低电平实现LED灯闪烁的一个任务,代码如下:

#include "stm32f10x.h"                  // Device header
#include "Delay.h"
#include "freertos.h"
#include "task.h"TaskHandle_t myTaskHandler;
void MyTask(void* arg){while(1){GPIO_ResetBits(GPIOC, GPIO_Pin_13);vTaskDelay(300);GPIO_SetBits(GPIOC, GPIO_Pin_13);vTaskDelay(300);}
}void InitLED(){RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE);GPIO_InitTypeDef GPIO_InitStructure;GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;GPIO_InitStructure.GPIO_Pin = GPIO_Pin_13;GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;GPIO_Init(GPIOC, &GPIO_InitStructure);}
int main(void)
{InitLED();xTaskCreate(MyTask, "Task1", 512, NULL, 2, &myTaskHandler);vTaskStartScheduler();
}

然后下载进板子就可以看到小灯闪烁了,还有一种可以看到现象用逻辑分析仪:
首先打开魔术棒,然后设置如下
在这里插入图片描述
然后点击Debug开始按钮,点击Setup,设置为PORTC.13,Bit接收
在这里插入图片描述
然后点击全速运行,左上角
在这里插入图片描述

出现
在这里插入图片描述
这下可以看到成功了,恭喜你做到了入门

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/160725.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

速卖通新卖家有必要测评吗?

大家都知道通过测评可以提升产品的转化率,提升产品的销量,那么做速卖通的卖家有必要测评吗? 测评就是类似于国内电商的补单,而一个类目里面竞争很大很卷的话,不去补销量来提升产品的权重,凭借着平台给的自…

[每周一更]-(第70期):常用的GIT操作命令

1、增删文件 # 添加当前目录的所有文件到暂存区 $ git add .# 添加指定文件到暂存区 $ git add <file1> <file2> ...# 添加指定目录到暂存区&#xff0c;包括其子目录 $ git add <dir># 删除工作区文件&#xff0c;并且将这次删除放入暂存区 $ git rm [file…

redis源码分析之IO多路复用

文章目录 1、简述2、多路复用的三个函数3、创建epoll实例4、绑定端口、监听端口5、向epoll实例注册连接事件6、从epoll实例中获取就绪的事件 1、简述 众所周知&#xff0c;redis是一款抗高并发的利器&#xff0c;据官方压测&#xff0c;单机可达10万qps。但背后实际处理命令的…

园区网真实详细配置大全案例

实现要求&#xff1a; 1、只允许行政部电脑对全网telnet管理 2、所有dhcp都在核心 3、wifi用户只能上外网&#xff0c;不能访问局域网其它电脑 4、所有接入交换机上bpdu保护 5、只允许vlan 10-40上网 5、所有接入交换机开dhcp snoop 6、所有的交换机指定核心交换机为ntp时间服务…

MySQL 外连接和内连接的查询优化怎么做?

目录 1. 表连接方式的分类和需要注意的细节 2. 表连接时底层做了什么事&#xff1f; 3. 左外连接优化方案 4. 内连接优化方案 1. 表连接方式的分类和需要注意的细节 多表连接查询&#xff0c;大体上可以分为内连接与外连接。 内连接的意思就是把两个表有关联的部分都取出…

cmake find_package、引用GDAL 初步学习

上次的源码的CMakeLists.txt文件里有 find_package(GDAL REQUIRED) 这句; 从字面意思看此源码需要GDAL库; 查了一下,find_package 指令的基本功能是查找第三方库,并返回其细节; 我当前GDAL安装在D:\GDAL; 先把它的CMakeLists.txt重命名为别的,不使用; 新建一个C…

C++:set和map的使用

set和map的使用 1.关联式容器2.key模型和key_value模型3.set3.1一些注意点3.2set的使用3.3习题 4.multiset5.map5.1一些注意点5.2map的使用5.3习题 6.multimap 1.关联式容器 序列式容器&#xff1a;比如我们之前讲的vector、string、list等均为序列式容器&#xff0c;特点是按…

ubuntu中如何设置中文输入

文章目录 1.找到设置&#xff08;settings&#xff09;2.找到keyboard3.点击Chinese&#xff0c;选择intelligent pinyin&#xff0c;并点击add4.打开浏览器测试一下 1.找到设置&#xff08;settings&#xff09; 2.找到keyboard 3.点击Chinese&#xff0c;选择intelligent pin…

项目实战:通过axios加载水果库存系统的首页数据

1、创建静态页面 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>Title</title><link rel"stylesheet" href"style/index.css"><script src"script/axios.mi…

Go语言与Python语言的性能比较

目录 一、背景与意义 二、执行速度 三、内存消耗 四、并发性能 五、编译速度与开发效率 六、综合考虑 七、应用场景 八、未来发展趋势 总结 一、背景与意义 在编程世界中&#xff0c;Go语言和Python语言都占有一席之地。Go语言是由Google开发的&#xff0c;其设计初衷…

升级 MacOS 系统后,playCover 内游戏打不开了如何解决

我们有些小伙伴在升级了 macOS 系统后大概率会遇到之前能够正常使用的 playCover 突然游戏打不开了&#xff0c;最近 mac 刚刚正式推出了 MacOS 14.1 ,导致很多用户打开游戏会闪退&#xff0c;我们其实只需要更新一下 playCover 就可以解决 playCover 正式版更新会比较慢所以我…

LInux之在同一Tomcat下使用不同的端口号访问不同的项目

&#x1f389;&#x1f389;欢迎来到我的CSDN主页&#xff01;&#x1f389;&#x1f389; &#x1f3c5;我是君易--鑨&#xff0c;一个在CSDN分享笔记的博主。&#x1f4da;&#x1f4da; &#x1f31f;推荐给大家我的博客专栏《LInux实战开发》。&#x1f3af;&#x1f3af; …