当前位置: 首页 > news >正文

freeRTOS入门学习-基于STM32F103C8T6最小系统板-使用cubeMX创建一个新的工程

一、准备工作

        首先打开我们的cubeMX软件,搜索我们对应的MCU,我这里使用的是c8t6最小系统板

        接下来双击我们需要的芯片型号

二、System Core配置

        进入界面后我们先进行时钟的配置

        将HSE配置为晶振

          然后我们将SYS配置成为serial wire,         

        并且基准时钟选择为TIM4   

        做如上配置的目的是:使用serial wire可以节省出大量的引脚,使用TIM4是因为其他的TIM1、2、3用在其他元件上边

        时钟配置为72MHz最高频率

        ok,那么到这里基础的配置先告一段落。

三、配置FreeRTOS

        下滑找到FreeRTOS,默认是disable,需要配置CMSIS_V2

         打开TASK可以发现启用FreeRTOS之后会创建一个任务,可以进行修改编辑,先保留默认即可

        最后对工程进行命名,以及使用的编译器进行选择

        将这个勾选上,每个外设的代码分为.c和.h

        其余的保留默认,即可进行生成

四、打开keil5的文件

        点击魔术棒,将这个进行勾选

        将这个 取消 勾选 

五、添加点灯的GPIO配置

        回到cubeMX,对板载LED灯PC13进行配置

六、添加驱动文件

        打开keil编译器,添加一个新的group,我命名为hardware

        里边添加驱动文件(韦东山老师资料包中的)如下

七、编写rtos内容

        先打开FreeRTOS.c文件,进行刚刚添加的驱动文件的头文件添加, 

        在这个部分加入LED测试的函数

        编译烧录后非常完美的运行了,板载的LED灯进行闪烁。

八、使用OLED

        重新打开cubeMX,

        选择IIC1之后发现对应 的引脚是PB6、PB7

        选择之后之间生成代码即可。

        打开keil之后还得重复之前一个操作,将Reset自动运行打开和pack的取消勾选。每次重新生成都会变回原来的样子,需要重新配置

        添加驱动文件,切记不要把字库的.c文件加进来,会报错:01_FreeRTOS_my\01_FreeRTOS_my.axf: Error: L6200E: Symbol ascii_font multiply defined (by ascii_font.o and driver_oled.o).

        原因是重复包含了,这个.c文件已经在其他头文件里边包含了

接下来烧录编译,正确接线PB6、7之后就可以显示测试函数的内容了

到此,一个工程已经创建成功

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • SpringBoot 框架学习笔记(七):Thymeleaf、拦截器 和 文件上传实现(解决了文件重名 和 按日期分目录存放问题)
  • Qt/C++最新地图组件发布/历时半年重构/同时支持各种地图内核/包括百度高德腾讯天地图
  • 大数据项目——广告数仓之HTTP概述
  • centos开启samba服务
  • flutter路由配置
  • 使用Python实现深度学习模型:智能垃圾分类与环境保护
  • Navicat—如何查看历史日志
  • 默认序列化会报警告Hessian/Burlap: calss is an unknown class in WebappClassLoader
  • [MRCTF2020]Ezpop
  • Linux驱动开发—设备树描述引脚复用 Pinmux 与Pinctrl
  • (24)(24.1) FPV和仿真的机载OSD(三)
  • 【图书推荐】《数据资产管理核心技术与应用》
  • JAVA中的Wrapper类
  • 认识消息队列:Spring Boot 实现 MQ 消息队列,解锁异步、削峰、广播等高级功能!
  • Pygame游戏开发进阶:碰撞检测和声音效果
  • [ 一起学React系列 -- 8 ] React中的文件上传
  • 【腾讯Bugly干货分享】从0到1打造直播 App
  • angular组件开发
  • httpie使用详解
  • Koa2 之文件上传下载
  • nginx 配置多 域名 + 多 https
  • node 版本过低
  • React-redux的原理以及使用
  • SAP云平台里Global Account和Sub Account的关系
  • Shadow DOM 内部构造及如何构建独立组件
  • STAR法则
  • Sublime Text 2/3 绑定Eclipse快捷键
  • UEditor初始化失败(实例已存在,但视图未渲染出来,单页化)
  • UMLCHINA 首席专家潘加宇鼎力推荐
  • webpack4 一点通
  • weex踩坑之旅第一弹 ~ 搭建具有入口文件的weex脚手架
  • 编写高质量JavaScript代码之并发
  • 产品三维模型在线预览
  • 分布式事物理论与实践
  • 分享几个不错的工具
  • 前端_面试
  • 日剧·日综资源集合(建议收藏)
  • 使用Tinker来调试Laravel应用程序的数据以及使用Tinker一些总结
  • 新手搭建网站的主要流程
  • 3月7日云栖精选夜读 | RSA 2019安全大会:企业资产管理成行业新风向标,云上安全占绝对优势 ...
  • shell使用lftp连接ftp和sftp,并可以指定私钥
  • ​​​​​​​ubuntu16.04 fastreid训练过程
  • ​configparser --- 配置文件解析器​
  • ​软考-高级-信息系统项目管理师教程 第四版【第23章-组织通用管理-思维导图】​
  • (11)MATLAB PCA+SVM 人脸识别
  • (2024,Flag-DiT,文本引导的多模态生成,SR,统一的标记化,RoPE、RMSNorm 和流匹配)Lumina-T2X
  • (7)svelte 教程: Props(属性)
  • (C语言)输入自定义个数的整数,打印出最大值和最小值
  • (day 2)JavaScript学习笔记(基础之变量、常量和注释)
  • (层次遍历)104. 二叉树的最大深度
  • (二十六)Java 数据结构
  • (附源码)spring boot球鞋文化交流论坛 毕业设计 141436
  • (附源码)计算机毕业设计SSM在线影视购票系统
  • (教学思路 C#之类三)方法参数类型(ref、out、parmas)
  • (四)汇编语言——简单程序