这个项目在以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的智能手环》相关推荐

  1. ComeFuture英伽学院——2020年 全国大学生英语竞赛【C类初赛真题解析】(持续更新)

    视频:ComeFuture英伽学院--2019年 全国大学生英语竞赛[C类初赛真题解析]大小作文--详细解析 课件:[课件]2019年大学生英语竞赛C类初赛.pdf 视频:2020年全国大学生英语竞赛 ...

  2. ComeFuture英伽学院——2019年 全国大学生英语竞赛【C类初赛真题解析】大小作文——详细解析

    视频:ComeFuture英伽学院--2019年 全国大学生英语竞赛[C类初赛真题解析]大小作文--详细解析 课件:[课件]2019年大学生英语竞赛C类初赛.pdf 视频:2020年全国大学生英语竞赛 ...

  3. 信息学奥赛真题解析(玩具谜题)

    玩具谜题(2016年信息学奥赛提高组真题) 题目描述 小南有一套可爱的玩具小人, 它们各有不同的职业.有一天, 这些玩具小人把小南的眼镜藏了起来.小南发现玩具小人们围成了一个圈,它们有的面朝圈内,有的 ...

  4. 信息学奥赛之初赛 第1轮 讲解(01-08课)

    信息学奥赛之初赛讲解 01 计算机概述 系统基本结构 信息学奥赛之初赛讲解 01 计算机概述 系统基本结构_哔哩哔哩_bilibili 信息学奥赛之初赛讲解 02 软件系统 计算机语言 进制转换 信息 ...

  5. 信息学奥赛一本通习题答案(五)

    最近在给小学生做C++的入门培训,用的教程是信息学奥赛一本通,刷题网址 http://ybt.ssoier.cn:8088/index.php 现将部分习题的答案放在博客上,希望能给其他有需要的人带来 ...

  6. 信息学奥赛一本通习题答案(三)

    最近在给小学生做C++的入门培训,用的教程是信息学奥赛一本通,刷题网址 http://ybt.ssoier.cn:8088/index.php 现将部分习题的答案放在博客上,希望能给其他有需要的人带来 ...

  7. 信息学奥赛一本通 提高篇 第六部分 数学基础 相关的真题

    第1章   快速幂 1875:[13NOIP提高组]转圈游戏 信息学奥赛一本通(C++版)在线评测系统 第2 章  素数 第 3 章  约数 第 4 章  同余问题 第 5 章  矩阵乘法 第 6 章 ...

  8. 信息学奥赛一本通题目代码(非题库)

    为了完善自己学c++,很多人都去读相关文献,就比如<信息学奥赛一本通>,可又对题目无从下手,从今天开始,我将把书上的题目一 一的解析下来,可以做参考,如果有错,可以告诉我,将在下次解析里重 ...

  9. 信息学奥赛一本通(C++版) 刷题 记录

    总目录详见:https://blog.csdn.net/mrcrack/article/details/86501716 信息学奥赛一本通(C++版) 刷题 记录 http://ybt.ssoier. ...

  10. 最近公共祖先三种算法详解 + 模板题 建议新手收藏 例题: 信息学奥赛一本通 祖孙询问 距离

    首先什么是最近公共祖先?? 如图:红色节点的祖先为红色的1, 2, 3. 绿色节点的祖先为绿色的1, 2, 3, 4. 他们的最近公共祖先即他们最先相交的地方,如在上图中黄色的点就是他们的最近公共祖先 ...

最新文章

  1. Linux嗅探ettercap
  2. Intel Idea导入eclipse下的web项目并部署到tomcat
  3. 安装iis 配置iis
  4. java的优先队列注意事项
  5. hive参数配置使用
  6. 如何让.Net控件在设计时InitializeComponent()中不生成相关代码
  7. 微软在 ARM 上成功移植 OpenJDK for Windows 10
  8. JQuery 登录,记住密码,密码小眼睛
  9. クリムゾンガールズ 汉化补丁(BUG修正)
  10. Windows下误删文件解决办法
  11. Linux服务跟随启动,关于linux服务启动与自启动
  12. 风变编程,帮助你从零开始学习编程
  13. linux之kubuntu挂载硬盘
  14. tensorflow2.0实现DeepFM
  15. it行业se是_IT行业常见职位英文缩写
  16. 华视身份证阅读器SDK使用手册
  17. 基于vue+element-ui的H5可视化编辑器
  18. Django models 模型
  19. aix查看lv_(摘抄)AIX下减小lv size
  20. JDBC 增、查、删、改 和 防止sql注入登录

热门文章

  1. verilog中task、function和moudle的区别
  2. 前端文件下载利用a标签的download属性下载文件
  3. python实现回合制对战游戏-面向对象编程
  4. Elasticsearch:hanlp 中文分词器
  5. 企业固定资产管理RFID解决方案
  6. 山东省一流本科课程“Python应用开发”课程中的思政元素
  7. 最详细的苹果电脑Mac系统上运行Windows的教程解决方案
  8. java rhino 下载_8.4(Java学习笔记)java脚本引擎(Rhino)
  9. [VIP会员购]卖家报名
  10. 陌陌、BIGO、比亚迪、好未来、同程艺龙、去哪儿、联通西安研究院、华为、海康威视java开发面试经验