历史上的今天
今天是:2025年07月23日(星期三)
2020年07月23日 | STM32+0.91寸oled滚动显示bme680测得的数据
2020-07-23 来源:51hei
#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
}
史海拾趣
|
在一般的代码中都可以看到如下定义的帧结构 struct ip { uint EtherHead[9]; uchar VerandIphLen; & ...… 查看全部问答> |
|
RT-Thread MIPS分支连载:MIPS体现结构的历史 MIPS体系结构(Microprocessor without interlocked piped stages) MIPS技术公司是一家设计制造高性能、高档次及嵌入式32位和64位处理器的厂商,在RISC处理器方面占有重要地位。1984年,MIPS计算机公司成立。1992年,SGI收购了MIPS计算机公 ...… 查看全部问答> |
|
ucos的信息邮箱用在子函数里,是不是消息邮箱的指针就传递不出来了啊? ucos 用在任务之间,任务不删除任务中的变量就还在生存,所以邮箱能够把指针传递出来,但是如果用在子函数中,子函数运行结束,变量就没了,那么邮箱传递的地址内容就不对了。我的理解对吗,如果对的话,那怎么从子函数中传递出多个数据例如一个数 ...… 查看全部问答> |
|
主要分为两部分,上面是交流信号,可输出三角波和正弦波,每个信号可选择输出电压幅度,频率和相位。左边的波形显示是调节参数后即将输出的波形的形状(目前还没有输出),当用户确定需要输出该波形后点击 “开始交流输出”后信号源即开始输出波 ...… 查看全部问答> |
|
嵌入式操作系统与通用的操作相比较主要特点在于: 1.小内核,稳定可靠。 2.需要可装卸、可裁剪,以便能灵活应对各种不同的硬件平台。 3.面向应用,强实时性,可用于各种设备控制当中。 国际上常见的嵌入式操作系统大约有40种左,右如:Li ...… 查看全部问答> |
|
EEWORLD大学堂----使用Atmel Studio 6进行系统内编程 使用Atmel Studio 6进行系统内编程:https://training.eeworld.com.cn/course/450介绍在Atmel Studio 6中进行系统内编程。视频中将通过一个案例项目手把手教你一些关键步骤。… 查看全部问答> |
|
设计狮大神你怎么看?这个可以替代带灯轻触开关的结构--可发光可贴片的硅胶按键 LED SMD Rubber Touch Switch 贴片带灯硅胶按键。 寿命300W次,过回流焊,耐高温280度。发光均匀。 能否替代带灯轻触开关呢? … 查看全部问答> |




