基于stm32的水质监测系统项目基础部分详细记录

时间:2022-06-05 14:23:55

基于stm32的水质监测系统项目基础部分详细记录

软件环境:MDK5

硬件环境:STM32F103ZET6 开发板、颜色传感器、串口屏、串口打印机

  1. 搭建工程模板

在进行项目软件的撰写时,首先新建一个基于该项目的工程模板。对于初学者,很多都是直接用开发板提供商提供的现成的工程模板,但是那样的工程模板在项目开发中体态略显臃肿,而且如果直接用别人的工程模板,那么很多搭建工程模板的库文件的用法和功能我们不会很了解,因此,自己新建一个基于项目的工程模板是非常必要的。

  1. 准备工作

新建如下文件夹:

(1)hubu_SocModel:存放所有的工程文件,在该文件夹下新建下面几个文件夹 USER、CORE、FWLIB、OBJ、BSP;

基于stm32的水质监测系统项目基础部分详细记录

(2)USER:在该文件夹中加入如下几个文件:

基于stm32的水质监测系统项目基础部分详细记录

(3)CORE:

基于stm32的水质监测系统项目基础部分详细记录

(4)OBJ:

该文件夹用来存放程序编译过程中产生的中间文件和编译后的.hex文件。在新建工程时,keil会自动给你创建一个Objeting文件夹和一个Listing文件夹,用来存放这些文件,而不会把文件直接存到OBJ文件夹中,所以,需要我们手动把缓存文件的目录更改到OBJ。:

(5)BSP:

存放用户自己撰写的各种函数,分为BSP.c和BSP.h两个文件。基于stm32的水质监测系统项目基础部分详细记录

(6)FWLIB:

  • 基于stm32的水质监测系统项目基础部分详细记录

这两个文件夹里的文件不必全部都加进来,需要用到哪些外设资源就把哪些外设资源存放到该文件夹内。其中inc是include的缩写,表示里面存放的是头文件(.h文件),src是source的缩写,表示里面存放的是源文件(.c文件)。

2.STM32固件库V3.5简介:(注:这部分可以参考一篇csdn文档《STM32固件库文件树及构成详解》)

本系统是基于STM32固件库V3.5进行开发的,下面对以上我们准备的文件的功能进行介绍:

(1)CORE:

core_cm3.c和core_cm3.h是ARM公司提供的内核函数接口,所有的芯片都必须添加该文件.

基于stm32的水质监测系统项目基础部分详细记录

startup_stm32f10x_hd.s是芯片的启动文件,不同型号不同容量的芯片都具有独特的唯一的启动文件,该文件要跟根据芯片的型号和容量进行选择,具体选择方法可参考下图基于stm32的水质监测系统项目基础部分详细记录

基于stm32的水质监测系统项目基础部分详细记录

(1)FWLIB:

Src、inc文件夹主要用来存放芯片上所有外设资源的驱动文件(库文件)。

基于stm32的水质监测系统项目基础部分详细记录

(3)USER

main.c :该文件是用户来编写函数来实现自己需要实现的功能的,有用户自行编写;

stm32f10x_it.c及其头文件:该文件是一个中断处理文件,_it结尾就是interrupt(中断)的意思,说明这个是整个工程的中断处理函数,如果你的工程里面没有用到中断就可以不添加进去,这个文件也可以去掉,将终端文件添加到其他的.c文件里也行;

stm32f10x.h:这是一个很重要的stm32头文件,是一个最为重要的寄存器地址到寄存器结构体变量的映射,具体的分析可以参照这两篇博客:

https://www.cnblogs.com/caihongsheng/p/3513279.html

http://blog.csdn.net/yxfabcdefg/article/details/52798460

system_stm32f10x.c:这个文件提供了两个函数以及一个全局变量,以便被用户程序调用,

包括:系统初始化SystemInit(),旨在初始化系统时钟,设置中断向量表地址。详细分析可参考如下一片csdn博客:http://blog.csdn.net/lushoumin/article/details/77990690

stm32f10x_conf.h : 配置stm32的相关外设,若不用任何外设则也可不添加此文件。

3.新建工程模板

(1)新建工程模板

基于stm32的水质监测系统项目基础部分详细记录

基于stm32的水质监测系统项目基础部分详细记录

基于stm32的水质监测系统项目基础部分详细记录基于stm32的水质监测系统项目基础部分详细记录

(2)文件夹路径设置;

将Output和Listing选项下的文件存放目录设为OBJ;

基于stm32的水质监测系统项目基础部分详细记录

基于stm32的水质监测系统项目基础部分详细记录基于stm32的水质监测系统项目基础部分详细记录

基于stm32的水质监测系统项目基础部分详细记录基于stm32的水质监测系统项目基础部分详细记录

(3)修改文件名,为工程添加文件

点击基于stm32的水质监测系统项目基础部分详细记录

基于stm32的水质监测系统项目基础部分详细记录

基于stm32的水质监测系统项目基础部分详细记录

基于stm32的水质监测系统项目基础部分详细记录

基于stm32的水质监测系统项目基础部分详细记录

基于stm32的水质监测系统项目基础部分详细记录

(4)添加头文件路径

基于stm32的水质监测系统项目基础部分详细记录

注意:必须添加到最近一级路径!

按照此方法把USER和FWLIB下的inc文件夹路径添加进来.

编译一下,发现程序出现如下错误:

基于stm32的水质监测系统项目基础部分详细记录

粘贴此错误到百度进行搜索,会找到如下解决方法:

基于stm32的水质监测系统项目基础部分详细记录

关于STM32F10X_HD,USE_STDPERIPH_DRIVER 的详细介绍,可以参考如下博客:

https://www.cnblogs.com/xiaobo-Linux/p/5247579.html

按照此方法添加USE_STDPERIPH_DRIVER后重新编译程序,发现程序编译无错误。

到此,一个最简单的工作模板已经建好了。