0.96寸IIC显示屏代码 通用性较高,可自行提取修改使用
单片机调试经常需要显示调试过程中的各种参数,本文提供了ST系列相对通用的代码。

初始化部分:

#include <iostm8s105k4.h>
#define uchar unsigned char
#define uint  unsigned int
#define ulong unsigned long
#define SCL  PB_ODR_ODR4         //开发板上的LED2连接在PB4上
#define SDA  PB_ODR_ODR5         //开发板上的LED2连接在PB5上
#define OLED_addr      0x78     //液晶显示的地址
#define Brightness     0xCF     //把oxCF定义为亮
#define X_WIDTH        128      //OLED分辨率为128*64       每一??128个点,128为X轴的长度
#define Y_WIDTH        64       //每一??64个点    64为Y轴的长度
//.....用户自定义
//.....用户自定义
//.....用户自定义
//.....用户自定义
//.....用户自定义

16X16的汉字表:

uchar temp;
const uchar F16x16[] =
{0x40,0x40,0x40,0x7C,0x40,0x40,0x40,0x7F,0x44,0x44,0x44,0x44,0x44,0x40,0x40,0x00,0x00,0x00,0x7F,0x40,0x50,0x48,0x44,0x43,0x44,0x48,0x50,0x40,0xFF,0x00,0x00,0x00,/*"齿",0*/0xC8,0xB8,0x8F,0xE8,0x88,0xC8,0x20,0x90,0x0C,0x03,0x0C,0x90,0x20,0x40,0x40,0x00,0x08,0x18,0x08,0xFF,0x04,0x04,0x00,0x3F,0x44,0x42,0x41,0x40,0x40,0x70,0x00,0x00,/*"轮",1*/0x40,0x40,0x40,0x7C,0x40,0x40,0x40,0x7F,0x44,0x44,0x44,0x44,0x44,0x40,0x40,0x00,0x00,0x00,0x7F,0x40,0x50,0x48,0x44,0x43,0x44,0x48,0x50,0x40,0xFF,0x00,0x00,0x00,/*"齿",2*/0x40,0x40,0x42,0xCC,0x00,0x04,0xF4,0x94,0x94,0xFF,0x94,0x94,0xF4,0x04,0x00,0x00,0x00,0x40,0x20,0x1F,0x20,0x48,0x44,0x42,0x41,0x5F,0x41,0x42,0x44,0x48,0x40,0x00,/*"速",3*/0x00,0x00,0x04,0x14,0x64,0x04,0x0C,0xB4,0x02,0x02,0x42,0x33,0x02,0x00,0x00,0x00,0x40,0x41,0x21,0x11,0x09,0x05,0x03,0xFF,0x03,0x05,0x09,0x11,0x21,0x41,0x40,0x00,/*"采",4*/0x20,0x10,0x08,0xFC,0x57,0x54,0x54,0x55,0xFE,0x54,0x54,0x54,0x54,0x04,0x00,0x00,0x44,0x44,0x24,0x27,0x15,0x0D,0x05,0xFF,0x05,0x0D,0x15,0x25,0x25,0x45,0x44,0x00,/*"集",5*/};

8*16 ASCII表:

