找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 273|回复: 0
打印 上一主题 下一主题
收起左侧

stm32单片机I2C写OLED+AHT10检测源程序

[复制链接]
跳转到指定楼层
楼主
温湿度检测并显示,超过阈值警报



main.c
#include "stm32f4xx.h"
#include "./i2c/bsp_i2c.h"
#include "./i2c/bsp_i2c_oled.h"
#include "./bsp_aht10.h"
#include "./delay.h"
#include "./beep.h"
#include <stdio.h>

int main(void)
{
    float humi, temp;
        char buf[16];
    // 初始化OLED
    oled_Init();
        oled_Clear();
        AHT10_Init();
        BEEP_GPIO_Config();
    while (1) {
        if (AHT10_ReadData(&humi, &temp) == 0)
        {
                         // 1. 正确拆分湿度:整数部分 + 两位小数部分
                        uint16_t humi_int = (uint16_t)humi;  // 取整数(如50.23 → 50)
                        uint16_t humi_dec = (uint16_t)((humi - humi_int) * 100);  // 取两位小数(如0.23*100=23)        
                        // 2. 正确拆分温度:整数部分 + 两位小数部分
                        uint16_t temp_int = (uint16_t)temp;  // 取整数(如25.68 →25)
                        uint16_t temp_dec = (uint16_t)((temp - temp_int) * 100);  // 取两位小数(如0.68*100=68)
                        // 3. 格式化字符串:保留两位小数(不足补0,如50.3→50.30)
                        sprintf(buf, "Humi:%d.%02d%%", humi_int, humi_dec);  // %02d确保小数部分占2位,不足补0
                        oled_ShowString(1, 1, buf);
                        sprintf(buf, "Temp:%d.%02dC", temp_int, temp_dec);
                        oled_ShowString(2, 1, buf);
                                        if(temp>30)
                                        {
                                                BEEP_ON;
                                                oled_ShowString(3, 1, "warn!!");
                                        }
                                        else
                                        {
                                                BEEP_OFF;
                                                oled_ShowString(3, 1, "normal");
                                        }

        }
        Delay_ms(100);
    }
}

/*********************************************END OF FILE**********************/

I2C写OLED.7z

3.67 MB, 下载次数: 0, 下载积分: 黑币 -5

keil文件和演示视频

评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的奖励!

查看全部评分

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏2 分享淘帖 顶 踩
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表