赞
踩
这个项目在以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
《基于STM32智能手环项目》是我与好友参加校电子设计大赛的比赛项目,项目的灵感来源于小米手环,与传统手表相比,小米手环不仅可以看时间,还有计步,心率测量功能,作为电子系的学生,我们很想了解小米手环的工作原理,并且想制作一款属于自己独一无二的手环。另外,人们越来越关注人体健康,智能手环应用前景非常可观。
这个项目在以STM32F411硬件开发平台+MDK4软件开发平台+串口编程软件ISP搭建的环境中进行开发。最终我们在这块开发板上完成了1.时间、日期界面;2.温湿度测量界面;3.心率血压测量界面;4.计步测量界面,四个功能界面。我主要负责时间、时期界面、温湿度测量界面、五向键控功能的实现;
淘宝购得STM32F411的硬件开发板,板上资源有STMF411,OLED屏、五向按键、SHT20温湿度传感器、HP-6心率血压模块、 USB 串口,MPU6050陀螺仪测步计,拨码开关
主控制芯片:STM 32F411, Cortex-M4内核,高性能,主频:180MHZ;
OLED屏、五向按键、SHT20温湿度传感器、HP-6心率血压模块、 USB 串口,MPU6050陀螺仪测步计,拨码开关
片上外设:GPIO、USART(串口)、IIC、SPI
根据参考手册和数据手册
GPIO :通用输入输出端口简称;
GPIO有八种工作模式:
四种输入:模拟/浮空/上拉/下拉
两种输出:推挽/开漏
两种复用:推挽/开漏
如何配置GPIO口模式:
step1.使能GPIO的时钟;
step2.设置GPIO目标引脚;
step3.控制GPIO引脚输出高低电平
SPI:Serial Peripheral interface 串性外设接口,也称四线串行接口;主从
四线:SCLK时钟/MOSI/MISO/ss片选
特点:
全双工(同时in/out),编程简单,速率较高(259Mbp/s)
缺点:
占线多。只支持一个主机IIC接口:两根线 SCLK/SDA 协议复杂 地址片选
优点:占线少,支持多主机、多从机;
缺点:协议复杂/速率慢UART 异步 两线:TXD RXD
优点:占线少,无时钟,传播距离远;
缺点:速度慢,20kpb/s
SPI使用四根线来实现串行通信:两根数据线、一根时钟线、一根控制线
主出从入MOSI:主设备输出数据,从设备输入数据
主入从出MISO:主设备输入数据,从设备输出数据
串行时钟SCK:主设备输出,从设备输入,用于同步数据位
从设备选择NSS:主设备输出,从设备输入,用来选择哪一个从设备与主机通信。
并且SPI的接口时序也由两个很重要的参数决定:时钟极性与时钟相位
SPI
1.内核架构不同
2.地址空间:51只有64KB,STM32有4GB
3.片上存储器不同:STM32 的RAM/ROM都比51大
4.外设不同:51只有三个定时器和一个串口,STM 32却有众多外设
5.操作系统不同
电源复位、系统复位、备份区域复位
内部时钟源:高速(HSI)、低速(LSI)
外部时钟源:高速(HSE)、低速(LSE)
如果要求高精度不能采用LSIN,一般选择外部时钟
高速外部时钟(HSE):以外部晶振作时钟源,晶振频率可取范围为4~16MHz,我们一般采用8MHz的晶振。 高速内部时钟(HSI):
由内部RC振荡器产生,频率为8MHz,但不稳定。
低速外部时钟(LSE):以外部晶振作时钟源,主要提供给实时时钟模块,所以一般采用32.768KHz。
低速内部时钟(LSI):由内部RC振荡器产生,也主要提供给实时时钟模块,频率大约为40KHz。
控制:RCC_CR;
配置:RCC_CFGR ;
中断:RCC_CIR
STM32有先占优先级和从占优先级,所以需要优先级分组;
使用STM32外部中断的步骤:
1.设置好相应的时钟(打开GPIO口端口时钟及复用功能); 2.设置好相应的中断(中断控制器NVIC、包括中断分组,通道,优先级); 3.I/O 初始化;
4.将相应的IO口设置成中断线路并初始化;
5.选择中断通道的响应函数来写中断函数;
1.主芯片:STM32
2.晶体振提供荡部分:提供硬件时序以及实时时钟;
3.供电部分:采用3.3V电压;
4.复位部分:复位开关
1.通用I/O口,可做输入、输出功能;
2.单独的位设置或位清楚;
3.外部中断/唤醒线;
4.复用功能(AF)和重映射;
5.GPIO锁定机制
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。