STM32F103VE基于标准库下DHT11数据I2C oled显示
Posted perseverance52
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了STM32F103VE基于标准库下DHT11数据I2C oled显示相关的知识,希望对你有一定的参考价值。
STM32F103VE基于标准库下DHT11数据I2C oled显示
- 📺在1.3寸sh1106 I2C oled屏幕上显示效果:
- 当然如果修改到0.96寸ssd1306 OLED屏幕上显示也是可以的。
✅1.3寸和0.96寸驱动注意事项
驱动代码只需要修改2个地方即可。
- oled初始化函数:
void OLED_Init(void)
HZ=GB16_NUM();
IIC_GPIO_Config();
Write_IIC_Command(0xAE); //--display off
Write_IIC_Command(0x02);//-设置低位列地址set low column address 注意:0.96屏幕从0x00开始写数据,1.3寸屏幕从0x02开始写数据
......
- 清屏函数
void OLED_Fill(u8 fill_Data)
u8 m,n;
for(m=0;m<8;m++)
Write_IIC_Command(0xb0+m); //page0-page1
Write_IIC_Command(0x02);//low column start address1.3寸屏幕发送地址是从0x02开始的,0.96屏幕是从0x00地址开始的特别注意个地方!!!
Write_IIC_Command(0x10); //high column start address
for(n=0;n<130;n++)
Write_IIC_Data(fill_Data);
📝主程序代码
#include "stm32f10x.h" // Device header
#include "Delay.h"
#include "OLED.h"
#include "DHT11.h"
#include "LED.h"
u8 temp = 0,humi = 0,tempL=0 ,humiL=0;
int main(void)
OLED_Init();
DHT11_Init();
LED_Init();
Delay_ms(200);
OLED_Clear();
OLED_ShowString(24,0,(u8*)"DHT11_TEST");
/*显示温度*/
OLED_ShowString(0,3,(u8*)"温度:");
OLED_ShowString(58,3,(u8*)".");
OLED_ShowString(80,3,(u8*)"℃");
/*显示湿度*/
OLED_ShowString(0,6,(u8*)"湿度:");
OLED_ShowString(58,6,(u8*)".");
OLED_ShowString(80,6,(u8*)"%");
while (1)
Delay_ms(2000);
// OLED_Clear();
OLED_ShowNum(40,3,temp,2,0);
OLED_ShowNum(40,6,humi,2,0);
OLED_ShowNum(60,6,humiL,2,0);
OLED_ShowNum(60,3,tempL,2,0);
DHT11_Read_Data(&temp,&tempL ,&humi,&humiL);
if(humi >81)
LED1_ON();
else
LED1_OFF();
📚程序源码
链接:https://pan.baidu.com/s/1MRL3dSRUpGNbX28Gkk3Kwg
提取码:6yox
以上是关于STM32F103VE基于标准库下DHT11数据I2C oled显示的主要内容,如果未能解决你的问题,请参考以下文章
STM32F103VET6基于HAL库和标准库下DAC 心形波形输出
STM32F103VE基于标准库串口1空闲中断+DMA数据接收工程
STM32F103VE基于STM32CubeMX 配置I2C驱动0.96/1.3 OLED显示
STM32F103使用DHT11采集温湿度通过软件I2C驱动OLED显示