标题:
STM32+0.91寸oled滚动显示bme680测得的数据(温湿度、气压、空气质量指数)
[打印本页]
作者:
刘查理
时间:
2019-9-9 18:18
标题:
STM32+0.91寸oled滚动显示bme680测得的数据(温湿度、气压、空气质量指数)
https://v.youku.com/v_show/id_XM ... j.8428770.3416059.1
#include "bme680.h"
uint8_t bme680_data[20]={0};
uint8_t aqi_accuracy;
int16_t temperature,altitude;
uint16_t humidity,aqi;
uint32_t pressure,gas;
void Bme680_Config(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
USART_InitTypeDef USART_InitStructure;
NVIC_InitTypeDef NVIC_InitStructure;
RCC_APB1PeriphClockCmd(RCC_APB1Periph_USART2, ENABLE);
RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO | RCC_APB2Periph_GPIOA, ENABLE);
GPIO_InitStructure.GPIO_Pin = TXD;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
GPIO_Init(GPIOA, &GPIO_InitStructure);
GPIO_InitStructure.GPIO_Pin = RXD;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;
GPIO_Init(GPIOA, &GPIO_InitStructure);
USART_InitStructure.USART_BaudRate = 9600;
USART_InitStructure.USART_WordLength = USART_WordLength_8b;
USART_InitStructure.USART_StopBits = USART_StopBits_1;
USART_InitStructure.USART_Parity = USART_Parity_No;
USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None;
USART_InitStructure.USART_Mode = USART_Mode_Tx | USART_Mode_Rx;
USART_Init(USART2, &USART_InitStructure);
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_1);
NVIC_InitStructure.NVIC_IRQChannel = USART2_IRQn;
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;
NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0;
NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
NVIC_Init(&NVIC_InitStructure);
USART_ITConfig(USART2,USART_IT_RXNE, ENABLE);
USART_Cmd(USART2,ENABLE);
}
void Bme680_Init(void)
{
USART_SendData(USART2,0xa5);
while(USART_GetFlagStatus(USART2,USART_FLAG_TXE)==Bit_RESET);
USART_SendData(USART2,0x55);
while(USART_GetFlagStatus(USART2,USART_FLAG_TXE)==Bit_RESET);
USART_SendData(USART2,0x3f);
while(USART_GetFlagStatus(USART2,USART_FLAG_TXE)==Bit_RESET);
USART_SendData(USART2,0x39);
while(USART_GetFlagStatus(USART2,USART_FLAG_TXE)==Bit_RESET);
Delay_ms(100);
USART_SendData(USART2,0xa5);
while(USART_GetFlagStatus(USART2,USART_FLAG_TXE)==Bit_RESET);
USART_SendData(USART2,0x56);
while(USART_GetFlagStatus(USART2,USART_FLAG_TXE)==Bit_RESET);
USART_SendData(USART2,0x02);
while(USART_GetFlagStatus(USART2,USART_FLAG_TXE)==Bit_RESET);
USART_SendData(USART2,0xfd);
while(USART_GetFlagStatus(USART2,USART_FLAG_TXE)==Bit_RESET);
Delay_ms(100);
}
void Bme680_Analysis(void)
{
temperature=(bme680_data[4]<<8)|bme680_data[5];
// temperature=temperature/100; //unit:0.01℃
humidity=(bme680_data[6]<<8)|bme680_data[7];
// humidity=humidity/100; //unit:0.01%
pressure=(bme680_data[8]<<16)|(bme680_data[9]<<8)|bme680_data[10]; //unit:1Pa
aqi_accuracy=bme680_data[11]>>4;
aqi=((bme680_data[11]&0x0f)<<8)|bme680_data[12];
gas=(bme680_data[13]<<24)|(bme680_data[14]<<16)|(bme680_data[15]<<8)|bme680_data[16];
//unit:1ohm
altitude=(bme680_data[17]<<8)|bme680_data[18]; //unit:1m
}
复制代码
全部资料51hei下载地址:
程序.7z
(276.04 KB, 下载次数: 208)
2019-9-10 01:51 上传
点击文件名下载附件
下载积分: 黑币 -5
作者:
浅笑无痕殇
时间:
2019-9-28 10:44
串口传感器模块。。。。。
作者:
不知道叫啥2020
时间:
2019-11-11 10:23
终于找到一个bme680的demo了
作者:
yangbiei
时间:
2019-11-13 18:58
留 个记号。
作者:
yaylo
时间:
2019-11-19 19:09
终于找到一个bme680的demo了
作者:
chenmcu
时间:
2019-11-20 09:42
分享的是hex文件还是源码呀
作者:
jeasonbbb
时间:
2020-2-13 18:45
这个程序是串口模块的,,,, 只是数据的解析 不是底层的数据处理
作者:
huoujhy
时间:
2020-5-15 16:22
终于找到一个bme680的demo了
作者:
jianfeii
时间:
2020-7-17 17:38
这个没啥用啊,你都已经封装好了,就当成串口用了,有啥好研究的,BME的IIC底层驱动实现才有价值
作者:
thanksbaby
时间:
2020-7-17 17:50
模块代码,很不错,谢谢分享
作者:
henryxue
时间:
2022-2-16 21:10
用串口读取一个内解算模块,问题是解算模块有卖的吗?指令集有吗?
作者:
1759817440
时间:
2022-2-18 10:25
正在学习bme680的驱动,非常感谢.
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1