嵌入式综合实验周
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
嵌入式系统原理及应用综合实验报告
专业班级:
姓名:
学号:__
时间:_
指导教师:_____________
2017年9 月17 日
嵌入式系统原理及应用
综合实验报告
摘要:信盈达电子产品——信盈达智能穿戴开发平台,广泛应用于嵌入式生产实训教学中。该文通过分析STM32F40xxx系列微控制器的架构和操作原理,通过使用信盈达智能穿戴开发平台,给出了相关的编程设计方法和注意事项
关键词:嵌入式 STM32 智能穿戴
。
1 引言
IEEE(Institute of Electrical and Electronics Engineers,美国电气和电子工程师协会)对嵌入式系统的定义:
“用于控制、监视或者辅助操作机器和设备的装置”。原文为:Devices Used to Control,Monitor or Assist the Operation of Equipment,Machinery or Plants)。
嵌入式系统,通常指一种专用的计算机设备,或作为装置和设备的一部分,亦或是指单纯的一块控制电路板。事实上带有数字接口的设备都使用了嵌入式系统。
从应用对象上加以定义,嵌入式系统是软件和硬件的综合体,还可以涵盖机械等附属装置。国普遍认同的嵌入式系统定义为:以应用为中心,以计算机技术为基础,软硬件可裁剪,适应应用系统对功能、可靠性、成本、体积、功耗等严格要求的专用计算机系统。
本次实训采用了信盈达智能穿戴开发平台,通过为期一周的学习,快速掌握了STM32F40XXX 系列微控制器的基础使用方法,并通过编程实现了相关的功能。
2 总体设计方案
2.1 设计思路
2.1.1
设计一个智能穿戴系统,实现下列功能:显示小组、班级、学号;显示实时温度、湿度;测量并显示心率;测量并显示血压;返回初始界面。
2.2设计方框图
3 系统硬件设计
3.1 微控制器电路的设计
图1 STM32F11微控制器电路3.2 按键电路的设计
图2 按键电路
3.3温湿度检测电路
图3 SHT20温湿度检测电路
SHT20是新一代sensirion湿度和温度传感器,采用数字输出方案,带有I2C接口,具有优异的长期稳定性,本电路采用I2C方案进行通讯。
3.4 OLED显示电路
图4 OLED显示电路
平台搭载了一款132×64大小的OLED屏幕。OLED是有机发光二极管的缩写,又称有机电激光显示、有机发光半导体。其具有自发光、广视角、超高对比度、低耗电的优良性能,为一种高端的显示设备。
4 系统软件设计
图5 系统流程图
①main函数所需头文件:
#include "stm32f4xx.h"
#include "key.h"
#include "led.h"
#include "exti.h"
#include "uart.h"
#include "delay.h"
#include "timer.h"
#include "oled.h"
#include "spi.h"
#include "bmp.h"
#include "iic.h"
#include "sht20.h"
②按键程序:
在main函数中,按键程序采用switch语句,按下后累计按下次数,以此选择软件功能模块。switch(page)
{
case 1:
OLED_clear();
name_page();
break;
case 2:
OLED_clear();
clock_page();
break;
case 3:
OLED_clear();
pulse_page();
break;
case 4:
OLED_clear();
bp_page();
break;
case 5:
OLED_clear();
kal_km_page();
break;
default:
break;
}
SPI 是一种全双工串行接口,英文全称: Serial Peripheral Interface,可处理多个连接到指定总线上的主机和从机。在数据传输过程中,总线上只能有一个主机和一个从机通信。在数据传输中,主机总是会向从机发送一帧 8到 16 个位的数据,而从机也总会向主机发送一帧字节数据。“全双工”意义为:主机、从机同时给对方发送数据。 SPI,是一种高速的,全双工,同步的通信总线(“同步”的意思是数据传输需要时钟线),并且在芯片的管脚上只占用四根线,“信盈达智能穿戴设备开发平台”上的 OLED 屏使用的是 SPI 接口。SPI 控制器的初始化步骤有以下几步:
(1)使能 SPI 复用功能所映射的 GPIO 口时钟。
(2) SPI 控制器时钟使能。
(3)配置 GPIO 为复用功能。( MOSI/MISO/CLK)
(4) GPIO 复用功能为第几复用功能( AFx)。
(5)配置 GPIO 输出速率为 50MHz。
(6)配置 SPIx->CR1 寄存器。
相关代码如下所示:
void Spi1_init(void)
{
RCC->AHB1ENR |= 1<<1;//PB时钟使能
RCC->APB2ENR |= 1<<12;//SPI1
/* PB3/4/5 AF5功能 */
GPIOB->MODER &= ~(0X3F << 6);
GPIOB->MODER |= 0X2A << 6;
GPIOB->AFR[0] &= ~(0XFFF << 12);
GPIOB->AFR[0] |= 0X555 << 12;// af5功能
GPIOB->OSPEEDR &= ~(0X3F << 6);// io输出速度 50MHZ
GPIOB->OSPEEDR |= 0X2A << 6;
/* SPI1配置 */
SPI1->CR1 = 0;
SPI1->CR1 |= 3 << 8;//SSM SSI
SPI1->CR1 |= 1 << 2;//主模式
// SPI1->CR1 |= 4 << 3;//速度 100/64 MHZ
SPI1->CR1 |= 1 << 6;//使能SPI1
}
u8 Spi1_RevSendByte(u8 val)
{