当前位置:   article > 正文

《基于STM32的智能手环》_基于stm32智能手环开发环境搭建总结

基于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题库

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/2023面试高手/article/detail/153444
推荐阅读
相关标签
  

闽ICP备14008679号