历史上的今天
返回首页

历史上的今天

今天是: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

}


推荐阅读

史海拾趣

Evans Capacitor Company公司的发展小趣事

随着环保意识的日益提高,ECC积极响应国家号召,致力于绿色环保产品的研发和生产。公司投入大量资金研发环保型电容器,采用环保材料和工艺,减少生产过程中的污染排放。此外,ECC还积极参与公益事业,捐款支持环保组织和慈善机构。

Active-Semi公司的发展小趣事

面对数字化浪潮的冲击,ECC决定进行数字化转型以提升竞争力。公司引入了先进的生产设备和管理系统,实现了生产过程的自动化和智能化。同时,ECC还建立了大数据分析平台,对市场需求、客户需求等数据进行深入分析,为公司的决策提供有力支持。数字化转型使得ECC在市场竞争中更加灵活和高效。

Central Semiconductor公司的发展小趣事

在20世纪70年代末,当许多半导体制造商纷纷转向硅器件的生产时,Central Semiconductor却洞察到了后缘半导体市场的空白。公司决定坚守锗器件的生产,并凭借这一决策填补了市场空白。这种对旧技术的坚持不仅让Central在一段时间内保持了竞争优势,也为公司在后续发展中积累了宝贵的经验。

随着技术的进步,Central并没有固步自封,而是逐渐将产品系列扩展到包括表面安装设备等更先进的产品。这种转型不仅满足了市场对小型化产品的需求,也展示了Central对市场变化的敏锐洞察和适应能力。

GE公司的发展小趣事

在电子行业中,产品的更新换代速度极快,许多产品可能会因为技术更新或市场需求变化而停产。然而,Central Semiconductor却看到了其中的商机。公司根据客户需求,继续生产其他厂商已经停产的终老产品,以确保产品的持续供应和生命周期的延长。

这种对停产产品的支持不仅避免了客户因重新设计而带来的昂贵成本和时间消耗,也展现了Central对客户需求的深入理解和满足能力。这种服务模式不仅为Central赢得了客户的忠诚和信赖,也为公司在行业中树立了良好的口碑。

Global Power Technology Co., Ltd公司的发展小趣事
通常容声BCD-190型电冰箱的温度调节旋钮位于冷藏室内部或冰箱侧面。根据实际需要,通过旋转温度调节旋钮来设置冷藏室和冷冻室的温度。
Cadeka公司的发展小趣事

Cadeka公司始终将品质和创新作为企业发展的核心。公司建立了严格的质量管理体系,确保每一件产品都符合高标准的质量要求。同时,公司还不断投入研发资金,推动技术创新和产品升级。通过品质和创新并重的发展战略,Cadeka公司赢得了客户的信赖和市场的认可。

问答坊 | AI 解惑

串联对个设备后往一个串口写数据

串联对个设备后,这些设备均是独立往一个串口写数据, 后果有没有影响? 请有实战者给予回答。 谢谢!…

查看全部问答>

嵌入式TCP/IP数据帧结构定义?

在一般的代码中都可以看到如下定义的帧结构 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 用在任务之间,任务不删除任务中的变量就还在生存,所以邮箱能够把指针传递出来,但是如果用在子函数中,子函数运行结束,变量就没了,那么邮箱传递的地址内容就不对了。我的理解对吗,如果对的话,那怎么从子函数中传递出多个数据例如一个数 ...…

查看全部问答>

多参量调试信号源---上位机软件界面

主要分为两部分,上面是交流信号,可输出三角波和正弦波,每个信号可选择输出电压幅度,频率和相位。左边的波形显示是调节参数后即将输出的波形的形状(目前还没有输出),当用户确定需要输出该波形后点击 “开始交流输出”后信号源即开始输出波 ...…

查看全部问答>

【科普】嵌入式系统常见的OS(附资料推荐)

嵌入式操作系统与通用的操作相比较主要特点在于: 1.小内核,稳定可靠。 2.需要可装卸、可裁剪,以便能灵活应对各种不同的硬件平台。 3.面向应用,强实时性,可用于各种设备控制当中。 国际上常见的嵌入式操作系统大约有40种左,右如:Li ...…

查看全部问答>

电源电池芯片

开关型2/3/4节锂离子/锂聚合物充电管理芯片 1、 HB6295功能简述1.1、特性● 适用于2、3、4节锂离子/锂聚合物高效率充电器设计● 0.5%的充电电压控制精度 ● 恒压充电电压值可通过外接电阻微调 ● 智能电池检测 ● 外置功率MOSFET● 开关频率400KH ...…

查看全部问答>

EEWORLD大学堂----使用Atmel Studio 6进行系统内编程

使用Atmel Studio 6进行系统内编程:https://training.eeworld.com.cn/course/450介绍在Atmel Studio 6中进行系统内编程。视频中将通过一个案例项目手把手教你一些关键步骤。…

查看全部问答>

设计狮大神你怎么看?这个可以替代带灯轻触开关的结构--可发光可贴片的硅胶按键

LED SMD Rubber Touch Switch 贴片带灯硅胶按键。 寿命300W次,过回流焊,耐高温280度。发光均匀。 能否替代带灯轻触开关呢? …

查看全部问答>