《基于STM32的智能手环》
这个项目在以STM32F411为主的硬件开发平台+MDK4软件开发平台+串口编程软件ISP搭建的环境中进行开发。最终我们在这块开发板上完成了1.时间、日期界面;2.温湿度测量界面;3.心率血压测量界面;4.计步测量界面,四个功能界面。
时间日期界面:该手环通过配置RTC时实时钟模块,修改计数器的值,设置系统当前时钟日历;
温湿度测量界面:利用开发板内部的SHT20温湿度传感器采集环境信息,并利用IIc 协议读取数据;
心率血压测量界面:通过HP-6模块采集身体相关的信息,并利用IIC 协议读取数据;
计步测量界面:利用陀螺仪MPU6050测量计步;
1.时间日期界面:该手环通过配置RTC时实时钟模块,修改计数器的值,设置系统当前时钟日历,并通过OLED屏显示;
关于RTC的配置步骤:
**Step1.**首先配置任何东西,第一件事就是使能时钟,所以首先使能时钟源拟合备份区域时钟;
**Step2.**要向备份区域写数据,就要取消备份区域写保护,否则无法对RTC读写,使能LSI时钟源,所以第二步为取消备份区域,开始外部低速振荡器;
Step3.选择RTC时钟并使能,设置RTC的分配以及配置RTC时钟(LSI时钟为40K,而RTC需要1HZ,所以 以40K:1 进行配置)
**Step4.**进入初始化模式
Step5.设置时钟格式、初始化时间
Step6.退出初始化,开启写保护
2.温湿度测量界面:利用SHT20温湿度传感器采集环境信息,并利用IIc 协议读取数据,并将数据传输到OLED屏上显示;
读取温湿度传感器SHT20 的值: S–>Slave Address–>R/W–>A–>Data–>A–>Data–>Nk–>p
Step1.SHT 20初始化(延时子程序上电后要一定的时间达到空闲状态 ;
Step2.IIC 读数据read;主机:启动-发送器件地址-等待应答-发送字地址0XFE-等待应答——结束;
Step3.获取温度:SHT20接到指令后测量温湿度并将读出的数据给应答 ;
Step4.输出以整数显示 读出的数值由16进制转换为十进制;
**Step5.**调用OLED_showString函数将数据显示到OLD显示屏上;
Step6.软件复位
关于IIC协议:
1.IIC 总线是由数据线和时钟线构成的串行总线,为半双工串行通信;
2.IIc在传输过程中有三类信号:开始、结束、应答;
3.多主机的IIC总线一定要接上拉电阻;
4.IIC的传输速率,IIC数据传输的有效性;
5.IIC如何选中芯片——器件地址
6.IIC的读写操作
3.ADC五向按键
**ADC:**AD转有并联比较/逐次逼近两种类型; AD相关参数:分辨率、转换速率、采样速率
五向按键功能: 利用AD检测,设定不同的电压阈值来表示按键的五种状态;再将键值通过Seitch循环依次赋给每个功能模块。
4.OLED显示
SH1106 SPI控制OLED驱动,取模软件的使用:取模显示字符、汉字、图片
OLED支持4种接口包括:6800、8080两种并行接口方式、 4线的串行SPI接口方式,IIC接口方式。
OLED 显示字符/汉字/图片信息: 利用取模软件获得字码库,再调用相关函数显示,OLED_SHOWING
Q&A
常见问题
1.为什么做这个项目?
《基于STM32智能手环项目》是我与好友参加校电子设计大赛的比赛项目,项目的灵感来源于小米手环,与传统手表相比,小米手环不仅可以看时间,还有计步,心率测量功能,作为电子系的学生,我们很想了解小米手环的工作原理,并且想制作一款属于自己独一无二的手环。另外,人们越来越关注人体健康,智能手环应用前景非常可观。
Q2.简述一下这个项目?
这个项目在以STM32F411硬件开发平台+MDK4软件开发平台+串口编程软件ISP搭建的环境中进行开发。最终我们在这块开发板上完成了1.时间、日期界面;2.温湿度测量界面;3.心率血压测量界面;4.计步测量界面,四个功能界面。我主要负责时间、时期界面、温湿度测量界面、五向键控功能的实现;
淘宝购得STM32F411的硬件开发板,板上资源有STMF411,OLED屏、五向按键、SHT20温湿度传感器、HP-6心率血压模块、 USB 串口,MPU6050陀螺仪测步计,拨码开关
Q3.所用的芯片的型号?所有的资源?
主控制芯片:STM 32F411, Cortex-M4内核,高性能,主频:180MHZ;
OLED屏、五向按键、SHT20温湿度传感器、HP-6心率血压模块、 USB 串口,MPU6050陀螺仪测步计,拨码开关
片上外设:GPIO、USART(串口)、IIC、SPI
Q4.如何寻找IO的功能说明?
根据参考手册和数据手册
Q5.GPIO?USART?IIC?SPI?
GPIO :通用输入输出端口简称;
GPIO有八种工作模式:
四种输入:模拟/浮空/上拉/下拉
两种输出:推挽/开漏
两种复用:推挽/开漏
如何配置GPIO口模式:
step1.使能GPIO的时钟;
step2.设置GPIO目标引脚;
step3.控制GPIO引脚输出高低电平GPIO
SPI:Serial Peripheral interface 串性外设接口,也称四线串行接口;主从
四线:SCLK时钟/MOSI/MISO/ss片选
特点:
全双工(同时in/out),编程简单,速率较高(259Mbp/s)
缺点:
占线多。只支持一个主机IIC接口:两根线 SCLK/SDA 协议复杂 地址片选
优点:占线少,支持多主机、多从机;
缺点:协议复杂/速率慢UART 异步 两线:TXD RXD
优点:占线少,无时钟,传播距离远;
缺点:速度慢,20kpb/s
USART
面试中的IIC
SPI使用四根线来实现串行通信:两根数据线、一根时钟线、一根控制线
主出从入MOSI:主设备输出数据,从设备输入数据
主入从出MISO:主设备输入数据,从设备输出数据
串行时钟SCK:主设备输出,从设备输入,用于同步数据位
从设备选择NSS:主设备输出,从设备输入,用来选择哪一个从设备与主机通信。
并且SPI的接口时序也由两个很重要的参数决定:时钟极性与时钟相位
SPI
Q6.stm32与51的区别?
1.内核架构不同
2.地址空间:51只有64KB,STM32有4GB
3.片上存储器不同:STM32 的RAM/ROM都比51大
4.外设不同:51只有三个定时器和一个串口,STM 32却有众多外设
5.操作系统不同
Q7.STM 32复位?
电源复位、系统复位、备份区域复位
Q8.STM 32时钟源
内部时钟源:高速(HSI)、低速(LSI)
外部时钟源:高速(HSE)、低速(LSE)
如果要求高精度不能采用LSIN,一般选择外部时钟
高速外部时钟(HSE):以外部晶振作时钟源,晶振频率可取范围为4~16MHz,我们一般采用8MHz的晶振。 高速内部时钟(HSI):
由内部RC振荡器产生,频率为8MHz,但不稳定。
低速外部时钟(LSE):以外部晶振作时钟源,主要提供给实时时钟模块,所以一般采用32.768KHz。
低速内部时钟(LSI):由内部RC振荡器产生,也主要提供给实时时钟模块,频率大约为40KHz。
Q9.时间管理寄存器?
控制:RCC_CR;
配置:RCC_CFGR ;
中断:RCC_CIR
Q10.STM32中断
STM32有先占优先级和从占优先级,所以需要优先级分组;
使用STM32外部中断的步骤:
1.设置好相应的时钟(打开GPIO口端口时钟及复用功能); 2.设置好相应的中断(中断控制器NVIC、包括中断分组,通道,优先级); 3.I/O 初始化;
4.将相应的IO口设置成中断线路并初始化;
5.选择中断通道的响应函数来写中断函数;
Q11.简述STM32 最小硬件开发系统的组成及其各部分作用?
1.主芯片:STM32
2.晶体振提供荡部分:提供硬件时序以及实时时钟;
3.供电部分:采用3.3V电压;
4.复位部分:复位开关
Q12.STM32GPIO的主要特点:
1.通用I/O口,可做输入、输出功能;
2.单独的位设置或位清楚;
3.外部中断/唤醒线;
4.复用功能(AF)和重映射;
5.GPIO锁定机制
STM32题库
《基于STM32的智能手环》相关推荐
- ComeFuture英伽学院——2020年 全国大学生英语竞赛【C类初赛真题解析】(持续更新)
视频:ComeFuture英伽学院--2019年 全国大学生英语竞赛[C类初赛真题解析]大小作文--详细解析 课件:[课件]2019年大学生英语竞赛C类初赛.pdf 视频:2020年全国大学生英语竞赛 ...
- ComeFuture英伽学院——2019年 全国大学生英语竞赛【C类初赛真题解析】大小作文——详细解析
视频:ComeFuture英伽学院--2019年 全国大学生英语竞赛[C类初赛真题解析]大小作文--详细解析 课件:[课件]2019年大学生英语竞赛C类初赛.pdf 视频:2020年全国大学生英语竞赛 ...
- 信息学奥赛真题解析(玩具谜题)
玩具谜题(2016年信息学奥赛提高组真题) 题目描述 小南有一套可爱的玩具小人, 它们各有不同的职业.有一天, 这些玩具小人把小南的眼镜藏了起来.小南发现玩具小人们围成了一个圈,它们有的面朝圈内,有的 ...
- 信息学奥赛之初赛 第1轮 讲解(01-08课)
信息学奥赛之初赛讲解 01 计算机概述 系统基本结构 信息学奥赛之初赛讲解 01 计算机概述 系统基本结构_哔哩哔哩_bilibili 信息学奥赛之初赛讲解 02 软件系统 计算机语言 进制转换 信息 ...
- 信息学奥赛一本通习题答案(五)
最近在给小学生做C++的入门培训,用的教程是信息学奥赛一本通,刷题网址 http://ybt.ssoier.cn:8088/index.php 现将部分习题的答案放在博客上,希望能给其他有需要的人带来 ...
- 信息学奥赛一本通习题答案(三)
最近在给小学生做C++的入门培训,用的教程是信息学奥赛一本通,刷题网址 http://ybt.ssoier.cn:8088/index.php 现将部分习题的答案放在博客上,希望能给其他有需要的人带来 ...
- 信息学奥赛一本通 提高篇 第六部分 数学基础 相关的真题
第1章 快速幂 1875:[13NOIP提高组]转圈游戏 信息学奥赛一本通(C++版)在线评测系统 第2 章 素数 第 3 章 约数 第 4 章 同余问题 第 5 章 矩阵乘法 第 6 章 ...
- 信息学奥赛一本通题目代码(非题库)
为了完善自己学c++,很多人都去读相关文献,就比如<信息学奥赛一本通>,可又对题目无从下手,从今天开始,我将把书上的题目一 一的解析下来,可以做参考,如果有错,可以告诉我,将在下次解析里重 ...
- 信息学奥赛一本通(C++版) 刷题 记录
总目录详见:https://blog.csdn.net/mrcrack/article/details/86501716 信息学奥赛一本通(C++版) 刷题 记录 http://ybt.ssoier. ...
- 最近公共祖先三种算法详解 + 模板题 建议新手收藏 例题: 信息学奥赛一本通 祖孙询问 距离
首先什么是最近公共祖先?? 如图:红色节点的祖先为红色的1, 2, 3. 绿色节点的祖先为绿色的1, 2, 3, 4. 他们的最近公共祖先即他们最先相交的地方,如在上图中黄色的点就是他们的最近公共祖先 ...
最新文章
- Linux嗅探ettercap
- Intel Idea导入eclipse下的web项目并部署到tomcat
- 安装iis 配置iis
- java的优先队列注意事项
- hive参数配置使用
- 如何让.Net控件在设计时InitializeComponent()中不生成相关代码
- 微软在 ARM 上成功移植 OpenJDK for Windows 10
- JQuery 登录,记住密码,密码小眼睛
- クリムゾンガールズ 汉化补丁(BUG修正)
- Windows下误删文件解决办法
- Linux服务跟随启动,关于linux服务启动与自启动
- 风变编程,帮助你从零开始学习编程
- linux之kubuntu挂载硬盘
- tensorflow2.0实现DeepFM
- it行业se是_IT行业常见职位英文缩写
- 华视身份证阅读器SDK使用手册
- 基于vue+element-ui的H5可视化编辑器
- Django models 模型
- aix查看lv_(摘抄)AIX下减小lv size
- JDBC 增、查、删、改 和 防止sql注入登录
热门文章
- verilog中task、function和moudle的区别
- 前端文件下载利用a标签的download属性下载文件
- python实现回合制对战游戏-面向对象编程
- Elasticsearch:hanlp 中文分词器
- 企业固定资产管理RFID解决方案
- 山东省一流本科课程“Python应用开发”课程中的思政元素
- 最详细的苹果电脑Mac系统上运行Windows的教程解决方案
- java rhino 下载_8.4(Java学习笔记)java脚本引擎(Rhino)
- [VIP会员购]卖家报名
- 陌陌、BIGO、比亚迪、好未来、同程艺龙、去哪儿、联通西安研究院、华为、海康威视java开发面试经验