每两秒获取一次温湿度数据,温湿度数据是要求设置滚动,如何解决数据滚屏无法正常显示
单片机源程序如下:
while(1)
{
DHT11_GetVal(dht_buf);
sprintf((char*)buf,":%d",dht_buf[2]);
OLED_ShowString(36,0,buf,16);
sprintf((char*)buf,":%d%%RH",dht_buf[0]);
OLED_ShowString(36,2,buf,16);
OLED_WR_Byte(0x2E,OLED_CMD); //关闭滚动
OLED_WR_Byte(0x27,OLED_CMD); //水平向左或者右滚动 26/27
OLED_WR_Byte(0x00,OLED_CMD); //虚拟字节
OLED_WR_Byte(0x00,OLED_CMD); //起始页 0
OLED_WR_Byte(0x07,OLED_CMD); //滚动时间间隔
OLED_WR_Byte(0x07,OLED_CMD); //终止页 7
OLED_WR_Byte(0x00,OLED_CMD); //虚拟字节
OLED_WR_Byte(0xFF,OLED_CMD); //虚拟字节
OLED_WR_Byte(0x2F,OLED_CMD); //开启滚动
//延时2s
for(int i = 0;i < 4; i++)
{
delay_ms(500);
}
}
|