0.96寸七针OLED(SPI)
资源内容介绍
0.96寸七针OLED(SPI)是一种常见的小型显示屏,常用于各种嵌入式设备和物联网项目中。这种显示屏使用SPI(Serial Peripheral Interface)通信协议,与微控制器如STM32F103进行数据交换,以显示文本、图形和其他可视化信息。SPI是一种同步串行接口,支持全双工通信,传输速度快,资源占用少,非常适合在资源有限的嵌入式系统中使用。STM32F103是一款基于ARM Cortex-M3内核的微控制器,广泛应用于各种嵌入式设计。其内置丰富的外设接口,包括SPI,使得它能够方便地与OLED显示屏配合工作。驱动程序是连接硬件和软件的关键,它包含初始化配置、数据传输等核心功能,确保STM32正确控制OLED显示。在描述中提到的驱动程序是针对0.96寸七针OLED和STM32F103的,其特点是内容简洁且经过实际测试,可以直接将提供的文件集成到基于STM32的标准库工程中。这表明驱动程序具有良好的兼容性和可移植性,意味着开发者无需深入了解OLED显示屏的工作原理,只需将其添加到现有项目中,稍作调整即可实现显示功能。SPI接口通常由四条信号线组成:主时钟(SCK)、主输出从输入(MOSI)、主输入从输出(MISO)和片选信号(CS)。在与OLED通信时,STM32作为SPI的主设备,通过这些线路发送指令和数据,控制OLED的显示。七针OLED可能还包括额外的控制线,如使能信号(DC)和复位信号(RST),用于设置命令/数据模式和重置显示屏。OLED显示屏本身由多个有机发光二极管组成,每个像素都能独立发光,因此对比度高,响应速度快,功耗低。这种显示技术通常分为SSD1306、SH1106等不同的芯片型号,每种型号都有特定的指令集来控制显示内容。驱动程序就是根据这些指令集编写,以实现显示初始化、清屏、点画、文本输出等功能。在开发过程中,需要注意以下几点:1. 初始化SPI接口:配置SPI时钟分频、数据极性和相位、总线模式等参数。2. 配置GPIO引脚:设定OLED控制线的输入/输出模式,并设置合适的上下拉电阻。3. 选择合适的片选信号:为OLED分配一个独立的片选信号,以便在需要时选择或取消选择它。4. 指令和数据传输:根据OLED的数据手册,正确设置DC引脚以区分发送指令还是数据。5. 显示更新:在每次修改显示内容后,需要发送更新显示的指令。0.96寸七针OLED(SPI)的驱动程序是嵌入式系统中实现可视化界面的关键。通过理解STM32的SPI接口和OLED显示屏的工作原理,可以高效地集成并利用这个驱动程序,为项目增添丰富的显示功能。 #include "stm32f10x.h"#include "hal_oled.h"#define OLED_CMD 0 //写命令#define OLED_DATA 1 //写数据#define OLED_PORT GPIOA#define OLED_SLK_PORT OLED_PORT#define OLED_SLK_PIN GPIO_Pin_5#define OLED_DO_PORT OLED_PORT#define OLED_DO_PIN GPIO_Pin_7#define OLED_RES_PORT OLED_PORT#define OLED_RES_PIN GPIO_Pin_4#define OLED_CMD_PORT OLED_PORT#define OLED_CMD_PIN GPIO_Pin_6#define OLED_SCL_Clr() GPIO_ResetBits(OLED_SLK_PORT,OLED_SLK_PIN)//SCL#define OLED_SCL_Set() GPIO_SetBits(OLED_SLK_PORT,OLED_SLK_PIN)#define OLED_SDA_Clr() GPIO_ResetBits(OLED_DO_PORT,OLED_DO_PIN)//SDA#define OLED_SDA_Set() GPIO_SetBits(OLED_DO_PORT,OLED_DO_PIN)#define OLED_RES_Clr() GPIO_ResetBits(OLED_RES_PORT,OLED_RES_PIN)//RES#define OLED_RES_Set() GPIO_SetBits(OLED_RES_PORT,OLED_RES_PIN)#define OLED_DC_Clr() GPIO_ResetBits(OLED_CMD_PORT,OLED_CMD_PIN)//DC#define OLED_DC_Set() GPIO_SetBits(OLED_CMD_PORT,OLED_CMD_PIN) const unsigned char asc2_0806[][6] ={{0x00, 0x00, 0x00, 0x00, 0x00, 0x00},// sp{0x00, 0x00, 0x00, 0x2f, 0x00, 0x00},// !{0x00, 0x00, 0x07, 0x00, 0x07, 0x00},// "{0x00, 0x14, 0x7f, 0x14, 0x7f, 0x14},// #{0x00, 0x24, 0x2a, 0x7f, 0x2a, 0x12},// ${0x00, 0x62, 0x64, 0x08, 0x13, 0x23},// %{0x00, 0x36, 0x49, 0x55, 0x22, 0x50},// &{0x00, 0x00, 0x05, 0x03, 0x00, 0x00},// '{0x00, 0x00, 0x1c, 0x22, 0x41, 0x00},// ({0x00, 0x00, 0x41, 0x22, 0x1c, 0x00},// ){0x00, 0x14, 0x08, 0x3E, 0x08, 0x14},// *{0x00, 0x08, 0x08, 0x3E, 0x08, 0x08},// +{0x00, 0x00, 0x00, 0xA0, 0x60, 0x00},// ,{0x00, 0x08, 0x08, 0x08, 0x08, 0x08},// -{0x00, 0x00, 0x60, 0x60, 0x00, 0x00},// .{0x00, 0x20, 0x10, 0x08, 0x04, 0x02},// /{0x00, 0x3E, 0x51, 0x49, 0x45, 0x3E},// 0{0x00, 0x00, 0x42, 0x7F, 0x40, 0x00},// 1{0x00, 0x42, 0x61, 0x51, 0x49, 0x46},// 2{0x00, 0x21, 0x41, 0x45, 0x4B, 0x31},// 3{0x00, 0x18, 0x14, 0x12, 0x7F, 0x10},// 4{0x00, 0x27, 0x45, 0x45, 0x45, 0x39},// 5{0x00, 0x3C, 0x4A, 0x49, 0x49, 0x30},// 6{0x00, 0x01, 0x71, 0x09, 0x05, 0x03},// 7{0x00, 0x36, 0x49, 0x49, 0x49, 0x36},// 8{0x00, 0x06, 0x49, 0x49, 0x29, 0x1E},// 9{0x00, 0x00, 0x36, 0x36, 0x00, 0x00},// :{0x00, 0x00, 0x56, 0x36, 0x00, 0x00},// ;{0x00, 0x08, 0x14, 0x22, 0x41, 0x00},// <{0x00, 0x14, 0x14, 0x14, 0x14, 0x14},// ={0x00, 0x00, 0x41, 0x22, 0x14, 0x08},// >{0x00, 0x02, 0x01, 0x51, 0x09, 0x06},// ?{0x00, 0x32, 0x49, 0x59, 0x51, 0x3E},// @{0x00, 0x7C, 0x12, 0x11, 0x12, 0x7C},// A{0x00, 0x7F, 0x49, 0x49, 0x49, 0x36},// B{0x00, 0x3E, 0x41, 0x41, 0x41, 0x22},// C{0x00, 0x7F, 0x41, 0x41, 0x22, 0x1C},// D{0x00, 0x7F, 0x49, 0x49, 0x49, 0x41},// E{0x00, 0x7F, 0x09, 0x09, 0x09, 0x01},// F{0x00, 0x3E, 0x41, 0x49, 0x49, 0x7A},// G{0x00, 0x7F, 0x08, 0x08, 0x08, 0x7F},// H{0x00, 0x00, 0x41, 0x7F, 0x41, 0x00},// I{0x00, 0x20, 0x40, 0x41, 0x3F, 0x01},// J{0x00, 0x7F, 0x08, 0x14, 0x22, 0x41},// K{0x00, 0x7F, 0x40, 0x40, 0x40, 0x40},// L{0x00, 0x7F, 0x02, 0x0C, 0x02, 0x7F},// M{0x00, 0x7F, 0x04, 0x08, 0x10, 0x7F},// N{0x00, 0x3E, 0x41, 0x41, 0x41, 0x3E},// O{0x00, 0x7F, 0x09, 0x09, 0x09, 0x06},// P{0x00, 0x3E, 0x41, 0x51, 0x21, 0x5E},// Q{0x00, 0x7F, 0x09, 0x19, 0x29, 0x46},// R{0x00, 0x46, 0x49, 0x49, 0x49, 0x31},// S{0x00, 0x01, 0x01, 0x7F, 0x01, 0x01},// T{0x00, 0x3F, 0x40, 0x40, 0x40, 0x3F},// U{0x00, 0x1F, 0x20, 0x40, 0x20, 0x1F},// V{0x00, 0x3F, 0x40, 0x38, 0x40, 0x3F},// W{0x00, 0x63, 0x14, 0x08, 0x14, 0x63},// X{0x00, 0x07, 0x08, 0x70, 0x08, 0x07},// Y{0x00, 0x61, 0x51, 0x49, 0x45, 0x43},// Z{0x00, 0x00, 0x7F, 0x41, 0x41, 0x00},// [{0x00, 0x55, 0x2A, 0x55, 0x2A, 0x55},// 55{0x00, 0x00, 0x41, 0x41, 0x7F, 0x00},// ]{0x00, 0x04, 0x02, 0x01, 0x02, 0x04},// ^{0x00, 0x40, 0x40, 0x40, 0x40, 0x40},// _{0x00, 0x00, 0x01, 0x02, 0x04, 0x00},// '{0x00, 0x20, 0x54, 0x54, 0x54, 0x78},// a{0x00, 0x7F, 0x48, 0x44, 0x44, 0x38},// b{0x00, 0x38, 0x44, 0x44, 0x44, 0x20},// c{0x00, 0x38, 0x44, 0x44, 0x48, 0x7F},// d{0x00, 0x38, 0x54, 0x54, 0x54, 0x18},// e{0x00, 0x08, 0x7E, 0x09, 0x01, 0x02},// f{0x00, 0x18, 0xA4, 0xA4, 0xA4, 0x7C},// g{0x00, 0x7F, 0x08, 0x04, 0x04, 0x78},// h{0x00, 0x00, 0x44, 0x7D, 0x40, 0x00},// i{0x00, 0x40, 0x80, 0x84, 0x7D, 0x00},// j{0x00, 0x7F, 0x10, 0x28, 0x44, 0x00},// k{0x00, 0x00, 0x41, 0x7F, 0x40, 0x00},// l{0x00, 0x7C, 0x04, 0x18, 0x04, 0x78},// m{0x00, 0x7C, 0x08, 0x04, 0x04, 0x78},// n{0x00, 0x38, 0x44, 0x44, 0x44, 0x38},// o{0x00, 0xFC, 0x24, 0x24, 0x24, 0x18},// p{0x00, 0x18, 0x24, 0x24, 0x18, 0xFC},// q{0x00, 0x7C, 0x08, 0x04, 0x04, 0x08},// r{0x00, 0x48, 0x54, 0x54, 0x54, 0x20},// s{0x00, 0x04, 0x3F, 0x44, 0x40, 0x20},// t{0x00, 0x3C, 0x40, 0x40, 0x20, 0x7C},// u{0x00, 0x1C, 0x20, 0x40, 0x20, 0x1C},// v{0x00, 0x3C, 0x40, 0x30, 0x40, 0x3C},// w{0x00, 0x44, 0x28, 0x10, 0x28, 0x44},// x{0x00, 0x1C, 0xA0, 0xA0, 0xA0, 0x7C},// y{0x00, 0x44, 0x64, 0x54, 0x4C, 0x44},// z{0x14, 0x14, 0x14, 0x14, 0x14, 0x14},// horiz lines};//12*12 ASCII?????const unsigned char asc2_1206[95][12]={{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},{0x00,0x00,0xFC,0x00,0x00,0x00,0x00,0x00,0x02,0x00,0x00,0x00},{0x00,0x0C,0x02,0x0C,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00},{0x90,0xD0,0xBC,0xD0,0xBC,0x90,0x00,0x03,0x00,0x03,0x00,0x00},{0x18,0x24,0xFE,0x44,0x8C,0x00,0x03,0x02,0x07,0x02,0x01,0x00},{0x18,0x24,0xD8,0xB0,0x4C,0x80,0x00,0x03,0x00,0x01,0x02,0x01},{0xC0,0x38,0xE4,0x38,0xE0,0x00,0x01,0x02,0x02,0x01,0x02,0x02},{0x08,0x06,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},{0x00,0x00,0x00,0xF8,0x04,0x02,0x00,0x00,0x00,0x01,0x02,0x04},{0x00,0x02,0x04,0xF8,0x00,0x00,0x00,0x04,0x02,0x01,0x00,0x00},{0x90,0x60,0xF8,0x60,0x90,0x00,0x00,0x00,0x01,0x00,0x00,0x00},/*"*",10*/{0x20,0x20,0xFC,0x20,0x20,0x00,0x00,0x00,0x01,0x00,0x00,0x00},{0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x06,0x00,0x00,0x00,0x00},{0x20,0x20,0x20,0x20,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00},{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x00},{0x00,0x80,0x60,0x1C,0x02,0x00,0x04,0x03,0x00,0x00,0x00,0x00},{0xF8,0x04,0x04,0x04,0xF8,0x00,0x01,0x02,0x02,0x02,0x01,0x00},{0x00,0x08,0xFC,0x00,0x00,0x00,0x00,0x02,0x03,0x02,0x00,0x00},{0x18,0x84,0x44,0x24,0x18,0x00,0x03,0x02,0x02,0x02,0x02,0x00},{0x08,0x04,0x24,0x24,0xD8,0x00,0x01,0x02,0x02,0x02,0x01,0x00},{0x40,0xB0,0x88,0xFC,0x80,0x00,0x00,0x00,0x00,0x03,0x02,0x00},{0x3C,0x24,0x24,0x24,0xC4,0x00,0x01,0x02,0x02,0x02,0x01,0x00},{0xF8,0x24,0x24,0x2C,0xC0,0x00,0x01,0x02,0x02,0x02,0x01,0x00},{0x0C,0x04,0xE4,0x1C,0x04,0x00,0x00,0x00,0x03,0x00,0x00,0x00},{0xD8,0x24,0x24,0x24,0xD8,0x00,0x01,0x02,0x02,0x02,0x01,0x00},{0x38,0x44,0x44,0x44,0xF8,0x00,0x00,0x03,0x02,0x02,0x01,0x00},{0x00,0x00,0x10,0x00,0x00,0x00,0x00,0x00,0x02,0x00,0x00,0x00},{0x00,0x00,0x20,0x00,0x00,0x00,0x00,0x00,0x06,0x00,0x00,0x00},{0x00,0x20,0x50,0x88,0x04,0x02,0x00,0x00,0x00,0x00,0x01,0x02},{0x90,0x90,0x90,0x90,0x90,0x00,0x00,0x00,0x00,0x00,0x00,0x00},{0x00,0x02,0x04,0x88,0x50,0x20,0x00,0x02,0x01,0x00,0x00,0x00},{0x18,0x04,0xC4,0x24,0x18,0x00,0x00,0x00,0x02,0x00,0x00,0x00},{0xF8,0x04,0xE4,0x94,0xF8,0x00,0x01,0x02,0x02,0x02,0x02,0x00},{0x00,0xE0,0x9C,0xF0,0x80,0x00,0x02,0x03,0x00,0x00,0x03,0x02},{0x04,0xFC,0x24,0x24,0xD8,0x00,0x02,0x03,0x02,0x02,0x01,0x00},{0xF8,0x04,0x04,0x04,0x0C,0x00,0x01,0x02,0x02,0x02,0x01,0x00},{0x04,0xFC,0x04,0x04,0xF8,0x00,0x02,0x03,0x02,0x02,0x01,0x00},{0x04,0xFC,0x24,0x74,0x0C,0x00,0x02,0x03,0x02,0x02,0x03,0x00},{0x04,0xFC,0x24,0x74,0x0C,0x00,0x02,0x03,0x02,0x00,0x00,0x00},{0xF0,0x08,0x04,0x44,0xCC,0x40,0x00,0x01,0x02,0x02,0x01,0x00},{0x04,0xFC,0x20,0x20,0xFC,0x04,0x02,0x03,0x00,0x00,0x03,0x02},{0x04,0x04,0xFC,0x04,0x04,0x00,0x02,0x02,0x03,0x02,0x02,0x00},{0x00,0x04,0x04,0xFC,0x04,0x04