找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2721|回复: 3
收起左侧

0.96寸OLED显示屏STM32F1 SPI驱动程序

[复制链接]
ID:531397 发表于 2019-5-14 10:52 | 显示全部楼层 |阅读模式
本帖最后由 Yr~ 于 2019-5-16 14:20 编辑

包含字符显示驱动、清屏驱动、数字显示驱动、字符串显示驱动、图片显示驱动、汉字显示驱动
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[]);



//主函数
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);
        }         
        
}
//在指定位置显示一个字符
//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);
                                
                        }
}

剩余程序源码请下载附件

连线说明

连线说明

0.96OLED.7z

189.28 KB, 下载次数: 92, 下载积分: 黑币 -5

例程下载

评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

回复

使用道具 举报

ID:1 发表于 2019-5-14 18:08 | 显示全部楼层
本帖需要重新编辑补全电路原理图,源码,详细说明与图片即可获得100+黑币(帖子下方有编辑按钮)
回复

使用道具 举报

ID:286309 发表于 2019-8-5 14:54 | 显示全部楼层
和我想的不一样
回复

使用道具 举报

ID:438950 发表于 2020-7-23 14:12 | 显示全部楼层
程序下不进板子
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表