嵌入式综合实验周.docx

上传人:b****3 文档编号:1500263 上传时间:2022-10-22 格式:DOCX 页数:20 大小:432.99KB
下载 相关 举报
嵌入式综合实验周.docx_第1页
第1页 / 共20页
嵌入式综合实验周.docx_第2页
第2页 / 共20页
嵌入式综合实验周.docx_第3页
第3页 / 共20页
嵌入式综合实验周.docx_第4页
第4页 / 共20页
嵌入式综合实验周.docx_第5页
第5页 / 共20页
点击查看更多>>
下载资源
资源描述

嵌入式综合实验周.docx

《嵌入式综合实验周.docx》由会员分享,可在线阅读,更多相关《嵌入式综合实验周.docx(20页珍藏版)》请在冰豆网上搜索。

嵌入式综合实验周.docx

嵌入式综合实验周

嵌入式系统原理及应用

综合实验报告

 

专业班级:

姓  名:

学号:

__

时间:

_

指导教师:

_____________

 

2017年9月17日

 

嵌入式系统原理及应用

综合实验报告

摘要:

信盈达电子产品——信盈达智能穿戴开发平台,广泛应用于嵌入式生产实训教学中。

该文通过分析STM32F40xxx系列微控制器的架构和操作原理,通过使用信盈达智能穿戴开发平台,给出了相关的编程设计方法和注意事项

关键词:

嵌入式STM32智能穿戴

1引言

IEEE(InstituteofElectricalandElectronicsEngineers,美国电气和电子工程师协会)对嵌入式系统的定义:

“用于控制、监视或者辅助操作机器和设备的装置”。

原文为:

DevicesUsedtoControl,MonitororAssisttheOperationofEquipment,MachineryorPlants)。

嵌入式系统,通常指一种专用的计算机设备,或作为装置和设备的一部分,亦或是指单纯的一块控制电路板。

事实上带有数字接口的设备都使用了嵌入式系统。

从应用对象上加以定义,嵌入式系统是软件和硬件的综合体,还可以涵盖机械等附属装置。

国普遍认同的嵌入式系统定义为:

以应用为中心,以计算机技术为基础,软硬件可裁剪,适应应用系统对功能、可靠性、成本、体积、功耗等严格要求的专用计算机系统。

本次实训采用了信盈达智能穿戴开发平台,通过为期一周的学习,快速掌握了STM32F40XXX系列微控制器的基础使用方法,并通过编程实现了相关的功能。

2总体设计方案

2.1设计思路

2.1.1

设计一个智能穿戴系统,实现下列功能:

显示小组、班级、学号;显示实时温度、湿度;测量并显示心率;测量并显示血压;返回初始界面。

2.2设计方框图

3系统硬件设计

3.1微控制器电路的设计

图1STM32F11微控制器电路

3.2按键电路的设计

图2按键电路

3.3温湿度检测电路

图3SHT20温湿度检测电路

SHT20是新一代sensirion湿度和温度传感器,采用数字输出方案,带有I2C接口,具有优异的长期稳定性,本电路采用I2C方案进行通讯。

3.4OLED显示电路

图4OLED显示电路

平台搭载了一款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)

{

case1:

OLED_clear();

name_page();

break;

case2:

OLED_clear();

clock_page();

break;

case3:

OLED_clear();

pulse_page();

break;

case4:

OLED_clear();

bp_page();

break;

case5:

OLED_clear();

kal_km_page();

break;

default:

break;

}

③SPI程序:

SPI是一种全双工串行接口,英文全称:

SerialPeripheralInterface,可处理多个连接到指定总线上的主机和从机。

在数据传输过程中,总线上只能有一个主机和一个从机通信。

在数据传输中,主机总是会向从机发送一帧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寄存器。

相关代码如下所示:

voidSpi1_init(void)

{

RCC->AHB1ENR|=1<<1;//PB时钟使能

RCC->APB2ENR|=1<<12;//SPI1

/*PB3/4/5AF5功能*/

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;//SSMSSI

SPI1->CR1|=1<<2;//主模式

//SPI1->CR1|=4<<3;//速度100/64MHZ

SPI1->CR1|=1<<6;//使能SPI1

}

u8Spi1_RevSendByte(u8val)

{

while((SPI1->SR&(1<<1))==0)

{

;//等待发送缓存区为空

}

SPI1->DR=val;

while((SPI1->SR&(1<<0))==0)

{

;//等待接收缓存区非空

}

return(SPI1->DR);

}

④SHT20芯片程序:

#include"iic.h"

#include"delay.h"

#include"sht20.h"

#defineSHT20ADDR0x80//SHT20写地址

#defineACK0//应答信号

#defineNACK1//非应答信号

#defineFAIL1//读取温湿度失败的返回值。

#defineREAD_TEMP_COMD0xf3//读取温度命令

#defineREAD_HUMI_COMD0xf5//读取湿度命令

TempHumiValue_ttemp_humi_Value;

staticvoidSHT20_setResolution(void);

staticvoidSHT20_setResolution(void);

voidSHT20_softReset(void);

staticu8SHT20_writeOneByte(u8dataToWrite)

{

u8ack;

ack=IIC_WriteByte(dataToWrite);//发送字节

returnack;

}

voidSHT20_softReset(void)

{

IIC_Start();//startI2C

SHT20_writeOneByte(SHT20ADDR&0xfe);//I2Caddress+write

SHT20_writeOneByte(0xfe);//softreset

IIC_Stop();//stopI2C

}

voidSHT20_Init(void)

{

SHT20_softReset();

}

staticu8SHT20_readOneByte(u8ack)

{

u8temp;

temp=IIC_ReadByte(ack);

returntemp;

}

staticvoidSHT20_setResolution(void)

{

IIC_Start();//StartI2C

if(SHT20_writeOneByte(SHT20ADDR&0xfe)==ACK)//I2Caddress+write+ACK

{

if(SHT20_writeOneByte(0xe6)==ACK)//写用户寄存器

{

if(SHT20_writeOneByte(0x83)==ACK);//设置分辨率11bitRH%测量时间:

12ms(typ.)&11bitT℃测量时间:

9ms(typ.)

}

}

IIC_Stop();//StopI2C

}

floatSHT20_readTemOrHum(u8commod)

{

floattemp;//温度

u8ack=1;

u8MSB,LSB;//温度、相对湿度的寄存器数据

floatHumidity,Temperature;//温湿度的转换结果

SHT20_setResolution();//设置帧率8bit,9bit,10bit,11bit,12bit,13bit,14bit

IIC_Start();//iic开始信号

ack=SHT20_writeOneByte(SHT20ADDR&0xfe);

if(ack==ACK)//写地址,并等待ACK

{

if(SHT20_writeOneByte(commod)==ACK)//写命令

{

do

{

delay_ms(6);//延时

IIC_Start();//发送开始信号

}while(SHT20_writeOneByte(SHT20ADDR|0x01)==NACK);//无应答则整形,还在测量中,如果有应答,则结束当前循环

MSB=SHT20_readOneByte(ACK);//读Data(MSB),给应答ACK

LSB=SHT20_readOneByte(ACK);//读Data(LSB),给应答ACK

SHT20_readOneByte(NACK);//读Checksum,不给应答NACK

IIC_Stop();//StopI2C

LSB&=0xfc;//Data(LSB)的后两位在进行物理计算前前须置‘0’

temp=MSB*256+LSB;//十六进制转成十进制

i

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 党团工作 > 入党转正申请

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1