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

软件环境:MDK5

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

  1. 搭建工程模板

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

  1. 准备工作

新建如下文件夹:

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

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

(3)CORE:

(4)OBJ:

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

(5)BSP:

存放用户自己撰写的各种函数,分为BSP.c和BSP.h两个文件。

(6)FWLIB:

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

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

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

(1)CORE:

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

startup_stm32f10x_hd.s是芯片的启动文件,不同型号不同容量的芯片都具有独特的唯一的启动文件,该文件要跟根据芯片的型号和容量进行选择,具体选择方法可参考下图

(1)FWLIB:

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

(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)新建工程模板

(2)文件夹路径设置;

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

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

点击

(4)添加头文件路径

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

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

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

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

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

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

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

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

基于stm32的水质监测系统项目基础部分详细记录的更多相关文章

  1. 嵌入式系统及应用课程设计——基于STM32的温湿度监测系统

    大三上学期期末总结,嗯,没错上学期,写在新学期开始,hhh. 上学期学了一门嵌入式系统及应用的课程,期末的课程设计题目是基于STM32的温湿度监测系统. 记得刚开始做课程设计的时候,听说先设计画出原理 ...

  2. 浅谈一种浮标浮岛式水质监测“智能哨兵”助力水质监测,多环境应用ke轻松测水!

    浮岛式水质监测站能够在实际使用中,安装方便,能够采集多种参数,溶解氧  氨氮  电导率  盐分 pH值  COD  水位  节省时间和人工,浮标水质监测站是设立在河流.湖泊.水库.近岸海域等流 域内的 ...

  3. QY-16 浮标水质监测站 组成 及基础参数是什么?一文认识什么是浮标水质监测站

    浮标水质监测站是设立在河流.湖泊.水库.近岸海域等流 域内的现场水质自动监测实验室,是以水质监测仪为核心,运用 传感器技术,结合浮标体.电源供电系统.数据传输设备组成的 放置于水域内的小型水质监测系统 ...

  4. 基于RT-Thread的人体健康监测系统

    随着生活质量的提高和生活节奏的加快,人们愈加需要关注自己的健康状况,本项目意在设计一种基于云平台+APP+设备端的身体参数测试系统,利用脉搏传感器.红外传感器.微弱信号检测电路等实现人体参数的采集,数 ...

  5. 基于RestOn智能睡眠监测器的睡眠监测系统

    一.项目地址为: https://github.com/linqian123... 二.项目功能概述: 该项目实现的是一个基于RestOn智能睡眠监测器的睡眠监测系统.RestOn智能睡眠检测器通过W ...

  6. Security基础(五):部署Cacti监控平台、构建Cacti监测系统

    一.部署Cacti监控平台 目标: 本案例要求部署一台Cacti监控主机,并安装相关监控组件,为进一步执行具体的监控任务做准备: 安装net-snmp.net-snmp-utils 安装LAMP及相关 ...

  7. 基于STM32+华为云IOT设计智能称重系统

    摘要:选择部署多个重量传感器和必要的算法.通过WiFi 通信模块.GPS定位模块,采集车辆称重数据一地理位置信息,并通过网络发送至云平台,设计图形化UI界面展示称重.地图位置等重要信息,实现对称重系统 ...

  8. 温湿度监测系统设计:基于 STM32 的温湿度变送器的设计与实现

    前言:这个是2018年上半年完成的,这里只贴出硬件设计部分,软件设计部分可以看上位机说明书. 设计总说明 随着科学技术的不断发展,高集成度.高精度.高可靠性的一体化温湿度变送器开始 得到广泛的应用.同 ...

  9. 项目-基于视频压缩的实时监控系统--tiny6410

    项目-基于视频压缩的实时监控系统--tiny6410 @国嵌linux学习笔记. 1. 构造服务端结构体 server struct server { int epfd; //保存epoll指针 st ...

随机推荐

  1. C语言常识

    struct tree{ struct tree *left; struct tree *right; }; typedef struct tree newtree; int main(int arg ...

  2. Django积木块九——富文本编辑器

    富文本编辑器 前端和后端都可以用富文本编辑器 # pip install django-tinymce # setting 'tinymce' TINYMCE_DEFAULT_CONFIG = { ' ...

  3. Collection类,泛型

    Collection(接口) 所有超级接口: Iterable<E> 一.集合 1.集合的介绍&集合和数组的区别 什么是集合:java中的一种容器 什么是数组:java中的一种容器 ...

  4. angular-指令

    ng-app 作用域 ng-init 声明 module 模块 ng-model 双向绑定 ng-bind 绑定 angular是一个MVC框架:即 M------------------module ...

  5. IO在Socket中的应用

    一.BIO 在JDK1.4出来之前,我们建立网络连接的时候采用BIO模式,需要先在服务端启动一个ServerSocket,然后在客户端启动Socket来对服务端进行通信,默认情况下服务端需要对每个连接 ...

  6. 瞎搞poj1013

    http://poj.org/problem?id=1013 题意:给你标记从A到L的石子,其中有一个石子,可能会轻于其它石子,也可能重于其它石子.你只能通过三次天平的测量去找到这个石子.天平的三个状 ...

  7. 利用python完成大学刷课(从0到完成的思路)

    i春秋作家:tllm 原文来自:利用python完成大学刷课(从0到完成的思路) 最近刚刚开学,学校总是有很多让人无语的课要修,还不能不修.然后我想写一个自动修课的脚本.大佬们不要笑我 是边面向百度学 ...

  8. YxCMS 1.4.7 最新版漏洞分析

    i春秋作家:F0rmat 原文来自:YxCMS 1.4.7 最新版漏洞分析 0x01前言 很感谢关注我专辑的表哥,我会坚持写下去的,最近会慢一点,一月四篇是正常的. 在先知看到的,大部分都是后台漏洞, ...

  9. 1分钟快速制作漂亮的H5本地记事本

    大家好,以前给大家分享过一个五步骤制作精美的HTML5时钟的文章,点击回顾<五步教你制作漂亮精致的HTML时钟>,还有<一分钟教你如何实现唯美的文字描边>:今天给大家分享一个用 ...

  10. Git使用详细教程(4):git rm使用详解

    我们使用git rm 文件名来进行删除文件的操作. git rm index.php这个命令把工作区的index.php删除并暂存了. 如何撤回已暂存的删除命令? 上图中已经给出了提示,使用git r ...