基于stm32的水质监测系统项目基础部分详细记录
基于stm32的水质监测系统项目基础部分详细记录
软件环境:MDK5
硬件环境:STM32F103ZET6 开发板、颜色传感器、串口屏、串口打印机
- 搭建工程模板
在进行项目软件的撰写时,首先新建一个基于该项目的工程模板。对于初学者,很多都是直接用开发板提供商提供的现成的工程模板,但是那样的工程模板在项目开发中体态略显臃肿,而且如果直接用别人的工程模板,那么很多搭建工程模板的库文件的用法和功能我们不会很了解,因此,自己新建一个基于项目的工程模板是非常必要的。
- 准备工作
新建如下文件夹:
(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的水质监测系统项目基础部分详细记录的更多相关文章
- 嵌入式系统及应用课程设计——基于STM32的温湿度监测系统
大三上学期期末总结,嗯,没错上学期,写在新学期开始,hhh. 上学期学了一门嵌入式系统及应用的课程,期末的课程设计题目是基于STM32的温湿度监测系统. 记得刚开始做课程设计的时候,听说先设计画出原理 ...
- 浅谈一种浮标浮岛式水质监测“智能哨兵”助力水质监测,多环境应用ke轻松测水!
浮岛式水质监测站能够在实际使用中,安装方便,能够采集多种参数,溶解氧 氨氮 电导率 盐分 pH值 COD 水位 节省时间和人工,浮标水质监测站是设立在河流.湖泊.水库.近岸海域等流 域内的 ...
- QY-16 浮标水质监测站 组成 及基础参数是什么?一文认识什么是浮标水质监测站
浮标水质监测站是设立在河流.湖泊.水库.近岸海域等流 域内的现场水质自动监测实验室,是以水质监测仪为核心,运用 传感器技术,结合浮标体.电源供电系统.数据传输设备组成的 放置于水域内的小型水质监测系统 ...
- 基于RT-Thread的人体健康监测系统
随着生活质量的提高和生活节奏的加快,人们愈加需要关注自己的健康状况,本项目意在设计一种基于云平台+APP+设备端的身体参数测试系统,利用脉搏传感器.红外传感器.微弱信号检测电路等实现人体参数的采集,数 ...
- 基于RestOn智能睡眠监测器的睡眠监测系统
一.项目地址为: https://github.com/linqian123... 二.项目功能概述: 该项目实现的是一个基于RestOn智能睡眠监测器的睡眠监测系统.RestOn智能睡眠检测器通过W ...
- Security基础(五):部署Cacti监控平台、构建Cacti监测系统
一.部署Cacti监控平台 目标: 本案例要求部署一台Cacti监控主机,并安装相关监控组件,为进一步执行具体的监控任务做准备: 安装net-snmp.net-snmp-utils 安装LAMP及相关 ...
- 基于STM32+华为云IOT设计智能称重系统
摘要:选择部署多个重量传感器和必要的算法.通过WiFi 通信模块.GPS定位模块,采集车辆称重数据一地理位置信息,并通过网络发送至云平台,设计图形化UI界面展示称重.地图位置等重要信息,实现对称重系统 ...
- 温湿度监测系统设计:基于 STM32 的温湿度变送器的设计与实现
前言:这个是2018年上半年完成的,这里只贴出硬件设计部分,软件设计部分可以看上位机说明书. 设计总说明 随着科学技术的不断发展,高集成度.高精度.高可靠性的一体化温湿度变送器开始 得到广泛的应用.同 ...
- 项目-基于视频压缩的实时监控系统--tiny6410
项目-基于视频压缩的实时监控系统--tiny6410 @国嵌linux学习笔记. 1. 构造服务端结构体 server struct server { int epfd; //保存epoll指针 st ...
随机推荐
- HTML和CSS初级前端面试题汇总(持续补充)
1.浏览器内核 IE:trident Firefox:gecko Safari:webkit Opera:以前是presto,现在是Blink Chrome:Blink 2.HTML文件开头的DOCT ...
- .NET默认一个客户端对同一个服务器地址同时只能建立2个TCP连接
做一个客户端的测试小程序测试web service的并发处理.开始用async task做,不管创建多少个task,用netstat看同时只有两个tcp连接.以为是async task的问题,改用Ba ...
- Android中屏幕保持唤醒
1.锁的类型 PowerManager中各种锁的类型对CPU .屏幕.键盘的影响: PARTIAL_WAKE_LOCK : 保持CPU 运转,屏幕和键盘灯有可能是关闭的. SCREEN_DIM_WAK ...
- datepart in ssis
"\\\\"+_"+ (DT_STR,4,1252)DATEPART( "yyyy" , @[System::StartTime] ) + RIGHT ...
- Visualizing the Git data model
I wrote a small tool git-graph.py over the weekend which can be used to generate the object graph of ...
- Java 线程池(ThreadPoolExecutor)原理解析
在我们的开发中“池”的概念并不罕见,有数据库连接池.线程池.对象池.常量池等等.下面我们主要针对线程池来一步一步揭开线程池的面纱. 有关java线程技术文章还可以推荐阅读:<关于java多线程w ...
- H5中用js让页面全屏
概述 意外的发现一个网页有一个按钮能使网页全屏,查了下代码发现是H5的全屏api,于是就查了下资料,记录下来供以后开发时参考,相信对其他人也有用. 参考资料: 利用js如何做到让页面全屏和不全屏功能 ...
- dubbo实用知识点总结(三)
1. 服务降级 2. 优雅停机 3. 主机绑定 4. 访问日志 5. Multicast注册中心 6. zookeeper注册中心 7. 推荐用法 8. 容量规划 9. 基准测试工具包
- python应用-爬取猫眼电影top100
import requests import re import json import time from requests.exceptions import RequestException d ...
- mysql 开发进阶篇系列 10 锁问题 (相同索引键值或同一行或间隙锁的冲突)
1.使用相同索引键值的冲突 由于mysql 的行锁是针对索引加的锁,不是针对记录加的锁,所以虽然是访问不同行的记录,但如果是使用相同的索引键,是会出现锁冲突的.设计时要注意 例如:city表city_ ...