/****************************************8*16 ASCII表************************************/
const unsigned char F8X16[]=
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,// 00x00,0x00,0x00,0xF8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x33,0x30,0x00,0x00,0x00,//! 10x00,0x10,0x0C,0x06,0x10,0x0C,0x06,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,//" 20x40,0xC0,0x78,0x40,0xC0,0x78,0x40,0x00,0x04,0x3F,0x04,0x04,0x3F,0x04,0x04,0x00,//# 30x00,0x70,0x88,0xFC,0x08,0x30,0x00,0x00,0x00,0x18,0x20,0xFF,0x21,0x1E,0x00,0x00,//$ 40xF0,0x08,0xF0,0x00,0xE0,0x18,0x00,0x00,0x00,0x21,0x1C,0x03,0x1E,0x21,0x1E,0x00,//% 50x00,0xF0,0x08,0x88,0x70,0x00,0x00,0x00,0x1E,0x21,0x23,0x24,0x19,0x27,0x21,0x10,//& 60x10,0x16,0x0E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,//' 70x00,0x00,0x00,0xE0,0x18,0x04,0x02,0x00,0x00,0x00,0x00,0x07,0x18,0x20,0x40,0x00,//( 80x00,0x02,0x04,0x18,0xE0,0x00,0x00,0x00,0x00,0x40,0x20,0x18,0x07,0x00,0x00,0x00,//) 90x40,0x40,0x80,0xF0,0x80,0x40,0x40,0x00,0x02,0x02,0x01,0x0F,0x01,0x02,0x02,0x00,//* 100x00,0x00,0x00,0xF0,0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x1F,0x01,0x01,0x01,0x00,//+ 110x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0xB0,0x70,0x00,0x00,0x00,0x00,0x00,//, 120x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x01,0x01,0x01,0x01,//- 130x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x30,0x00,0x00,0x00,0x00,0x00,//. 140x00,0x00,0x00,0x00,0x80,0x60,0x18,0x04,0x00,0x60,0x18,0x06,0x01,0x00,0x00,0x00,/// 150x00,0xE0,0x10,0x08,0x08,0x10,0xE0,0x00,0x00,0x0F,0x10,0x20,0x20,0x10,0x0F,0x00,//0 160x00,0x10,0x10,0xF8,0x00,0x00,0x00,0x00,0x00,0x20,0x20,0x3F,0x20,0x20,0x00,0x00,//1 170x00,0x70,0x08,0x08,0x08,0x88,0x70,0x00,0x00,0x30,0x28,0x24,0x22,0x21,0x30,0x00,//2 180x00,0x30,0x08,0x88,0x88,0x48,0x30,0x00,0x00,0x18,0x20,0x20,0x20,0x11,0x0E,0x00,//3 190x00,0x00,0xC0,0x20,0x10,0xF8,0x00,0x00,0x00,0x07,0x04,0x24,0x24,0x3F,0x24,0x00,//4 200x00,0xF8,0x08,0x88,0x88,0x08,0x08,0x00,0x00,0x19,0x21,0x20,0x20,0x11,0x0E,0x00,//5 210x00,0xE0,0x10,0x88,0x88,0x18,0x00,0x00,0x00,0x0F,0x11,0x20,0x20,0x11,0x0E,0x00,//6 220x00,0x38,0x08,0x08,0xC8,0x38,0x08,0x00,0x00,0x00,0x00,0x3F,0x00,0x00,0x00,0x00,//7 230x00,0x70,0x88,0x08,0x08,0x88,0x70,0x00,0x00,0x1C,0x22,0x21,0x21,0x22,0x1C,0x00,//8 240x00,0xE0,0x10,0x08,0x08,0x10,0xE0,0x00,0x00,0x00,0x31,0x22,0x22,0x11,0x0F,0x00,//9 250x00,0x00,0x00,0xC0,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x30,0x00,0x00,0x00,//: 260x00,0x00,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x60,0x00,0x00,0x00,0x00,//; 270x00,0x00,0x80,0x40,0x20,0x10,0x08,0x00,0x00,0x01,0x02,0x04,0x08,0x10,0x20,0x00,//< 280x40,0x40,0x40,0x40,0x40,0x40,0x40,0x00,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x00,//= 290x00,0x08,0x10,0x20,0x40,0x80,0x00,0x00,0x00,0x20,0x10,0x08,0x04,0x02,0x01,0x00,//> 300x00,0x70,0x48,0x08,0x08,0x08,0xF0,0x00,0x00,0x00,0x00,0x30,0x36,0x01,0x00,0x00,//? 310xC0,0x30,0xC8,0x28,0xE8,0x10,0xE0,0x00,0x07,0x18,0x27,0x24,0x23,0x14,0x0B,0x00,//@ 320x00,0x00,0xC0,0x38,0xE0,0x00,0x00,0x00,0x20,0x3C,0x23,0x02,0x02,0x27,0x38,0x20,//A 330x08,0xF8,0x88,0x88,0x88,0x70,0x00,0x00,0x20,0x3F,0x20,0x20,0x20,0x11,0x0E,0x00,//B 340xC0,0x30,0x08,0x08,0x08,0x08,0x38,0x00,0x07,0x18,0x20,0x20,0x20,0x10,0x08,0x00,//C 350x08,0xF8,0x08,0x08,0x08,0x10,0xE0,0x00,0x20,0x3F,0x20,0x20,0x20,0x10,0x0F,0x00,//D 360x08,0xF8,0x88,0x88,0xE8,0x08,0x10,0x00,0x20,0x3F,0x20,0x20,0x23,0x20,0x18,0x00,//E 370x08,0xF8,0x88,0x88,0xE8,0x08,0x10,0x00,0x20,0x3F,0x20,0x00,0x03,0x00,0x00,0x00,//F 380xC0,0x30,0x08,0x08,0x08,0x38,0x00,0x00,0x07,0x18,0x20,0x20,0x22,0x1E,0x02,0x00,//G 390x08,0xF8,0x08,0x00,0x00,0x08,0xF8,0x08,0x20,0x3F,0x21,0x01,0x01,0x21,0x3F,0x20,//H 400x00,0x08,0x08,0xF8,0x08,0x08,0x00,0x00,0x00,0x20,0x20,0x3F,0x20,0x20,0x00,0x00,//I 410x00,0x00,0x08,0x08,0xF8,0x08,0x08,0x00,0xC0,0x80,0x80,0x80,0x7F,0x00,0x00,0x00,//J 420x08,0xF8,0x88,0xC0,0x28,0x18,0x08,0x00,0x20,0x3F,0x20,0x01,0x26,0x38,0x20,0x00,//K 430x08,0xF8,0x08,0x00,0x00,0x00,0x00,0x00,0x20,0x3F,0x20,0x20,0x20,0x20,0x30,0x00,//L 440x08,0xF8,0xF8,0x00,0xF8,0xF8,0x08,0x00,0x20,0x3F,0x00,0x3F,0x00,0x3F,0x20,0x00,//M 450x08,0xF8,0x30,0xC0,0x00,0x08,0xF8,0x08,0x20,0x3F,0x20,0x00,0x07,0x18,0x3F,0x00,//N 460xE0,0x10,0x08,0x08,0x08,0x10,0xE0,0x00,0x0F,0x10,0x20,0x20,0x20,0x10,0x0F,0x00,//O 470x08,0xF8,0x08,0x08,0x08,0x08,0xF0,0x00,0x20,0x3F,0x21,0x01,0x01,0x01,0x00,0x00,//P 480xE0,0x10,0x08,0x08,0x08,0x10,0xE0,0x00,0x0F,0x18,0x24,0x24,0x38,0x50,0x4F,0x00,//Q 490x08,0xF8,0x88,0x88,0x88,0x88,0x70,0x00,0x20,0x3F,0x20,0x00,0x03,0x0C,0x30,0x20,//R 500x00,0x70,0x88,0x08,0x08,0x08,0x38,0x00,0x00,0x38,0x20,0x21,0x21,0x22,0x1C,0x00,//S 510x18,0x08,0x08,0xF8,0x08,0x08,0x18,0x00,0x00,0x00,0x20,0x3F,0x20,0x00,0x00,0x00,//T 520x08,0xF8,0x08,0x00,0x00,0x08,0xF8,0x08,0x00,0x1F,0x20,0x20,0x20,0x20,0x1F,0x00,//U 530x08,0x78,0x88,0x00,0x00,0xC8,0x38,0x08,0x00,0x00,0x07,0x38,0x0E,0x01,0x00,0x00,//V 540xF8,0x08,0x00,0xF8,0x00,0x08,0xF8,0x00,0x03,0x3C,0x07,0x00,0x07,0x3C,0x03,0x00,//W 550x08,0x18,0x68,0x80,0x80,0x68,0x18,0x08,0x20,0x30,0x2C,0x03,0x03,0x2C,0x30,0x20,//X 560x08,0x38,0xC8,0x00,0xC8,0x38,0x08,0x00,0x00,0x00,0x20,0x3F,0x20,0x00,0x00,0x00,//Y 570x10,0x08,0x08,0x08,0xC8,0x38,0x08,0x00,0x20,0x38,0x26,0x21,0x20,0x20,0x18,0x00,//Z 580x00,0x00,0x00,0xFE,0x02,0x02,0x02,0x00,0x00,0x00,0x00,0x7F,0x40,0x40,0x40,0x00,//[ 590x00,0x0C,0x30,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x06,0x38,0xC0,0x00,//\ 600x00,0x02,0x02,0x02,0xFE,0x00,0x00,0x00,0x00,0x40,0x40,0x40,0x7F,0x00,0x00,0x00,//] 610x00,0x00,0x04,0x02,0x02,0x02,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,//^ 620x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,//_ 630x00,0x02,0x02,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,//` 640x00,0x00,0x80,0x80,0x80,0x80,0x00,0x00,0x00,0x19,0x24,0x22,0x22,0x22,0x3F,0x20,//a 650x08,0xF8,0x00,0x80,0x80,0x00,0x00,0x00,0x00,0x3F,0x11,0x20,0x20,0x11,0x0E,0x00,//b 660x00,0x00,0x00,0x80,0x80,0x80,0x00,0x00,0x00,0x0E,0x11,0x20,0x20,0x20,0x11,0x00,//c 670x00,0x00,0x00,0x80,0x80,0x88,0xF8,0x00,0x00,0x0E,0x11,0x20,0x20,0x10,0x3F,0x20,//d 680x00,0x00,0x80,0x80,0x80,0x80,0x00,0x00,0x00,0x1F,0x22,0x22,0x22,0x22,0x13,0x00,//e 690x00,0x80,0x80,0xF0,0x88,0x88,0x88,0x18,0x00,0x20,0x20,0x3F,0x20,0x20,0x00,0x00,//f 700x00,0x00,0x80,0x80,0x80,0x80,0x80,0x00,0x00,0x6B,0x94,0x94,0x94,0x93,0x60,0x00,//g 710x08,0xF8,0x00,0x80,0x80,0x80,0x00,0x00,0x20,0x3F,0x21,0x00,0x00,0x20,0x3F,0x20,//h 720x00,0x80,0x98,0x98,0x00,0x00,0x00,0x00,0x00,0x20,0x20,0x3F,0x20,0x20,0x00,0x00,//i 730x00,0x00,0x00,0x80,0x98,0x98,0x00,0x00,0x00,0xC0,0x80,0x80,0x80,0x7F,0x00,0x00,//j 740x08,0xF8,0x00,0x00,0x80,0x80,0x80,0x00,0x20,0x3F,0x24,0x02,0x2D,0x30,0x20,0x00,//k 750x00,0x08,0x08,0xF8,0x00,0x00,0x00,0x00,0x00,0x20,0x20,0x3F,0x20,0x20,0x00,0x00,//l 760x80,0x80,0x80,0x80,0x80,0x80,0x80,0x00,0x20,0x3F,0x20,0x00,0x3F,0x20,0x00,0x3F,//m 770x80,0x80,0x00,0x80,0x80,0x80,0x00,0x00,0x20,0x3F,0x21,0x00,0x00,0x20,0x3F,0x20,//n 780x00,0x00,0x80,0x80,0x80,0x80,0x00,0x00,0x00,0x1F,0x20,0x20,0x20,0x20,0x1F,0x00,//o 790x80,0x80,0x00,0x80,0x80,0x00,0x00,0x00,0x80,0xFF,0xA1,0x20,0x20,0x11,0x0E,0x00,//p 800x00,0x00,0x00,0x80,0x80,0x80,0x80,0x00,0x00,0x0E,0x11,0x20,0x20,0xA0,0xFF,0x80,//q 810x80,0x80,0x80,0x00,0x80,0x80,0x80,0x00,0x20,0x20,0x3F,0x21,0x20,0x00,0x01,0x00,//r 820x00,0x00,0x80,0x80,0x80,0x80,0x80,0x00,0x00,0x33,0x24,0x24,0x24,0x24,0x19,0x00,//s 830x00,0x80,0x80,0xE0,0x80,0x80,0x00,0x00,0x00,0x00,0x00,0x1F,0x20,0x20,0x00,0x00,//t 840x80,0x80,0x00,0x00,0x00,0x80,0x80,0x00,0x00,0x1F,0x20,0x20,0x20,0x10,0x3F,0x20,//u 850x80,0x80,0x80,0x00,0x00,0x80,0x80,0x80,0x00,0x01,0x0E,0x30,0x08,0x06,0x01,0x00,//v 860x80,0x80,0x00,0x80,0x00,0x80,0x80,0x80,0x0F,0x30,0x0C,0x03,0x0C,0x30,0x0F,0x00,//w 870x00,0x80,0x80,0x00,0x80,0x80,0x80,0x00,0x00,0x20,0x31,0x2E,0x0E,0x31,0x20,0x00,//x 880x80,0x80,0x80,0x00,0x00,0x80,0x80,0x80,0x80,0x81,0x8E,0x70,0x18,0x06,0x01,0x00,//y 890x00,0x80,0x80,0x80,0x80,0x80,0x80,0x00,0x00,0x21,0x30,0x2C,0x22,0x21,0x30,0x00,//z 900x00,0x00,0x00,0x00,0x80,0x7C,0x02,0x02,0x00,0x00,0x00,0x00,0x00,0x3F,0x40,0x40,//{ 910x00,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,//| 920x00,0x02,0x02,0x7C,0x80,0x00,0x00,0x00,0x00,0x40,0x40,0x3F,0x00,0x00,0x00,0x00,//} 930x00,0x06,0x01,0x01,0x02,0x02,0x04,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,//~ 94
};

