STM32--7针0.96寸OLED屏幕显示(4线SPI)

这篇具有很好参考价值的文章主要介绍了STM32--7针0.96寸OLED屏幕显示(4线SPI)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

本文介绍基于STM32F103C8T6+0.96寸OLED(7针)的显示(完整程序代码见文末链接)

一、简介

OLED,即有机发光二极管( Organic Light Emitting Diode)。 OLED 由于同时具备自发光,不需背光源、对比度高、厚度薄、视角广、反应速度快、可用于挠曲性面板、使用温度范围广、构造及制程较简单等优异之特性,被认为是下一代的平面显示器新兴应用技术。
STM32--7针0.96寸OLED屏幕显示(4线SPI),STM32,stm32,单片机,0.96寸OLED,OLED,SPI
关于OLED基础知识介绍可参考我的另外一篇博客,建议阅读本文前先了解下,链接如下:https://blog.csdn.net/u011816009/article/details/130119426

本文是基于7pin 0.96寸OLED 屏幕4线SPI通信实现的和STM32通信,该7针屏幕模组还支持IIC以及3线SPI通信,在此不做赘述,可查看相关博文

二、接线图

STM32F103C8T6+0.96寸OLED(7针4线SPI)接线图,其中单片机的IO口资源可以在代码中修改,结合实际情况选用

STM32F103C8T6 0.96寸OLED(7针4线SPI)
3.3V VCC
GND GND
PA5 SCL/D0
PA6 SDA/D1
PA3 RST
PA4 DC
PA2 CS

三、代码函数(完整工程文件见文末连接)

显示主函数如下所示,其中:

OLED_ShowString:字符串显示函数
OLED_ShowChar:单个字符显示函数
OLED_ShowNum:变量/数值显示函数

int main(void)
	{ 

		delay_init();	//延时函数初始化	  
		OLED_Init();    //OLED初始化函数
		
		u32 t=10;
		
		while(1)
		{		
			OLED_ShowString(0,0,"Hello world",16); //显示字符串		
			OLED_ShowNum(10,30,t,2,16);            //显示具体变量t数值
			OLED_ShowChar(60,30,'A',16,1);         //显示单个字符
			
			OLED_Refresh_Gram(); //更新显示到OLED屏幕
		  //OLED_Fill(0,60,127,63,1);//填充OLED
			
		 }
     }

OLED_ShowString:字符串显示函数

//显示字符串
//x,y:起点坐标  
//size:字体大小 
//*p:字符串起始地址 
void OLED_ShowString(u8 x,u8 y,const u8 *p,u8 size)
{	
    while((*p<='~')&&(*p>=' '))//判断是不是非法字符!
    {       
        if(x>(128-(size/2))){x=0;y+=size;}
        if(y>(64-size)){y=x=0;OLED_Clear();}
        OLED_ShowChar(x,y,*p,size,1);	 
        x+=size/2;
        p++;
    }  
	
}	

OLED_ShowChar:单个字符显示函数

//在指定位置显示一个字符,包括部分字符
//x:0~127
//y:0~63
//mode:0,反白显示;1,正常显示				 
//size:选择字体 16/12 
void OLED_ShowChar(u8 x,u8 y,u8 chr,u8 size,u8 mode)
{      			    
	u8 temp,t,t1;
	u8 y0=y;
	u8 csize=(size/8+((size%8)?1:0))*(size/2);		//得到字体一个字符对应点阵集所占的字节数
	chr=chr-' ';//得到偏移后的值		 
    for(t=0;t<csize;t++)
    {   
		if(size==12)temp=asc2_1206[chr][t]; 	 	//调用1206字体
		else if(size==16)temp=asc2_1608[chr][t];	//调用1608字体
		else if(size==24)temp=asc2_2412[chr][t];	//调用2412字体
		else return;								//没有的字库
        for(t1=0;t1<8;t1++)
		{
			if(temp&0x80)OLED_DrawPoint(x,y,mode);
			else OLED_DrawPoint(x,y,!mode);
			temp<<=1;
			y++;
			if((y-y0)==size)
			{
				y=y0;
				x++;
				break;
			}
		}  	 
    }          
}

OLED_ShowNum:变量/数值显示函数

//显示2个数字
//x,y :起点坐标	 
//len :数字的位数
//size:字体大小
//mode:模式	0,填充模式;1,叠加模式
//num:数值(0~4294967295);	 		  
void OLED_ShowNum(u8 x,u8 y,u32 num,u8 len,u8 size)
{         	
	u8 t,temp;
	u8 enshow=0;						   
	for(t=0;t<len;t++)
	{
		temp=(num/mypow(10,len-t-1))%10;
		if(enshow==0&&t<(len-1))
		{
			if(temp==0)
			{
				OLED_ShowChar(x+(size/2)*t,y,' ',size,1);
				continue;
			}else enshow=1; 
		 	 
		}
	 	OLED_ShowChar(x+(size/2)*t,y,temp+'0',size,1); 
	}
} 

四、实际显示效果

STM32--7针0.96寸OLED屏幕显示(4线SPI),STM32,stm32,单片机,0.96寸OLED,OLED,SPI

STM32--7针0.96寸OLED屏幕显示(4线SPI)

附完整代码程序资料

链接:https://pan.baidu.com/s/1nH14xjhXIhVPtjbK8joR9w?pwd=kxhl
提取码:kxhl文章来源地址https://www.toymoban.com/news/detail-792957.html

