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

【STM32入门教程】新建工程

目前stm32的开发方式主要有基于寄存器的方式、基于标准库也就是库函数的方式和基于HAL库的方式

  • 基于寄存器的方式是用程序直接配置寄存器来达到想要的功能,这种方式最底层、最直接,效率更高一些,但是由于stm32的结构复杂,寄存器太多,所以基于寄存器的方式目前不推荐
  • 基于库函数的方式是使用st官方提供的封装好的函数,通过调用这些函数来间接的配置寄存器,由于st对寄存器封装的比较好,所以这种方式既能满足对寄存器的配置,对开发人员也比较友好,有利于提高开发效率
  • 基于hal库的方式可以用图形化界面快速配置stm32,比较适合快速上手stm32 的情况,但是这种方式隐藏了底层逻辑

一、新建工程

首先新建文件夹

给工程命名

选择对应的器件型号

这个弹出的是keil新建工程小助手,可以直接关闭

新的工程就建好了,但是还不能用,需要添加一些工程的必要文件

二、添加工程必要文件到工程文件夹

按照下面路径打开

这些就是STM32的启动文件,stm32的程序就是从启动文件开始执行的

将这些文件全部复制下来,打开刚刚新建的工程的文件夹

如果直接粘贴刚刚的文件较乱,所以再新建一个文件夹,命名为Start,将启动文件粘贴到这里面

接着打开到这个路径

是stm32f10x.h是stm32外设寄存器描述文件,用来描述stm32有哪些寄存器和它对应的地址

下面两个system文件主要是用来配置时钟的,stm32 主频72mhz就是system文件配置的

将这三个文件复制下来也粘贴到start文件夹下

由于stm32是由内核和外围寄存器组成的,所以还需要添加内核寄存器的描述文件

打开如下路径,找到这两个文件,就是内核的寄存器描述,当然还包括了内核的配置函数

将这两个文件夹一并复制粘贴到start文件夹下

三、将必要文件添加到工程里

回到工程界面,单击这个文件夹改名为start

右键添加存在的文件到文件夹

选择all files

添加启动文件,启动文件只能添加一个,选择后缀为md.s的启动文件

然后剩下的.c和.h文件都要添加进来,选中后点击add 

 这样就将start文件夹里的文件就添加好了,这些都是只读文件,不可以修改

需要添加这些文件的头文件路径

点击魔术棒,在C/C++点击Include Paths把start文件夹的路径添加进来

这样就添加了头文件路径

四、新建main函数所在文件夹user

在工程文件夹新建一个文件夹user

在工程中target右键,添加组

重命名为user

右键文件夹新建文件,命名为main,路径改为user文件夹,否则是放在文件夹外面的

点击add添加成功

在main.c中右键插入头文件

然后写一个main函数,文件最后一行必须是空行,否则会报警告

如果出现很多报错,将version6 改成version5

五、修改字体格式大小

点击扳手工具,可以修改字体字号

这个改成utf8可以避免中文乱码,如果遇到乱码,也可以更改为合适的格式就可以避免乱码

http://www.xdnf.cn/news/18317.html

相关文章:

  • 开源代码——gtsam_points配置安装
  • 机器学习经典算法总结:K-Means聚类与集成学习(Bagging, Boosting, Stacking)
  • 桌面挂件不能承受之重——GIF
  • 机器学习之数据预处理学习总结
  • MybatisPlusAutoConfiguration源码阅读
  • 强化学习算法分类与介绍(含权重更新公式)
  • 深度解析Atlassian 团队协作套件(Jira、Confluence、Loom、Rovo)如何赋能全球分布式团队协作
  • Windows查看端口占用情况
  • 2025年物流大数据分析的主要趋势
  • 【LeetCode 热题 100】322. 零钱兑换——(解法二)自底向上
  • 嵌入式接口通识知识之SDIO接口
  • 聚铭安全管家平台2.0实战解码 | 安服篇(四):重构威胁追溯体系
  • 手写MyBatis第28弹:告别代理,直击本质:手写MyBatis SqlSession的增删改查奥秘
  • 「数据获取」《中国环境统计年鉴》(1998-2024)(获取方式看绑定的资源)
  • C# 编写一个XmlToDota的转换工具
  • Seaborn数据可视化实战:Seaborn入门-环境搭建与基础操作
  • [ Servlet 服务器]
  • electron-vite_18Less和Sass共用样式指定
  • 基于混合注意力网络和深度信念网络的鲁棒视频水印技术基础理论深度解析
  • AI设计师-标小智旗下AI在线设计平台
  • [论文阅读] 人工智能 + 软件工程 | 当AI成为文学研究员:Agentic DraCor如何用MCP解锁戏剧数据分析
  • 设计模式之观察者模式
  • 为什么可以kvcache
  • 订单簿数据深度学习方法在大单发现应用
  • 微信小程序集成vant-weapp时,构建npm报错的解决办法
  • 深度学习-计算机视觉-物体检测与边缘框实现
  • 区块链联邦学习思路一
  • 机器学习两大核心算法:集成学习与 K-Means 聚类详解
  • 如何保证数据库和缓存的一致性?
  • Java设计模式-模板方法模式