STM32-SPI驱动7针脚OLED,显示中文,字符串,数字,图片。

这篇具有很好参考价值的文章主要介绍了STM32-SPI驱动7针脚OLED,显示中文,字符串,数字,图片。。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

STM32-SPI驱动7针脚OLED,显示中文,数字,图片。

本文为STM32f103rct6利用SPI驱动7针脚oled模块显示中文,数字和图片。

1,如图,为本次驱动的oled模块

STM32-SPI驱动7针脚OLED,显示中文,字符串,数字,图片。

2,引脚定义:

GND--电源地;

VCC--电源正极(3.3v~5v);

D0--时钟线;

D1--数据线;

RES--复位线;

DC--数据/命令控制线;

CS--片选线,低电平有效,如果不用,必须接地;

首先我们自己从淘宝或者其他渠道购买的OLED屏幕,都是先找到OLED需要的屏幕资料和驱动代码,如果没有可以找商家要,我们本次驱动的oled为下图的像素为128x64的oled模块。X轴的范围是0-127,单位是列,Y轴的范围是0-63,单位是行。

STM32-SPI驱动7针脚OLED,显示中文,字符串,数字,图片。

3,OLED屏幕接线:

// OLED模块 STM32单片机 VCC 接 DC 5V/3.3V //OLED屏电源正 GND 接 GND //OLED屏电源地 D1 接 PB15 //OLED屏SPI写信号 CS 接 PB11 //OLED屏片选控制信号 RES 接 PB12 //OLED屏复位控制信号 DC 接 PB10 //OLED屏数据/命令选择控制信号 D0 接 PB13 //OLED屏SPI时钟信号

因为D1对应的是数据线,我们可以选择主入从出(MISO)或者主出从入(MISI).这里我们选用的是主出从入(MISI)。

STM32-SPI驱动7针脚OLED,显示中文,字符串,数字,图片。

4.代码的移植和修改

bmp.h是图片的代码,oled.c是驱动代码,oled.h是引脚代码,oledfont.h是一些字库和汉字代码

STM32-SPI驱动7针脚OLED,显示中文,字符串,数字,图片。

这个时候我们初始化引脚。

STM32-SPI驱动7针脚OLED,显示中文,字符串,数字,图片。

1,显示数字(GUI_ShowNum)

* @函数: 显示编号 x: 数字的开始坐标x Y: 数字的起始Y坐标 num: (0 ~ 4294967295) Len: 显示号的长度 大小: 显示编号的大小 模式: 0-白底黑字,1-黑底白字 void GUI_ShowNum(u8 x,u8 y,u32 num,u8 len,u8 Size,u8 mode) { u8 t,temp; u8 enshow=0,csize; if(Size == 16) { csize = Size/2; } else if(Size == 8) { csize = Size/2+2; } else { return; } for(t=0;t<len;t++) { temp=(num/mypow(10,len-t-1))%10; if(enshow==0&&t<(len-1)) { if(temp==0) { GUI_ShowChar(x+csize*t,y,' ',Size,mode); continue; }else enshow=1; } GUI_ShowChar(x+csize*t,y,temp+'0',Size,mode); } }

2,显示字符串(GUI_ShowString)

* @函数:显示英文字符串 * @parameters: x: 英文字符串的起始x坐标 y: 英文字符串的起始y坐标 chr: 英文字符串的起始地址 Char_Size: 显示字符大小 模式: 0-白底黑字,1-黑底白字 GUI_ShowString(28,0,"lxl",16,1); ******************************************************************************/ void GUI_ShowString(u8 x,u8 y,u8 *chr,u8 Char_Size,u8 mode) { unsigned char j=0,csize; if(Char_Size == 16) { csize = Char_Size/2; } else if(Char_Size == 8) { csize = Char_Size/2+2; } else { return; } while (chr[j]!='\0') { GUI_ShowChar(x,y,chr[j],Char_Size,mode); x+=csize; if(x>120) { x=0; y+=Char_Size; } j++; } }

3,显示汉字(GUI_ShowCHinese)

void GUI_ShowCHinese(u8 x,u8 y,u8 hsize,u8 *str,u8 mode) { while(*str!='\0') { if(hsize == 16) { GUI_ShowFont16(x,y,str,mode); } else if(hsize == 24) { GUI_ShowFont24(x,y,str,mode); } else if(hsize == 32) { GUI_ShowFont32(x,y,str,mode); } else { return; } x+=hsize; if(x>WIDTH-hsize) { x=0; y+=hsize; } str+=2; } }

4,oled显示图片

想要让oled显示我们想要的汉字和图形就要使用取模软件

这里给大家推荐一个取模软件

STM32-SPI驱动7针脚OLED,显示中文,字符串,数字,图片。

第一步,

STM32-SPI驱动7针脚OLED,显示中文,字符串,数字,图片。

第二步,

