之前断断续续有在看STM32的教程视频,但是一直没有动手实操起来,这次趁着在校没课,我打算从头看起,在把看到的在这里做个记录,以免忘记了还得去翻各个视频。文中的资源连接在文末有指出。
STM32的硬件暂时先跳过,毕竟我是打算做嵌入式软件的,那就先开始从软件开始。首先就从配置模板开始吧!
1、创建模板文件夹
我在E盘中创建了STM_WorkSpace,用来存每次的工程,在其中创建了Template,用来存模板文件,这样每次创建新工程时,就不用在不同的文件夹里找文件出来了。
2、创建Keil5工程文件
因为文件夹名称好改,但是工程文件不好改名字,所以把工程文件名改成Project。
3、将必要文件添加入模板文件夹中
1、新建Start文件夹并添加各种必要文件
工程文件新建好后,当然是空空如也的,所以我们要把STM32必要的各种文件加入到对应的文件夹中。由于是启动的必要文件,那就新建个文件夹叫Start吧。
在其中添加所有必要的文件。
这些文件分别在
\STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3\CoreSupport、
\STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x和
\STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x\startup\arm
这三个路径下。
其中,
第一部分是内核寄存器的描述文件,都是关于M3内核寄存器操作的函数
第二部分是STM32的启动文件,后缀的hd、ld和md分别对应不同容量的的产品,由于我的是F1的板子,是大容量的产品,所有我选择的是hd结尾的。
第三部分的stm32f10x是外设寄存器的描述文件(作用类似51单片机的REGX52.H)、system_stm32f10x主要是用来配置时钟的。
然后在Keil中新建一个Start文件夹将这些文件全部加入到工程中。
接着在工程选项里添加上这个文件夹的头文件,否者keil软件找不到这些文件的头文件。
2、新建用户文件夹
同样也是现在模板文件夹目录下新建文件夹,因为写的都是用户要的程序,就把文件夹名称为User,在这个文件夹下新建main.c函数来写我们的代码。
回到Keil中,同样新建一个User文件夹,在其中新建一个main.c文件,并在main中写上自己的代码,最后点击编译键,就完成了。
至此,就算是建立好一个基于寄存器开发的工程了。
但是由于寄存器的开发方法比较麻烦,所以更多的还是使用库函数的开发方法,库函数是ST公司厂家提供的、针对自己的STM32微处理器的、MCU内底层IO的驱动程序。
3、添加库函数文件
同样是现在模板文件夹目录下新建一个文件夹用来存放库函数所有的文件,因为库函数文件只是用来调用,跟本书一样,需要的时候才调用,所以就把文件夹名字叫做Libraries。
同样在里面添加库函数的所有文件。所需文件在
将inc文件夹和src文件夹中的所有文件全选、复制到刚刚建立的Libraries里。
这之中是各种外设的封装函数,如MCU内的定时器驱动、UART驱动、SPI驱动、I2C驱动等等。
然后同样在keil里新建一个同名的文件夹,把这些文件全部添加进去。
接着同样是在工程选项里添加上这个文件夹的头文件,否者keil软件找不到这些文件的头文件。
还需要在User文件夹中添加这个路径下的
这三个文件分别是,conf是用来配置库函数头文件之间包含关系的、两个it文件是用来存放中断函数的。
然后回到keil里,同样是添加这三个文件和在工程选项里添加这些函数的头文件。
最后在工程选项里加上这个宏定义USE_STDPERIPH_DRIVER
到这里,模板文件的所有前期准备就都做好了。
视频教程参考B站江科大自化协的STM32入门教程视频https://www.bilibili.com/video/BV1th411z7sn?p=4&vd_source=70f05d670f0e557ebf94b06c44bd7759,他的视频下面有需要的所有资料,我写这篇文章也是参考这个视频的。