A01-固件库开发模板

news2024/11/16 13:31:33

🧑‍🎓 个人主页Silence Lamb
📖 本章内容:【固件库开发模板


Silence-STM v1.0.0

基于固件库开发模板

一、前提准备

  • 🚀从ST官网获取stm32f103标准例程固件库
  • 🚀 参考文档

在这里插入图片描述

1.1🌳【新建工程】

  • 🌳为了工程目录更加清晰,我们在本地新建一个“工程模板”文件夹
  • 🌳在它之下再新建 6 个文件夹,具体如下
名称作用
Doc用来存放程序说明的文件,由写程序的人添加
Libraries存放的是库文件
Listing存放编译器编译时候产生的 C、 汇编 、链接的列表清单
Output存放编译产生的调试信息、hex 文件、预览信息、封装库等
Project用来存放工程
User用户编写的驱动文件

1.2🌳【添加文件】

  • 🌳在本地新建好文件夹后,把准备好的库文件添加到相应的文件夹下:

  • 🌳Libraries: Template\Libraries\CMSIS
    在这里插入图片描述

  • 🌳Libraries: Template\Librariesr
    在这里插入图片描述

  • 🌳User: main.c

#include "stm32f10x.h"

int main()
{
	
	while(1)
	{
		
	}
}

在这里插入图片描述


二、新建工程

2.1🍑【新建工程】

  • 🍑新建工程:Template(中文是模版的意思),保存在 ProjectRVMDK(uv5)文件夹下
    在这里插入图片描述
  • 🍑 选择 CPU 型号:这个根据你开发板使用的 CPU 具体的型号来选择
    在这里插入图片描述

2.2🍑【组文件夹】

🍑在新建的工程中添加 5 个组文件夹

  • 用来存放各种不同的文件,文件从本地建好的工程文件夹下获取
  • 双击组文件夹就会出现添加文件的路径,然后选择文件即可

在这里插入图片描述
在这里插入图片描述


三、配置选项

3.1🍑【配置选项】

  • 🍑Target 中选中微库“Use MicroLib”,为的是在日后编写串口驱动的时候可以使用 printf 函数
    在这里插入图片描述

  • 🍑 在 Output 选项卡中把输出文件夹定位到我们工程目录下的“output”文件夹

  • 🍑如果想在编译的过程中生成 hex 文件,那么那 Create HEX File 选项勾上
    在这里插入图片描述

  • 🍑 在 Listing 选项卡中把输出文件夹定位到我们工程目录下的“Listing”文件夹
    在这里插入图片描述

  • 🍑STM32F10X_HD 宏:为了告诉 STM32 标准库,我们使用的芯片类型是 STM32 型号是大容量的,使 STM32 标准库根据我们选定的芯片型号来配置

  • 🍑 USE_STDPERIPH_DRIVER 宏:为了让 stm32f10x.h 包含 stm32f10x_conf.h 这个头文件。
    在这里插入图片描述

  • 🍑在 C/C++ 选项卡中添加处理宏及编译器编译的时候查找的头文件路径

  • 🍑如果头文件路径添加有误,则编译的时候会报错找不到头文件
    在这里插入图片描述

  • Include Paths ”这里添加的是头文件的路径,如果编译的时候提示说找不到头文件,一般就是这
    里配置出了问题。你把头文件放到了哪个文件夹,就把该文件夹添加到这里即可

3.2🍑【仿真器配置】

在这里插入图片描述

  • 🍑Utilities 选择 Use Debug Driver
    在这里插入图片描述
    在这里插入图片描述

3.3🍑【CPU 型号】

在这里插入图片描述

3.4🍑【常见错误】

在这里插入图片描述
在这里插入图片描述

会导致报错的情况案例:

  • 1、启动文件为startup_stm32f10x_md.s,C/C++的Define为 STM32F10X_HD,会报错 因为头文件定义与启动文件不一致

  • 2、启动文件为startup_stm32f10x_md.sC/C++的Define为 STM32F10X_MD,驱动(Device)选择STM32F103ZE,会报错 因为STM32F103ZE系列芯片属于大容量芯片,而MD属于中容量芯片驱动文件 -

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

[HAOI2011]Problem b(莫比乌斯反演)

[HAOI2011]Problem b 题目链接:https://www.luogu.com.cn/problem/P2522 题目描述 对于给出的 nnn 个询问,每次求有多少个数对 (x,y)(x,y)(x,y),满足 a≤x≤ba \le x \le ba≤x≤b,c≤y≤dc \le y \le dc≤y≤d,且 …

【CE】Mac下的CE教程Tutorial:进阶篇(第7关:代码注入)

▒ 目录 ▒🛫 导读开发环境1️⃣ 第7关:代码注入翻译非代码注入完成任务代码注入完成任务🛬 文章小结📖 参考资料🛫 导读 开发环境 版本号描述文章日期2023-03-操作系统MacOS Big Sur 11.5Cheat Engine7.4.3 1️⃣ 第…

PADS生成SMT坐标文件

做SMT时,除了“gerber文件”外,还要提供 “BOM文件” 和 “坐标文件”。 “gerber文件” 和 “BOM文件”,前面都有介绍过了,现在详细说一下生成“坐标文件”的方法。 贴片厂家提供了操作教程,如下: 所以&a…

Leetcode力扣秋招刷题路-0289

从0开始的秋招刷题路,记录下所刷每道题的题解,帮助自己回顾总结 289. 生命游戏 根据 百度百科 , 生命游戏 ,简称为 生命 ,是英国数学家约翰何顿康威在 1970 年发明的细胞自动机。 给定一个包含 m n 个格子的面板&a…

应届生,实力已超6年,太卷了!