到了这里,关于STM32--7针0.96寸OLED屏幕显示(4线SPI)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • stm32实现0.96oled图片显示,菜单功能

    本期内容,我们将学习0.96寸oled的进阶使用,展示图片,实现菜单切换等功能,关于oled的基础内容,这里我不做介绍,大家可以学习 : 夜深人静学32系列17——OLED ,里面讲述了oled的基本知识并实现了一个简单页面的编写。 这个菜单一共有三个等级, 一级菜单:原神启动界

    2024年02月03日
    浏览(44)
  • 【STM32CubeMX】教程二_IIC驱动0.96oled屏幕(SSD1306)

    本篇博客涉及以下内容 IIC通讯原理讲解、代码编写 SSD1306驱动芯片datasheet讲解、驱动代码编写、0.96oled模块原理图说明 STM32CubeMX配置IIC 使用硬件:STM32F103C8T6 使用软件:STM32CubeMX、keil5(MDK)、VSCode(搭载keil assistant插件) 提示:以下是本篇文章正文内容   在计算机科学里,大

    2023年04月21日
    浏览(24)
  • STM32+7针脚0.96OLED屏显示数字汉字符号英文(入门级)

    本文即做单纯的简单使用介绍说明,基于stm32t103函数库,采用GPIO口模拟的通信协议方式。 在OLED屏上显示字符以及汉字。 源码获取:链接:https://pan.baidu.com/s/1D6lk-fRq64gJILgeDBd2rQ?pwd=qng5  提取码:qng5 目录 一、OLED屏介绍 二、硬件接线说明 三、软件代码介绍 1、驱动代码 2、OL

    2024年04月14日
    浏览(24)
  • K_A19_002 基于STM32等单片机采集水位检测传感数据 串口与OLED0.96双显示

    单片机型号 测试条件 模块名称 代码功能 STC89C52RC 晶振11.0592M 水位检测传感模块 STC89C52RC驱动水位检测传感模块 串口与OLED0.96双显示 STM32F103C8T6 晶振8M/系统时钟72M 水位检测传感模块 STM32F103C8T6驱动水位检测传感模块参数 串口与OLED0.96双显示 其他资料目录 直戳跳转 工作电压:

    2024年02月07日
    浏览(21)
  • K_A12_033 基于STM32等单片机驱动TCS34725颜色传感 串口与OLED0.96双显示

    单片机型号 测试条件 模块名称 代码功能 STC89C52RC 晶振11.0592M TCS34725颜色传感 模块 STC89C52RC驱动TCS34725颜色传感模块串口与OLED0.96双显示 STM32F103C8T6 晶振8M/系统时钟72M TCS34725颜色传感模块 STM32F103C8T6驱动TCS34725颜色传感模块串口与OLED0.96双显示 其他资料目录 直戳跳转 工作电压:

    2024年02月06日
    浏览(17)
  • K_A16_001 基于STM32等单片机驱动HX711称重模块 串口与OLED0.96双显示

    单片机型号 测试条件 模块名称 代码功能 STC89C52RC 晶振11.0592M HX711称重模块 STC89C52RC驱动HX711称重模块 串口与OLED0.96双显示 STM32F103C8T6 晶振8M/系统时钟72M HX711称重模块 STM32F103C8T6驱动HX711称重模块参数 串口与OLED0.96双显示 其他资料目录 直戳跳转 HX711参数 1.两路可选择差分输入

    2023年04月27日
    浏览(27)
  • K_A12_007 基于STM32等单片机驱动AS608光学指纹识别模块 OLED0.96显示

    注意:此处程序用的波特率都是9600 使用前请用上位机把模块波特率调到9600 上位机使用与下载 直戳跳转 单片机型号 测试条件 模块名称 代码功能 STC89C52RC 晶振11.0592M AS608光学指纹模块 STC89C52RC驱动AS608光学指纹模块 串口与OLED0.96双显示 STM32F103C8T6 晶振8M/系统时钟72M AS608光学指

    2024年02月06日
    浏览(22)
  • STM32F103硬件IIC控制4针0.96寸OLED显示屏

    OLED使用的0.96寸四针屏幕,以下直接看实际操作。 使用PCtoLCD2002软件提取OLED字模。 注意红色方框的选项内容,不要选错了,选错会导致烧录程序后无法显示。 此为硬件IIC,如果使用过我的模拟IIC控制程序可直接看 void OLED_Write_Command(unsigned char IIC_Command); void OLED_Write_Data(unsig

    2024年02月02日
    浏览(21)
  • STM32F103模拟IIC控制4针0.96寸OLED显示屏

    OLED,即有机发光二极管(Organic Light-Emitting Diode),又称为有机电激光显示(Organic Electroluminesence Display, OELD)。OLED由于同时具备自发光,不需背光源、对比度高、厚度薄、视角广、反应速度快、可用于挠曲性面板、使用温度范围广、构造及制程较简单等优异之特性,被认为

    2023年04月24日
    浏览(17)
  • K_A16_003 基于STM32等单片机采集薄膜压力传感器参数串口与OLED0.96双显示

    单片机型号 测试条件 模块名称 代码功能 STM32F103C8T6 晶振8M/系统时钟72M 薄膜压力传感器模块 STM32F103C8T6驱动薄膜压力传感器模块 串口与OLED0.96双显示 其他资料目录 直戳跳转 厚度 :0.4mm 样式 :薄片状,柔性 触发力 :20g,默认电阻值小于 200kΩ 时触发 压力感应范围 :20g~6kg

    2024年02月05日
    浏览(24)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包