標(biāo)題: 0.96寸OLED顯示屏STM32F1 SPI驅(qū)動(dòng)程序 [打印本頁]

作者: Yr~    時(shí)間: 2019-5-14 10:52
標(biāo)題: 0.96寸OLED顯示屏STM32F1 SPI驅(qū)動(dòng)程序
本帖最后由 Yr~ 于 2019-5-16 14:20 編輯

包含字符顯示驅(qū)動(dòng)、清屏驅(qū)動(dòng)、數(shù)字顯示驅(qū)動(dòng)、字符串顯示驅(qū)動(dòng)、圖片顯示驅(qū)動(dòng)、漢字顯示驅(qū)動(dòng)
void OLED_ShowChar(u8 x,u8 y,u8 chr);
void OLED_ShowNum(u8 x,u8 y,u32 num,u8 len,u8 size);
void OLED_ShowString(u8 x,u8 y, u8 *p);         
void OLED_Set_Pos(unsigned char x, unsigned char y);
void OLED_ShowCHinese(u8 x,u8 y,u8 no);
void OLED_DrawBMP(unsigned char x0, unsigned char y0,unsigned char x1, unsigned char y1,unsigned char BMP[]);



//主函數(shù)
int main(void)
{        u8 t;
                delay_init();            
                NVIC_Configuration();
                OLED_Init();        
                OLED_Clear()          ;
                t=' ';
        while(1)
        {               
                OLED_Clear();
                OLED_ShowString(0,3,"1.3' OLED TEST");
                OLED_ShowString(0,6,"ASCII:");  
                OLED_ShowString(63,6,"CODE:");  
                OLED_ShowChar(48,6,t);
                t++;
                if(t>'~')t=' ';
                OLED_ShowNum(103,6,t,3,16);
                        
               
                delay_ms(8000);
                OLED_Clear();
                delay_ms(8000);
                OLED_DrawBMP(0,0,128,8,BMP1);
                delay_ms(8000);
                OLED_DrawBMP(0,0,128,8,BMP2);
                delay_ms(8000);
        }         
        
}
//在指定位置顯示一個(gè)字符
//x:0~127
//y:0~63
//mode:0,反白顯示  1,正常顯示                                 
//size:選擇字體 16/12
void OLED_ShowChar(u8 x,u8 y,u8 chr)
{              
        unsigned char c=0,i=0;        
                c=chr-' ';//μÃμ½Æ«òÆoóμÄÖμ                        
                if(x>Max_Column-1){x=0;y=y+2;}
                if(SIZE ==16)
                        {
                        OLED_Set_Pos(x,y);        
                        for(i=0;i<8;i++)
                        OLED_WR_Byte(F8X16[c*16+i],OLED_DATA);
                        OLED_Set_Pos(x,y+1);
                        for(i=0;i<8;i++)
                        OLED_WR_Byte(F8X16[c*16+i+8],OLED_DATA);
                        }
                        else {        
                                OLED_Set_Pos(x,y+1);
                                for(i=0;i<6;i++)
                                OLED_WR_Byte(F6x8[c],OLED_DATA);
                                
                        }
}

剩余程序源碼請(qǐng)下載附件

TIM圖片20190516141325.png (9.05 KB, 下載次數(shù): 40)

連線說明

連線說明

0.96OLED.7z

189.28 KB, 下載次數(shù): 92, 下載積分: 黑幣 -5

例程下載


作者: admin    時(shí)間: 2019-5-14 18:08
本帖需要重新編輯補(bǔ)全電路原理圖,源碼,詳細(xì)說明與圖片即可獲得100+黑幣(帖子下方有編輯按鈕)
作者: 故里草木深i    時(shí)間: 2019-8-5 14:54
和我想的不一樣
作者: 我是陳小白    時(shí)間: 2020-7-23 14:12
程序下不進(jìn)板子




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