你好,我是田哥今晚上,给一位朋友做模拟面试,原本说好的90分钟左右,结果整了2个多小时。很多人估计也很好奇,我们这两个多小时聊聊什么,下面我给大致总结一下:面试技巧面试中,我们回答…

企业招采系统实现方案(SRM系统)

企事业数字化转型专家,提供各类应用解决方案。您身边的赋能小助手! 文章目录前言一、当下采购的痛点二、解决方案-供应商管理1.供应商管理三、解决方案-企业询价、供应商报价管理四、解决方案-采购订单五、送货、到货、订单管理总结前言 随着各类产业链…

JS实用技巧断点调试详解

调试能力是一个程序员的生存根本,可是很多初学者却忽视调试。今天我们就来讨究一下JS的调试技巧。本文章将会详细列举JS相关的各种实用调试技巧。 如果您是JS的初学者,那么这篇文章将对您有很大的帮助。为什么要调试?程序就是函数堆砌起来的…

智驾升级!ADB+AFS「起势」

目前,乘用车前大灯已经完成从传统卤素、氙气到LED的转型升级,高工智能汽车研究院监测数据显示,2022年中国市场(不含进出口)乘用车前装标配LED前大灯搭载率达到75.99%,同比2021年提高约7个百分点。 而相比而…

2023.4.16 第四十九次周报-2

目录 前言 文献阅读 :基于动态分类的长短期记忆网络模型,用于不同气候区日流量预报 背景 主要贡献 思路 动态分类 (DC) 方法 DC-LSTM 和 DC-B-LSTM 模型 Box -Cox数据转换 模型性能评估指标 克里金插值源码总结 第一部分 第二部分…

网络连通性测试-防甩锅套路

一、前言 为什么要写这个东西呢?怎么涉及到甩锅呢?说白了就是在各种对接过程中,总会遇到一些喜欢甩锅的人,说是你的问题,什么网络没毛病,是你的接口什么的不对,总之就是你的问题~ 这时候什么最…

游戏解密之常见网络游戏同步方式分析

一、为什么需要有同步呢? 同步机制是用来维护游戏的一致性,通俗的说就是虚拟世界中的事实;比如在CF中,大家的PING都很高,A和B两个玩家同时发现了对方,并向对方开火,如果没有很好的同步机制&…

50 Projects 50 Days - Rotating Navigation Animation 学习记录

项目地址 Rotating Navigation Animation 展示效果 Rotating Navigation Animation 实现思路 结构主要分为两部分,绕左上角旋转的部分:包括按钮圆盘和内容区,以及左下角移出的导航栏部分。 整个界面只在左上角圆盘的按钮点击时发生改变…

Sarsa VS Q-Learning

前言 1.如何计算价值函数? 为了使模型训练的最好,学习到更多有用的知识即完成任务的最好策略。对策略好坏的评价标准自然是得到最多最好的奖励,那么如何找到最好的最好的奖励,即如何得到最好的价值函数? 首先对于在状…

Leetcode.2280 表示一个折线图的最少线段数

题目链接 Leetcode.2280 表示一个折线图的最少线段数 Rating : 1681 题目描述 给你一个二维整数数组 stockPrices,其中 stockPrices[i] [dayi, pricei]表示股票在 dayi的价格为 pricei 。折线图 是一个二维平面上的若干个点组成的图,横坐标…

ROS学习——艰辛的环境安装之路一Ubuntu

文章目录Ubuntu安装和下载页面设置安装Vmware Tools安装VSCODE用几个常用命令简单熟悉下UbuntuUbuntu 安装和下载 Ubuntu的安装和下载 看这个链接 Ubuntu安装和下载1 或者这个链接 Ubuntu安装和下载2 页面设置 安装Vmware Tools 看这个链接 VMware Tools的介绍和安装 安装…

算法训练第五十五天 | 392.判断子序列、115.不同的子序列

动态规划part15392.判断子序列题目描述思路总结115.不同的子序列题目描述思路392.判断子序列 题目链接:392.判断子序列 参考:https://programmercarl.com/0392.%E5%88%A4%E6%96%AD%E5%AD%90%E5%BA%8F%E5%88%97.html 题目描述 给定字符串 s 和 t &…

RabbitMQ 基础篇 | 黑马

目录 一、RabbitMQ简介 1、AMQP 2、基本概念 3、工作模式 4、JMS 5、小结 二、快速入门 简单模式 生产者 消费者 三、工作模式 1、Work queues 工作队列模式 2、Pub/Sub 订阅模式 3、Routing 路由模式 4、Topics 通配符模式 四、SpringBoot整合RabbitMQ 1、生产…

ESP32设备驱动-BME680环境传感器驱动

BME680环境传感器驱动 文章目录 BME680环境传感器驱动1、BME680介绍2、硬件准备3、软件准备4、驱动实现1、BME680介绍 BME680 是一款集成环境传感器,专为尺寸和低功耗是关键要求的移动应用和可穿戴设备而开发。 BME680 扩展了 Bosch Sensortec 现有的环境传感器系列,首次集成…

电影《龙马精神》观后感

上周看了龙叔的电影《龙马精神》,整体故事围绕着一匹马而展开的,因为这匹马,饰演罗师傅的龙叔,被小混混催债,因为这匹马,罗师傅才有机会和女儿接触,因为这匹马,才有机会看见女婿。 看…

数据结构-排序

本节目标: 1.排序的概念及其运用 2.常见排序算法的实现 3.排序算法复杂度及稳定性分析 1.排序的概念及其应用 1.1排序的概念 排序就是按照某个我们设定的关键字,或者关键词,递增或者递减,完成这样的操作就是排序。 1.2排…