将生成的16进制的数据复制下来

STM32-SPI驱动7针脚OLED,显示中文,字符串,数字,图片。

下面是我们的主函数

int main(void) { Usart_Init(); delay_init(); //延时函数初始化 NVIC_Configuration(); //设置NVIC中断分组2:2位抢占优先级,2位响应优先级 OLED_Init(); OLED_Clear(0); //清屏(全黑) while (1) { GUI_ShowString(0,0,"helloworld",16,1);//oled显示字符串 GUI_ShowNum(20,20,123456,6,16,1); //oled显示数字 GUI_ShowCHinese(40,40,16,"我",1); //显示汉字 } }

编译并烧录到开发板按线复位键结果如图:

STM32-SPI驱动7针脚OLED,显示中文,字符串,数字,图片。

5.最后显示图片

int main(void) { Usart_Init(); delay_init(); //延时函数初始化 NVIC_Configuration(); //设置NVIC中断分组2:2位抢占优先级,2位响应优先级 OLED_Init(); OLED_Clear(0); //清屏(全黑) while (1) { GUI_DrawBMP(0, 0, 128, 64, BMP6, 1);//显示图片 OLED_Clear(0); } }

STM32-SPI驱动7针脚OLED,显示中文,字符串,数字,图片。

STM32-SPI驱动7针脚OLED,显示中文,字符串,数字,图片。

将这一大堆数据复制到bmp.h里面(下图为爱心的字模)

unsigned char BMP6[] = { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x07,0xE0,0x00,0x00,0x7E,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x3F,0xFE,0x00,0x07,0xFF,0xC0,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0x80,0x1F,0xFF,0xF0,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x03,0xFF,0xFF,0xE0,0x3F,0xFF,0xFC,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x07,0xFF,0xFF,0xF0,0xFF,0xFF,0xFE,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x0F,0xF8,0x1F,0xF9,0xFF,0x81,0xFF,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x0F,0xE0,0x03,0xFF,0xFC,0x00,0x7F,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x1F,0x80,0x01,0xFF,0xF8,0x00,0x1F,0x80,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x1F,0x00,0x00,0x7F,0xE0,0x00,0x0F,0x80,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x3F,0x00,0x00,0x3F,0xC0,0x00,0x0F,0xC0,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x3E,0x00,0x00,0x1F,0x80,0x00,0x07,0xC0,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x3E,0x00,0x00,0x1F,0x80,0x00,0x07,0xC0,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x3E,0x00,0x00,0x0F,0x00,0x00,0x07,0xC0,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x3E,0x00,0x00,0x00,0x00,0x00,0x07,0xC0,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x3F,0x00,0x00,0x00,0x00,0x00,0x0F,0xC0,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x1F,0x00,0x00,0x00,0x00,0x00,0x0F,0x80,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x1F,0x00,0x00,0x00,0x00,0x00,0x0F,0x80,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x1F,0x80,0x00,0x00,0x00,0x00,0x1F,0x80,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x0F,0xC0,0x00,0x00,0x00,0x00,0x3F,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x0F,0xC0,0x00,0x00,0x00,0x00,0x3F,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x07,0xE0,0x00,0x00,0x00,0x00,0x7E,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x03,0xF0,0x00,0x00,0x00,0x00,0xFC,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x03,0xF8,0x00,0x00,0x00,0x01,0xFC,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x01,0xFC,0x00,0x00,0x00,0x03,0xF8,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0x07,0xF0,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x7F,0x80,0x00,0x00,0x1F,0xE0,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x3F,0xC0,0x00,0x00,0x3F,0xC0,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x1F,0xF0,0x00,0x00,0xFF,0x80,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x07,0xFC,0x00,0x03,0xFE,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x03,0xFF,0x00,0x0F,0xFC,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xC0,0x3F,0xF8,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x7F,0xF9,0xFF,0xE0,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x1F,0xFF,0xFF,0x80,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x07,0xFF,0xFE,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x01,0xFF,0xF8,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7F,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, };

最后的显示效果

STM32-SPI驱动7针脚OLED,显示中文,字符串,数字,图片。文章来源地址https://www.toymoban.com/news/detail-446778.html

到了这里,关于STM32-SPI驱动7针脚OLED,显示中文,字符串,数字,图片。的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • 【正点原子STM32】OLED实验(OLED显示屏、ATK_OLED模块,OLED驱动原理、SSD1306工作时序(8080时序),OLED驱动芯片,字符显示原理、字模生成软件,OLED基本驱动步骤)

    一、OLED显示屏介绍 1.1、ATK_OLED模块介绍 1.2、ATK_OLED模块引脚说明(8080并口模式) 1.3、OLED模块硬件连接 二、OLED驱动原理 2.1、SSD1306工作时序(8080时序) 2.2、SSD1306工作时序(8080时序)–写时序 三、OLED驱动芯片简介 3.1、什么是GRAM? 3.2、什么是页地址模式? 3.3、解决显示覆盖问题

    2024年03月13日
    浏览(25)
  • 0.96OLED STM32 SPI驱动(一)

    闲来无聊,翻出了一个OLED,本来想串流做个小显示器用,感觉难度太大。将就变成了下面这 个样子,姑且叫火柴人大乱斗之OLED。 火柴人之OLED 分两步走,先驱动OLED能显示一副图片,本篇讲述此内容。 第二步显示动画,放在下一篇中讲。 查资料得到此OLED为SPI通信,SCL对应连

    2024年02月06日
    浏览(21)
  • STM32_SPI总线驱动OLED详细原理讲解

    目录 13.1.1 SPI总线介绍 SPI(Serial Peripheral interface):是由Motorola公司开发的串行外围设备接口,是一种高速的,全双工,同步的通信总线。主要应用在 EEPROM,FLASH,实时时钟,AD转换器,还有数字信号处理器和数字信号解码器等器件。 UART:异步串行全双工 SPI:同步串行全双工

    2024年01月20日
    浏览(18)
  • STM32配合CubeMX硬件SPI驱动0.96寸OLED

    目录 一、简单介绍 1.1 OLED 1.2 SPI协议 接口 优点 缺点 数据传输 二、实战 2.1 工程配置 2.2 测试工程 2.3 波形分析 三、驱动OLED 3.1 初始化代码 3.2 清屏函数 3.3 设置坐标函数 3.4 显示字符函数 3.5 显示字符串函数 3.6 显示图片函数 附录 驱动代码文件 oled.c oled.h f6x8.h 1.1 OLED 有机发

    2024年02月02日
    浏览(16)
  • STM32之CubeMX学习笔记(7)SPI驱动OLED及其优化

    购买了逻辑分析仪后,总想着把所有的通讯信号全都看一遍。之前一篇笔记讲的是串口通信,做了一些小实验,搞清楚了如何基于底层利用串口传一些“非标”的数据。关于通信协议的第二篇,我想来看看SPI通信。 SPI通信是Serial peripheral interface的缩写,中文是串行外设接口,

    2024年02月04日
    浏览(31)
  • STM32初学入门笔记(5):使用STM32CubeMX通过SPI,IIC驱动OLED屏幕

    随着时代的进步,OLED显示屏成为了继LCD显示屏之后的新一代显示屏技术,OLED具有可视角高,功耗低,厚度薄,耐冲击、振动能力强,像素响应时间低等优点,在嵌入式开发中,OLED显示器也是一个主要的部分,制作OLED显示模块的驱动也是学习STM32路上的重要一部分,本篇将从

    2024年02月04日
    浏览(19)
  • STM32--7针0.96寸OLED屏幕显示(4线SPI)

    本文介绍基于STM32F103C8T6+0.96寸OLED(7针)的显示(完整程序代码见文末链接) 一、简介 OLED,即有机发光二极管( Organic Light Emitting Diode)。 OLED 由于同时具备自发光,不需背光源、对比度高、厚度薄、视角广、反应速度快、可用于挠曲性面板、使用温度范围广、构造及制程较

    2024年01月16日
    浏览(25)
  • stm32矩形按键(4*4)7针脚oled屏密码锁(入门级)

    本文采用7针脚0.96的OLED屏作为输出显示,以矩形按键作为输入,做一个简易的密码锁。 不同于其他文章,本文所介绍的密码锁,就单纯使用OLED屏与矩形按键,但由于本人也是初学者,还有一些功能没有实现,目前本工程仅实按键输入、OLED屏输出以及一个密码判断。 源码链接

    2024年02月03日
    浏览(41)
  • U8g2库的STM32硬件SPI(DMA)移植教程(HAL、OLED显示、四线SPI、DMA)

    本文教你把U8g2图形库移植到STM32上,基于STM32的硬件SPI、CubeMX U8g2库Github网址:https://github.com/olikraus/u8g2 U8g2库CSDN镜像网址:https://gitcode.net/mirrors/olikraus/u8g2?utm_source=csdn_github_accelerator 硬件准备:STM32C8T6(STM32系列芯片)、0.96寸OLED(128×64)、J-Link(或其他) 引脚连接: 出自此

    2024年02月09日
    浏览(23)
  • STM32F103模拟SPI控制6针/7针0.96寸OLED显示屏

    OLED主要参数 1、高分辨率:128 64(和12864LCD相同分辨率,但该OLED屏的单位面积像素点多)。 2、广可视角度:大于160°。 3、低功耗:正常显示时0.04W。 4、宽供电范围:直流3.3V-5V。 5、工业级:工作温度范围-30°℃~70°℃。 6、体积小:28.8mm 28.5mm。 7、通信方式:lIC、SPI。 8、亮

    2024年02月04日
    浏览(48)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包