基于STM32F103的I2C接口的OLED显示AHT10的温湿度程序(KEIL5工程文件)
单片机源程序如下:
- /*********************************************************************************************
- 模板制作: AHT10 + OLED 屏幕
- 程序名: 温温度传感器0.96 OLED显示程序
- 编写人: 李旭
- 编写时间: 2020年4月12日17:07:35
- 硬件支持: STM32F103C8 外部晶振8MHz RCC函数设置主频72MHz
- I2C接口的oled和AHT10。oled:SCL-PB6,SDA-PB7. AHT10:SCL-PA6,SDA-PA7(可修改)
- 实现功能:oled显示温湿度,usart1将温湿度打印到串口
- 修改日志:
-
- 说明:
- # 本模板加载了STM32F103内部的RCC时钟设置,并加入了利用滴答定时器的延时函数。
- # 可根据自己的需要增加或删减。
- *********************************************************************************************/
- #include "stm32f10x.h" //STM32头文件
- #include "sys.h"
- #include "delay.h"
- #include "OLED_I2C.h"
- #include "AHT10_I2C.h"
- #include "usart.h"
- int main (void)
- {
- u8 i;
- OLED_Init();
- OLED_CLS();
- AHT10_Init();
- USART1_Init(9600);
- delay_ms(500);
-
- while(1)
- {
- read_AHT10_once();
- printf("\r\n");
- printf("温度:%d%d.%d",T1/100,(T1/10)%10,T1%10);
- printf("湿度:%d%d.%d",H1/100,(H1/10)%10,H1%10);
- printf("\r\n");
- for(i=1;i<6;i++)
- {
- OLED_ShowCN(22+i*16,0,i);//测试显示中文
- }
- OLED_ShowCN(22,3,1);
- OLED_ShowCN(38,3,3);
- OLED_ShowStr(7,3,32);
- delay_ms(100);
- OLED_ShowStr(7,3,':');
- delay_ms(100);
- OLED_ShowStr(8,3,T1/100); //OLED_ShowStr(列,行,内容(变量、字符));
- OLED_ShowStr(9,3,(T1/10)%10);
- OLED_ShowStr(10,3,'.');
- OLED_ShowStr(11,3,T1%10);
- OLED_ShowStr(12,3,'C');
- delay_ms(500);
- OLED_ShowCN(22,5,2);
- OLED_ShowCN(38,5,3);
- OLED_ShowStr(7,5,32);
- delay_ms(100);
- OLED_ShowStr(7,5,':');
- delay_ms(100);
- OLED_ShowStr(8,5,H1/100); //OLED_ShowStr(列,行,内容(变量、字符));
- OLED_ShowStr(9,5,(H1/10)%10);
- OLED_ShowStr(10,5,'.');
- OLED_ShowStr(11,5,H1%10);
- OLED_ShowStr(12,5,'%');
-
- //delay_ms(1000);
- // OLED_DrawBMP(0,0,128,8,(u8*) BMP1);
- }
- }
- /*********************************************************************************************
- * 杜洋工作室 www.DoYoung.net
- * 洋桃电子 www.DoYoung.net/YT
- *********************************************************************************************/
- /*
- 【变量定义】
- u32 a; //定义32位无符号变量a
- u16 a; //定义16位无符号变量a
- u8 a; //定义8位无符号变量a
- vu32 a; //定义易变的32位无符号变量a
- vu16 a; //定义易变的 16位无符号变量a
- vu8 a; //定义易变的 8位无符号变量a
- uc32 a; //定义只读的32位无符号变量a
- uc16 a; //定义只读 的16位无符号变量a
- uc8 a; //定义只读 的8位无符号变量a
- volatile int a;//定义易变的 16位有符号变量a
- #define ONE 1 //宏定义
- delay_us(1); //延时1微秒
- delay_ms(1); //延时1毫秒
- delay_s(1); //延时1秒
- GPIO_WriteBit(LEDPORT,LED1,(BitAction)(1)); //LED控制
- */
复制代码
所有程序51hei提供下载:
温湿度OLED显示程序.7z
(207.82 KB, 下载次数: 206)
|