本篇文章主要介绍本人早期的基于STM32标准库的程序框架,希望能给人以收获。
1.开发环境
软件环境
使用MDK5.25版本,芯片包为STM32F1系列。
硬件环境
开发板:一块STM32F103C8T6开发板(FLASH:64kBytes,RAM:20kBytes),是一款中等容量的芯片。
烧录器:STlink或者Jlink。
2.工程创建
创建文件夹
现在本地文件夹下创建4个文件夹,分别是APP(存放应用层代码),LIB(存放STM32标准库相关文件),CORE(存放STM内核与启动文件等),Project(存放工程相关文件)。
创建工程
在MDK中新建工程,保存到刚刚创建的本地文件夹下的Project文件夹中,并选择STM32F103芯片。
后面会弹出选择其他驱动组件的界面,直接选择取消。
接着直接用正点原子战舰板资料(推荐下载,软硬件资料很全)里面的v3.5固件库,把工程需要的文件拷贝到本地文件夹中,如图示主要是拷贝到CORE和LIB文件夹。
我们的LIB文件夹直接拷贝STM32战舰的参考资料STM32F1xx固件库STM32F10x_StdPeriph_Lib_V3.5.0LibrariesSTM32F10x_StdPeriph_Driver文件夹下的inc和src这两个文件夹。
在MDK中导入我们的文件夹结构
在本地APP文件夹中添加main.c等文件夹(记得勾选显示文件拓展名),再添加到MDK中。
最后要指定一下头文件路径和添加全局属性的宏定义。
3.编写代码
打开main.c添加main函数并编译
框架代码编写
(1)系统时基
当我们拿到一块STM板子的时候,我们得看它的外部晶振是多少M的(一般用8M的外部晶振),如果不是8M的晶振就需要修改stm32f10x.h和system_stm32f10x,c里的SetSysClockTo72()函数共两处地方。
开始编写systick.c和systick.h文件。
(2)编写LED程序用于测试
原理图
程序下载
实验现象
代码已全部上传到gitee,希望各位小伙伴们在下载的同时不忘点击Star,地址:https://gitee.com/Notmi/stm32-standard-peripheral-libraries。