延时函数:

/**************OLED驱动程序用的延时函数****************/
void Delay_nms(uint nms)  //延迟函数{uint i,j;for (i=0;i<nms;i++){for(j = 0;j<MCLK/4000;j++);}}

I2C初始化,并包含引脚初始化:

void I2C_Init()                   //I2C初始化{CLK_PCKENR1 |=0x01;          //使能I2C外设时钟PB_DDR &= 0x30;             // 把PB4、PB5设置为低速率开漏输出模式。原来的是  0xcf  30PB_CR1 &= 0xcf;             //PB_CR2 &= 0xcf;             //I2C_CR1 = 0x00;             //禁用I2C模块I2C_FREQR = 0x10;           //输入时钟频率为16MHzI2C_TRISER = 0x11;          //0x10+1I2C_OARH = 0x40;            //七位地址模式I2C_OARL = 0xa0;            //自身地址0xa0I2C_CCRL = 0x50;            //  16M/ 100k/ 2I2C_CCRH = 0x00;            //  标准模式I2C_CR1 = 0x01;             //I2C使能}

I2C写操作(一个字节):

void I2C_Write_Byte(uchar DeviceAddress,uchar Address,uchar Data){//uchar temp =0; while ((I2C_SR3 & 0x02)!= 0);       // 等待I2C总线空闲  位1:1是总线上有通信I2C_CR2=0x01;                         //while ((I2C_SR1 & 0x01)== 0);        // EV5,起始信号已经发送I2C_DR=(DeviceAddress & 0xfe);       //发送从器件物理地址,最低为0,写操作while ((I2C_SR1 & 0x02)== 0);        //地址已经被发送temp = I2C_SR1;temp = I2C_SR3;while ((I2C_SR1 & 0x80)== 0);        //  等待发送寄存器为空I2C_DR = Address;                    //发送要写入的寄存器地址while ((I2C_SR1 & 0x04)== 0);        //等待发送完成while ((I2C_SR1 & 0x80)== 0);         //等待发送寄存器为空I2C_DR = Data;                      //发送要写入的数据while ((I2C_SR1 & 0x04)== 0);       //等待发送完成temp = I2C_SR1;                     //清零BTF标志位temp = I2C_DR;I2C_CR2=0x02;}

OLED写命令:

void OLED_WrCmd(uchar cmd)    {I2C_Write_Byte(0x78,0x00,cmd); }

OLED写数据:

void OLED_WrDat(uchar Data)    {//  只需要调用这个就可以I2C_Write_Byte(0x78,0x40,Data)I2C_Write_Byte(0x78,0x40,Data);}

OLED 设置坐标:

void OLED_Set_Pos(unsigned char x, unsigned char y)
{ OLED_WrCmd(0xb0+y);OLED_WrCmd(((x&0xf0)>>4)|0x10);//把变量X的高4位移到低4四位去,且和0x10取或运算(这里可看成+16)OLED_WrCmd((x&0x0f)|0x01);      //把变量X的值取低4位,且与0x01取或运算(最低位始终为1)
}

OLED全屏:

void OLED_Fill(unsigned char bmp_dat)
{unsigned char y,x;for(y=0;y<8;y++){OLED_WrCmd(0xb0+y);OLED_WrCmd(0x01);OLED_WrCmd(0x10);for(x=0;x<X_WIDTH;x++)OLED_WrDat(bmp_dat);}
}

OLED复位 清屏:

void OLED_CLS(void)
{unsigned char y,x;for(y=0;y<8;y++){OLED_WrCmd(0xb0+y);OLED_WrCmd(0x01);OLED_WrCmd(0x10);for(x=0;x<X_WIDTH;x++)OLED_WrDat(0);}
}

OLED初始化:

void OLED_Init(void)
{Delay_nms(500);//初始化之前的延时很重要!OLED_WrCmd(0xae);//--turn off oled panelOLED_WrCmd(0x00);//---set low column addressOLED_WrCmd(0x10);//---set high column addressOLED_WrCmd(0x40);//--set start line address  Set Mapping RAM Display Start Line (0x00~0x3F)OLED_WrCmd(0x81);//--set contrast control registerOLED_WrCmd(Brightness); // Set SEG Output Current BrightnessOLED_WrCmd(0xa1);//--Set SEG/Column Mapping     0xa0左右反置 0xa1正常OLED_WrCmd(0xc8);//Set COM/Row Scan Direction   0xc0上下反置 0xc8正常OLED_WrCmd(0xa6);//--set normal displayOLED_WrCmd(0xa8);//--set multiplex ratio(1 to 64)OLED_WrCmd(0x3f);//--1/64 dutyOLED_WrCmd(0xd3);//-set display offset   Shift Mapping RAM Counter (0x00~0x3F)OLED_WrCmd(0x00);//-not offsetOLED_WrCmd(0xd5);//--set display clock divide ratio/oscillator frequencyOLED_WrCmd(0x80);//--set divide ratio, Set Clock as 100 Frames/SecOLED_WrCmd(0xd9);//--set pre-charge periodOLED_WrCmd(0xf1);//Set Pre-Charge as 15 Clocks & Discharge as 1 ClockOLED_WrCmd(0xda);//--set com pins hardware configurationOLED_WrCmd(0x12);OLED_WrCmd(0xdb);//--set vcomhOLED_WrCmd(0x40);//Set VCOM Deselect LevelOLED_WrCmd(0x20);//-Set Page Addressing Mode (0x00/0x01/0x02)OLED_WrCmd(0x02);//OLED_WrCmd(0x8d);//--set Charge Pump enable/disableOLED_WrCmd(0x14);//--set(0x10) disableOLED_WrCmd(0xa4);// Disable Entire Display On (0xa4/0xa5)OLED_WrCmd(0xa6);// Disable Inverse Display On (0xa6/a7) OLED_WrCmd(0xaf);//--turn on oled panelOLED_Fill(0x00); //初始清屏OLED_Set_Pos(0,0);
}

功能描述:显示8*16组标准ASCII字符?? 显示的坐标(x,y),y为页范围0~7

void OLED_P8x16Str(uchar x, uchar y, char ch[])   //8x16的字符串
{unsigned char c=0,i=0,j=0;while (ch[j]!='\0'){c =ch[j]-32;if(x>120){x=0;y++;}OLED_Set_Pos(x,y);for(i=0;i<8;i++)OLED_WrDat(F8X16[c*16+i]);OLED_Set_Pos(x,y+1);for(i=0;i<8;i++)OLED_WrDat(F8X16[c*16+i+8]);x+=8;j++;}
}

功能描述:显示16*16点阵 显示的坐标(x,y),y为页范围0~7:

void OLED_P16x16Ch(unsigned char x, unsigned char y,unsigned char N)
{unsigned char wm=0;unsigned int adder=32*N;OLED_Set_Pos(x,y);for(wm = 0;wm < 16;wm++){OLED_WrDat(F16x16[adder]);adder += 1;}OLED_Set_Pos(x,y + 1);for(wm = 0;wm < 16;wm++){OLED_WrDat(F16x16[adder]);adder += 1;}
}

主函数:
(此部分须根据实际情况进行用户自定义)

int main( void )
{CLK_Init();I2C_Init();OLED_Init();OLED_Fill(0xFF);  //显示OLED全屏填充OLED_Fill(0xff); //OLED屏全充Delay_nms(100);OLED_Fill(0x00); //OLED屏清完Delay_nms(100);//第一行显示:齿轮齿速采集OLED_P16x16Ch(16,0,0);  //4为行的第4个点 0为y轴第一行  后一个0为第1个字OLED_P16x16Ch(32,0,1);   OLED_P16x16Ch(48,0,2);OLED_P16x16Ch(64,0,3);OLED_P16x16Ch(80,0,4);OLED_P16x16Ch(96,0,5);//第二行显示:N:OLED_P8x16Str(8,2,"N:");//第三行显示:S:OLED_P8x16Str(8,4,"S:");//第三行显示:V:OLED_P8x16Str(8,6,"V:");while(1){IN0_N_DIS[0]=(N/1000)+0x30;//一定要加48=0x30,要不然不会显示。IN0_N_DIS[1]=(N/100)%10+0x30;IN0_N_DIS[2]=(N/10)%10+0x30;IN0_N_DIS[3]=N%10+0x30;IN0_S_DIS[0]=(S/10000)%10+0x30;IN0_S_DIS[1]=(S/1000)%10+0x30;IN0_S_DIS[2]=(S/100)%10+0x30;IN0_S_DIS[3]= '.';IN0_S_DIS[4]=(S/10)%10+0x30;IN0_S_DIS[5]=S%10+0x30;IN0_S_DIS[6]=' ';IN0_S_DIS[7]='m';IN0_V_DIS[0]=(V/100000)%10+0x30;IN0_V_DIS[1]=(V/10000)%10+0x30;IN0_V_DIS[2]=(V/1000)%10+0x30;IN0_V_DIS[3]= '.';IN0_V_DIS[4]=(V/100)%10+0x30;IN0_V_DIS[5]='0';IN0_V_DIS[6]=' ';IN0_V_DIS[7]='m';IN0_V_DIS[8]='/'; IN0_V_DIS[9]='s';OLED_P8x16Str(46,2,IN0_N_DIS);               //注意这种显示的用法OLED_P8x16Str(46,4,IN0_S_DIS);OLED_P8x16Str(46,6,IN0_V_DIS);}
}

中景园电子0.96寸IIC显示屏代码 通用性较高相关推荐

  1. 0.96寸IIC接口ssd1306和ssd1315驱动oled12864屏幕介绍

    0.96寸IIC接口ssd1306和ssd1315驱动oled12864屏幕介绍 图为中景园的0.96寸ssd1306屏幕,适合于PCB一体化设计.如果想分开,可以直接购买带焊接好转接的OLED屏幕. ...

  2. 0.96寸OLED显示屏标准库移植HAL库(模拟IIC) - 基于STM32

    ** 0.96寸OLED显示屏标准库移植HAL库,使用模拟IIC ** 由于项目的需要使用OLED屏显示,并且现有的项目程序是基于HAL库编写的,而手头能找到的程序是标准库的驱动程序,大概看了一下代码 ...

  3. STM32F103C8T6 0.96寸 OLED显示屏 IIC(CubeMx生成 HAL库)

    STM32F103C8T6 0.96寸 OLED显示屏 IIC(CubeMx生成 HAL库 文章目录 STM32F103C8T6 0.96寸 OLED显示屏 IIC(CubeMx生成 HAL库 一.O ...

  4. 0.96寸OLED显示屏介绍

    OLED显示屏简介 OLED,即有机发光二极管(Organic Light Emitting Diode).OLED 由于同时具备自发光,不需背光源.对比度高.厚度薄.视角广.反应速度快.可用于挠曲性 ...

  5. 0.96寸OLED显示屏介绍续

    0.96 寸OLED 显示屏使用方法 (以中景园电子的0.96 寸OLED 显示屏为例) 0.96寸OLED显示屏实物图 七针SPI/IIC 0.96寸OLED显示屏使用方法: 七针SPI/IIC 0 ...

  6. 关于基于stm32的0.96寸oled显示屏的学习理解心得。

    关于基于stm32的0.96寸oled显示屏的学习理解心得. oled粗了解 如何理解OLED分辨率? 这里0.96寸OLED分辨率是12864;即OLED显示是128行64列; 但是由于OLED不能 ...

  7. 3.2 0.96寸OLED显示屏的使用

    0.96寸OLED显示屏:4线的串行SPI接口方式.IIC 接口方式,128*64像素. OLED每次控制8个点阵,垂直方向扫描控制,所以垂直方向坐标可选为0~7:水平方向可选坐标0~127 接线图: ...

  8. 【手把手带你用pid算法控制电机】——(1)编码器电机和0.96寸OLED显示屏的使用

    目录 前言 一.需要用到的器材 二.接线说明 三.cubmx配置 3.1 时钟树 3.2 输出PWM(TIM4) 3.3 编码器模式(TIM3) 3.4 中断定时器配置(TIM1) 3.5 配置IIC ...

  9. 基于STM32F103C8T6的0.96寸OLED显示屏显示数据

    一.了解SPI(串行外设接口) SPI全称是Serial Perripheral Interface,也就是串行外围设备接口.SPI是Motorola公司推出的一种同步串行接口技术,是一种高速,全双工 ...

最新文章

  1. ABAP ALV 颜色设置(行,列,单元格)
  2. 日常问题———安装新版zookeeper 出现Starting zookeeper ... FAILED TO START
  3. InstallShield 杀掉进程
  4. 数据库: asc和desc的意思
  5. python读取指定页docx内容_Python读取指定目录下指定后缀文件并保存为docx
  6. 程序员的职业素养---编码
  7. Mybatis和Spring整合逆向工程
  8. 计算机的硬件软件组成
  9. 五大车载操作(VOS)系统
  10. 7-1 十二进制字符串转换成十进制整数(PTA)
  11. 64位win7旗舰版java_win7 64位旗舰版下载_lenovo windows7 64位旗舰版笔记本专用系统_软件侠下载站...
  12. The harvester安装使用
  13. python 跳过_python怎么跳过异常继续执行
  14. 从编程当中走向创业之路
  15. 识破面试官的套路:十个典型的面试问题剖析
  16. 【金猿产品展】诸葛用户数据分析平台(Insight)——聚焦业务场景数据应用价值挖掘,赋能精细化运营...
  17. ESP8266开发之旅 阿里云物联网平台篇⑤ LED智能灯控制系统(使用HTTPS认证再连接)
  18. 世上最污技术解读,我竟然秒懂了
  19. BD,HD,720P和1280P的区别
  20. 云客赞实名认证怎么取消吗_云客赞佣金提现常见问题

热门文章

  1. C++ Mysql基本操作
  2. 河北中职计算机哪个学校好,河北十大中职学校排行榜
  3. 谷歌官方回应:我们没有放弃TensorFlow,未来与JAX并肩发展
  4. C语言中使用‘scanf’输入与‘printf’输出的几个例子
  5. 仿养生网 帝国CMS 更新后域名栏目链接一直没变 解决方法:在后台地图--模板标签替换里直接全部替换
  6. 不同字符编码格式之间的转换
  7. python利用反向切片来反转字符串
  8. 内网穿透神器Frps一键安装脚本及设置教程
  9. 【计算机组成原理】四、CPU与简单模型机设计实验
  10. 利用汇编和C语言实现Exynos4412裸机开发系列之实现LED跑马灯(含源码)