標(biāo)題: 單片機(jī)+0.96oled滾動(dòng)數(shù)據(jù)刷新導(dǎo)致無法正常顯示 [打印本頁]

作者: socket    時(shí)間: 2022-11-12 23:12
標(biāo)題: 單片機(jī)+0.96oled滾動(dòng)數(shù)據(jù)刷新導(dǎo)致無法正常顯示
每兩秒獲取一次溫濕度數(shù)據(jù),溫濕度數(shù)據(jù)是要求設(shè)置滾動(dòng),如何解決數(shù)據(jù)滾屏無法正常顯示


單片機(jī)源程序如下:
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);        //關(guān)閉滾動(dòng)
                OLED_WR_Byte(0x27,OLED_CMD);        //水平向左或者右滾動(dòng) 26/27
                OLED_WR_Byte(0x00,OLED_CMD);        //虛擬字節(jié)
                OLED_WR_Byte(0x00,OLED_CMD);        //起始頁 0
                OLED_WR_Byte(0x07,OLED_CMD);        //滾動(dòng)時(shí)間間隔
                OLED_WR_Byte(0x07,OLED_CMD);        //終止頁 7
                OLED_WR_Byte(0x00,OLED_CMD);        //虛擬字節(jié)
                OLED_WR_Byte(0xFF,OLED_CMD);        //虛擬字節(jié)
                OLED_WR_Byte(0x2F,OLED_CMD);        //開啟滾動(dòng)
               
               
                //延時(shí)2s
                for(int i = 0;i < 4; i++)
                {
                        delay_ms(500);
                }
        }




作者: 13205495918    時(shí)間: 2022-11-13 08:46
我莫名感覺是延時(shí)的問題
作者: 暴龍戰(zhàn)士電頭    時(shí)間: 2022-11-14 11:17
原先顯示的字體沒有清除吧,重疊了
作者: yzwzfyz    時(shí)間: 2022-11-14 15:52
教你一個(gè)笨方法:
顯示前,先清屏,就當(dāng)是才開機(jī)。
然后再顯示。
作者: 188610329    時(shí)間: 2022-11-14 20:52
不要用自帶的滾屏功能, 那個(gè)不適合,
你在自己 BUF里面滾, 然后不停的重新寫屏,就不會(huì)有這問題了。




歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1