STM32开发环境搭建及基础工程创建教程 -- 知识铺
关注 +三连 不错过精彩内容
大家好,我是硬核王同学,最近在做免费的嵌入式知识分享,帮助对嵌入式感兴趣的同学学习嵌入式、做项目、找工作!
一、STM32的三种开发方式
-
基于寄存器的开发:与51单片机类似,用程序直接配置寄存器。最底层,最直接,效率更高。但STM32结构复杂,寄存器太多,不推荐
-
基于标准库(库函数)的开发:使用ST公司已封装好的函数,通过调用这些函数来间接控制寄存器。由于ST对寄存器的封装比较好,既能满足对寄存器的配置,对开发人员更友好
-
基于HAL库的开发:这种方式是图形化界面快速开发,但缺乏对STM32的底层逻辑理解,很难深入学习
二、新建工程所需资料Libraries :库函数的文件,新建工程时会用到
-
Libraries :库函数的文件,新建工程时会用到
-
Project:官方提供的工程示例和工程模板,在使用库函数时可以参考
-
Utilities:STM32官方评估板的相关例程,此文件存储测评程序
*评估板就是官方做的小电路板,用来测评STM32Release_Notes:库函数的发布文档,有版本的说明
-
stm32f10x_stdperiph_lib_um:库函数的使用手册,教大家如何使用库函数
三、新建一个有关标准库的工程
1.新建一个STM32Project文件夹,用来存储后续相关的工程
2.打开Keil,新建工程
进入刚才我们新建的文件夹
再新建一个文件夹,用来存放本次的工程文件
进入新创建的工程文件夹里,新建本次的工程Project,文件名输入好后,点击保存
工程文件夹名是很容易更改的,可以在名称上起到说明的作用,而新建的工程名不方便更改
3.接下来选择对应的器件型号
选择对应芯片型号,这里应选择C8那一项
点击ok,会弹出Keil软件的一个新建工程小助手,这个可以帮助我们快速新建工程,暂时不用,可以直接关掉
此时,工程已经建立完毕,但是还不能直接使用,需要添加一些必要的工程文件
4.移植必要的工程文件
在刚刚新建的工程文件夹里新建个start文件夹
在STM32入门教程资料\固件库\STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x\startup\arm这个路径下复制所有启动文件,粘贴到新建的Start文件夹里
这些是STM32的启动文件,STM32的程序就是从启动文件开始运行的
在STM32入门教程资料\固件库\STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x这个路径下复制这三个文件:stm32f10x.h、system_stm32f10x.h、system_stm32f10x.c,粘贴到新建的Start文件夹里
-
这个stm32f10x.h是STM32外设寄存器描述文件,作用与52单片机REGX52.H头文件作用一样,用来描述STM32有哪些寄存器和它们对应的位置
-
两个以system开头命名的文件是用来配置时钟的,STM32主频72MHz就是由system文件里面的函数配置的
在STM32入门教程资料\固件库\STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3\CoreSupport这个路径下复制这两个文件,粘贴到新建的Start文件夹里
-
STM32是由内核和内核外围设备组成的,而且这个内核寄存器描述和外围设备描述不是在一起的,所以我们还需要添加内核寄存器描述文件,即这两个文件
-
这两个cm3(cortex-m)文件就是内核寄存器的描述,.c是内核的配置函数
这样,我们工程的必要文件就复制完成了,但还需要将这几个文件添加到Keil的工程里来
5.在keil里添加必要的工程文件
这里就是把刚才复制的那些文件,添加到Keil工程里来,点击选中Source Group 1,选中后再点击一下,把这个组名也改为Start
再右键这个文件夹,选择添加已存在的文件到组中
双击打开Start文件夹
点击文件类型小箭头,选择All files(*.*),这样就可以看到文件夹中所有文件了
选择启动文件startup_stm32f10x_md.s的文件,点击Add,添加该文件
按住Ctrl键,依次点击所有的.c.h文件选中,点击Add,添加这些文件,最后点击Close,添加完毕,这样我们的Start文件夹中的文件都添加好了
- 到这里STM32的start文件已经配置好了,这些是STM32最基本的文件不需要修改 ,带黄色小钥匙的意思就是只读文件
6.配置头文件路径
此时还不能正常编译工程,还需在工程选项中添加头文件路径,不然软件是无法找到.h文件的,点击魔术棒
选择C/C++一栏,点击Include Paths右边的三个点的按钮
弹出Folder Setup文本框,点击新建路径
再点击右边三个点的按钮,双击Start文件夹,再点击选择文件夹,将Start的路径添加进来
这样就把Start文件夹的头文件路径加进来了,点击ok完成
7.新建main文件,查看该文件是否可运行
打开工程文件夹,新建一个用来保存main函数文件夹,叫做User
打开Keil,在Target这里右键,点击添加组
创建一个也叫User的文件夹
然后在User上右键,点击添加新文件
选择第一个.c文件,Name为main,注意Location路径,要选择User文件夹,要不然默认是放在文件夹外面的
同时,那在正程文件夹的User目录下,也可以看到我们新建的main.c文件
在这个main.里,我们先右键,插入头文件,选择stm32f10x.h
再写一个main函数
|
|
一定要在末尾多一行空格,否则程序就会报错
然后我们点击这个Build按钮,编译并建立工程
在最下面Build Output一栏可以看待,0错误0警告代表建立的工程没有问题
到目前为止没有添加过STM32的库函数,所以还是一个基于寄存器开发的工程,如果使用寄存器开发,那么工程建到这里就足够了
作 者 :硬核王同学
-—— END ——
关注公众号回复“加群”按规则加入技术交流群 回复“1024”查看更多内容
- 原文作者:知识铺
- 原文链接:https://index.zshipu.com/geek001/post/20240505/STM32%E5%BC%80%E5%8F%91%E7%8E%AF%E5%A2%83%E6%90%AD%E5%BB%BA%E5%8F%8A%E5%9F%BA%E7%A1%80%E5%B7%A5%E7%A8%8B%E5%88%9B%E5%BB%BA%E6%95%99%E7%A8%8B--%E7%9F%A5%E8%AF%86%E9%93%BA/
- 版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 4.0 国际许可协议进行许可,非商业转载请注明出处(作者,原文链接),商业转载请联系作者获得授权。
- 免责声明:本页面内容均来源于站内编辑发布,部分信息来源互联网,并不意味着本站赞同其观点或者证实其内容的真实性,如涉及版权等问题,请立即联系客服进行更改或删除,保证您的合法权益。转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。也可以邮件至 sblig@126.com