目录

  • I2C驱动代码
    • MSP430F5529_I2C.c
    • MSP430F5529_I2C.h
    • OLED初始化及测试
    • OLED驱动代码
      • OLED.c
      • OLED.h
      • OLED_Font.h
  • 显示效果

平台:Code Composer Studio 10.4.0
MSP430F5529 LaunchPad™ Development Kit
(MSP‑EXP430F5529LP)


I2C驱动代码

P3.0为SDA,P3.1为SCL

MSP430F5529_I2C.c

#include "driverlib.h"#define I2C_USCI_BASE USCI_B0_BASE
#define I2C_USCI_VECTOR USCI_B0_VECTOR
#define I2C_USCI_IV UCB0IV#define I2C_BUF_LENGTH 32
static char i2c_buf[I2C_BUF_LENGTH];
static uint8_t i2c_buf_len = 0;
static uint8_t i2c_buf_cur = 0;static uint8_t *i2c_rx_buf = 0;
static uint8_t i2c_rx_buf_len = 0;void Init_I2C_GPIO(void)
{/* Select I2C function for I2C_SDA & I2C_SCL */GPIO_setAsPeripheralModuleFunctionOutputPin(GPIO_PORT_P3,GPIO_PIN0 | GPIO_PIN1);
}/***************************************************************************//*** @brief  Configures I2C* @param  none* @return none******************************************************************************/void I2C_init(uint8_t slaveAddress)
{/* I2C Master Configuration Parameter */USCI_B_I2C_initMasterParam i2cConfig ={USCI_B_I2C_CLOCKSOURCE_SMCLK,UCS_getSMCLK(),USCI_B_I2C_SET_DATA_RATE_400KBPS};/* Initialize USCI_B0 and I2C Master to communicate with slave devices*/USCI_B_I2C_initMaster(I2C_USCI_BASE, &i2cConfig);/* Enable I2C Module to start operations */USCI_B_I2C_enable(I2C_USCI_BASE);// Specify slave addressUSCI_B_I2C_setSlaveAddress(I2C_USCI_BASE, slaveAddress);USCI_B_I2C_clearInterrupt(I2C_USCI_BASE, USCI_B_I2C_RECEIVE_INTERRUPT);USCI_B_I2C_enableInterrupt(I2C_USCI_BASE, USCI_B_I2C_RECEIVE_INTERRUPT);USCI_B_I2C_clearInterrupt(I2C_USCI_BASE, USCI_B_I2C_TRANSMIT_INTERRUPT);USCI_B_I2C_enableInterrupt(I2C_USCI_BASE, USCI_B_I2C_TRANSMIT_INTERRUPT);return;
}/* write a byte to specific register, cannot called in interrupt context */
void writeByte(uint8_t byte)
{while (USCI_B_I2C_isBusBusy(I2C_USCI_BASE));USCI_B_I2C_setMode(I2C_USCI_BASE, USCI_B_I2C_TRANSMIT_MODE);// Initiate start and send first characteri2c_buf[0] = byte;i2c_buf_cur = 1;i2c_buf_len = 1;USCI_B_I2C_masterSendMultiByteStart(I2C_USCI_BASE, i2c_buf[0]);// wait for end__bis_SR_register(GIE + LPM0_bits);__no_operation();
}/* write a word to specific register, cannot called in interrupt context */
void writeWord(uint16_t word)
{while (USCI_B_I2C_isBusBusy(I2C_USCI_BASE));USCI_B_I2C_setMode(I2C_USCI_BASE, USCI_B_I2C_TRANSMIT_MODE);// Initiate start and send first characteri2c_buf[0] = word >> 8;i2c_buf[1] = (uint8_t)word;i2c_buf_cur = 1;i2c_buf_len = 2;USCI_B_I2C_masterSendMultiByteStart(I2C_USCI_BASE, i2c_buf[0]);// wait for end__bis_SR_register(GIE + LPM0_bits);__no_operation();
}///* set/clear some bit to specific register, cannot called in interrupt context */
//void writeBit(uint8_t regAddr, uint8_t bitNum, uint8_t data)
//{//    uint8_t b = 0;
//    readByte(regAddr, &b);
//    delay_ms(2);
//    b = (data != 0) ? (b | (1 << bitNum)) : (b & ~(1 << bitNum));
//    writeByte(regAddr, b);
//}/* read some byte from specific register, cannot called in interrupt context */
void readByte(uint8_t RegAddr, uint8_t* b)
{while (USCI_B_I2C_isBusBusy(I2C_USCI_BASE));// send addressUSCI_B_I2C_setMode(I2C_USCI_BASE, USCI_B_I2C_TRANSMIT_MODE);i2c_buf_cur = 1;i2c_buf_len = 1;USCI_B_I2C_masterSendSingleByte(I2C_USCI_BASE, RegAddr);// receiveUSCI_B_I2C_setMode(I2C_USCI_BASE, USCI_B_I2C_RECEIVE_MODE);i2c_rx_buf = b;i2c_rx_buf_len = 1;USCI_B_I2C_masterReceiveSingleStart(I2C_USCI_BASE);//     wait for end__bis_SR_register(GIE + LPM0_bits);__no_operation();
}void readBytes(uint8_t RegAddr, uint8_t length, uint8_t* data)
{while (USCI_B_I2C_isBusBusy(I2C_USCI_BASE));// send addressUSCI_B_I2C_setMode(I2C_USCI_BASE, USCI_B_I2C_TRANSMIT_MODE);i2c_buf_cur = 1;i2c_buf_len = 1;USCI_B_I2C_masterSendSingleByte(I2C_USCI_BASE, RegAddr);// receiveUSCI_B_I2C_setMode(I2C_USCI_BASE, USCI_B_I2C_RECEIVE_MODE);i2c_rx_buf = data;i2c_rx_buf_len = length;USCI_B_I2C_masterReceiveMultiByteStart(I2C_USCI_BASE);// wait for end__bis_SR_register(GIE + LPM0_bits);__no_operation();
}#pragma vector = I2C_USCI_VECTOR
__interrupt void USCI_B0_ISR(void)
{switch (__even_in_range(I2C_USCI_IV, 12)){case USCI_I2C_UCTXIFG:if (i2c_buf_cur < i2c_buf_len){USCI_B_I2C_masterSendMultiByteNext( I2C_USCI_BASE, i2c_buf[i2c_buf_cur]);i2c_buf_cur++;}else{USCI_B_I2C_masterSendMultiByteStop(I2C_USCI_BASE);//Clear master interrupt statusUSCI_B_I2C_clearInterrupt(I2C_USCI_BASE,USCI_B_I2C_TRANSMIT_INTERRUPT);__bic_SR_register_on_exit(LPM0_bits);}break;case USCI_I2C_UCRXIFG:i2c_rx_buf_len--;if(i2c_rx_buf_len){if(i2c_rx_buf_len== 1){//Initiate end of reception -> Receive byte with NAK*i2c_rx_buf++ = USCI_B_I2C_masterReceiveMultiByteFinish( I2C_USCI_BASE);}else{//Keep receiving one byte at a time*i2c_rx_buf++ = USCI_B_I2C_masterReceiveMultiByteNext( I2C_USCI_BASE);}}else{//Receive last byte*i2c_rx_buf= USCI_B_I2C_masterReceiveMultiByteNext(I2C_USCI_BASE);__bic_SR_register_on_exit(LPM0_bits);}break;}
}

MSP430F5529_I2C.h

#ifndef MSP430F5529_I2C_H_
#define MSP430F5529_I2C_H_void Init_I2C_GPIO(void);
void I2C_init(uint8_t slaveAddress);
void writeByte(uint8_t byte);
void writeWord(uint16_t word);
void readByte(uint8_t RegAddr, uint8_t* b);
void readBytes(uint8_t RegAddr, uint8_t length, uint8_t* data);#endif /* MSP430F5529_I2C_H_ */

OLED初始化及测试

#include "driverlib.h"
#include "MSP430F5529_I2C.h"
#include "./OLED/OLED.h"#define MCLK_IN_HZ      25000000#define delay_us(x)     __delay_cycles((MCLK_IN_HZ/1000000*(x)))
#define delay_ms(x)     __delay_cycles((MCLK_IN_HZ/1000*(x)))void SystemClock_Init(void)
{PMM_setVCore(PMM_CORE_LEVEL_3);     //高主频工作需要较高的核心电压//XT1引脚复用GPIO_setAsPeripheralModuleFunctionInputPin(GPIO_PORT_P5, GPIO_PIN4);GPIO_setAsPeripheralModuleFunctionOutputPin(GPIO_PORT_P5, GPIO_PIN5);//起振XT1UCS_turnOnLFXT1(UCS_XT1_DRIVE_3,UCS_XCAP_3);//XT2引脚复用GPIO_setAsPeripheralModuleFunctionInputPin(GPIO_PORT_P5, GPIO_PIN2);GPIO_setAsPeripheralModuleFunctionOutputPin(GPIO_PORT_P5, GPIO_PIN3);//起振XT2UCS_turnOnXT2(UCS_XT2_DRIVE_4MHZ_8MHZ);//XT2作为FLL参考时钟,先8分频,再50倍频 4MHz / 8 * 50 = 25MHzUCS_initClockSignal(UCS_FLLREF, UCS_XT2CLK_SELECT, UCS_CLOCK_DIVIDER_8);UCS_initFLLSettle(25000, 50);//XT1作为ACLK时钟源 = 32768HzUCS_initClockSignal(UCS_ACLK, UCS_XT1CLK_SELECT, UCS_CLOCK_DIVIDER_1);//DCOCLK作为MCLK时钟源 = 25MHzUCS_initClockSignal(UCS_MCLK, UCS_DCOCLK_SELECT, UCS_CLOCK_DIVIDER_1);//DCOCLK作为SMCLK时钟源 = 25MHzUCS_initClockSignal(UCS_SMCLK, UCS_DCOCLK_SELECT, UCS_CLOCK_DIVIDER_1);//设置外部时钟源的频率,使得在调用UCS_getMCLK, UCS_getSMCLK 或 UCS_getACLK时可得到正确值UCS_setExternalClockSource(32768, 4000000);
}int main(void)
{WDT_A_hold(WDT_A_BASE);SystemClock_Init();Init_I2C_GPIO();I2C_init(OLED_ADDRESS >> 1);__bis_SR_register(GIE);OLED_Init();OLED_Clear();OLED_Display_On();OLED_ShowString(0, 0, "MSP430F5529 OLED", 1);OLED_ShowString(0, 2, "   2021-08-05", 1);while(1){delay_ms(1000);}
}

OLED驱动代码

OLED.c

/** OLED.c**  Created on: Jan 17, 2021*      Author: Royic*/#include "OLED.h"
#include <stdlib.h>
#include "OLED_Font.h"
#include "MSP430F5529_I2C.h"//OLED的显存
//存放格式如下.
//[0]0 1 2 3 ... 127
//[1]0 1 2 3 ... 127
//[2]0 1 2 3 ... 127
//[3]0 1 2 3 ... 127
//[4]0 1 2 3 ... 127
//[5]0 1 2 3 ... 127
//[6]0 1 2 3 ... 127
//[7]0 1 2 3 ... 127uint16_t TxData = 0;
void Write_IIC_Command(unsigned char I2C_Command)//写命令
{//    uint16_t Data = (OLED_WriteCom_Addr << 8) | I2C_Command;TxData = (OLED_WriteCom_Addr << 8) | I2C_Command;writeWord(TxData);
}/** 第1个参数为I2C操作句柄第2个参数为从机设备地址第3个参数为从机寄存器地址第4个参数为从机寄存器地址长度第5个参数为发送的数据第6个参数为传输数据的大小第7个参数为操作超时时间   */void Write_IIC_Data(unsigned char IIC_Data)//写数据
{//    uint16_t Data = 0;TxData = (OLED_WriteData_Addr << 8) | IIC_Data;writeWord(TxData);
}void OLED_WR_Byte(unsigned dat,unsigned cmd)
{if(cmd){Write_IIC_Data(dat);}else{Write_IIC_Command(dat);}
}/********************************************
// fill_Picture
********************************************/
void fill_picture(unsigned char fill_Data)
{unsigned char m,n;for(m=0;m<8;m++){OLED_WR_Byte(0xb0+m,0);      //page0-page1OLED_WR_Byte(0x00,0);      //low column start addressOLED_WR_Byte(0x10,0);     //high column start addressfor(n=0;n<128;n++){OLED_WR_Byte(fill_Data,1);}}
}//坐标设置void OLED_Set_Pos(unsigned char x, unsigned char y)
{OLED_WR_Byte(0xb0+y,OLED_CMD);OLED_WR_Byte(((x&0xf0)>>4)|0x10,OLED_CMD);OLED_WR_Byte((x&0x0f),OLED_CMD);
}//开启OLED显示
void OLED_Display_On(void)
{OLED_WR_Byte(0X8D,OLED_CMD);  //SET DCDC命令OLED_WR_Byte(0X14,OLED_CMD);  //DCDC ONOLED_WR_Byte(0XAF,OLED_CMD);  //DISPLAY ON
}//关闭OLED显示
void OLED_Display_Off(void)
{OLED_WR_Byte(0X8D,OLED_CMD);  //SET DCDC命令OLED_WR_Byte(0X10,OLED_CMD);  //DCDC OFFOLED_WR_Byte(0XAE,OLED_CMD);  //DISPLAY OFF
}//清屏函数,清完屏,整个屏幕是黑色的!和没点亮一样!!!
void OLED_Clear(void)
{uint8_t i,n;for(i=0;i<8;i++){OLED_WR_Byte (0xb0+i,OLED_CMD);    //设置页地址(0~7)OLED_WR_Byte (0x00,OLED_CMD);      //设置显示位置—列低地址OLED_WR_Byte (0x10,OLED_CMD);      //设置显示位置—列高地址for(n=0;n<128;n++)OLED_WR_Byte(0,OLED_DATA);} //更新显示
}void OLED_On(void)
{uint8_t i,n;for(i=0;i<8;i++){OLED_WR_Byte (0xb0+i,OLED_CMD);    //设置页地址(0~7)OLED_WR_Byte (0x00,OLED_CMD);      //设置显示位置—列低地址OLED_WR_Byte (0x10,OLED_CMD);      //设置显示位置—列高地址for(n=0;n<128;n++)OLED_WR_Byte(1,OLED_DATA);} //更新显示
}//在指定位置显示一个字符,包括部分字符
//x:0~127
//y:0~63
//mode:0,反白显示;1,正常显示
//size:选择字体 1——8*16 0——6*8
void OLED_ShowChar(uint8_t x,uint8_t y,uint8_t chr,uint8_t Char_Size)
{unsigned char c=0,i=0;c=chr-' ';//得到偏移后的值if(x>Max_Column-1){x=0;y=y+2;}if(Char_Size){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);for(i=0;i<6;i++)OLED_WR_Byte(F6x8[c][i],OLED_DATA);}
}//m^n函数
uint32_t oled_pow(uint8_t m,uint8_t n)
{uint32_t result=1;while(n--)result*=m;return result;
}//显示2个数字
//x,y :起点坐标
//len :数字的位数
//size:字体大小
//mode:模式   0,填充模式;1,叠加模式
//num:数值(0~4294967295);
void OLED_ShowNum(uint8_t x,uint8_t y,uint32_t num,uint8_t len,uint8_t size2)
{uint8_t t,temp;uint8_t enshow=0;for(t=0;t<len;t++){temp=(num/oled_pow(10,len-t-1))%10;if(enshow==0&&t<(len-1)){if(temp==0){OLED_ShowChar(x+(size2/2)*t,y,' ',size2);continue;}elseenshow=1;}OLED_ShowChar(x+(size2/2)*t,y,temp+'0',size2);}
}//显示一个字符号串
void OLED_ShowString(uint8_t x,uint8_t y,uint8_t *chr,uint8_t Char_Size)
{unsigned char j=0;while (chr[j]!='\0'){OLED_ShowChar(x,y,chr[j],Char_Size);x+=8;if(x>120){x=0;y+=2;}j++;}
}//显示汉字
void OLED_ShowCHinese(uint8_t x,uint8_t y,uint8_t no)
{uint8_t t,adder=0;OLED_Set_Pos(x,y);for(t=0;t<16;t++){OLED_WR_Byte(Hzk[2*no][t],OLED_DATA);adder+=1;}OLED_Set_Pos(x,y+1);for(t=0;t<16;t++){OLED_WR_Byte(Hzk[2*no+1][t],OLED_DATA);adder+=1;}
}/***********功能描述:显示显示BMP图片128×64起始点坐标(x,y),x的范围0~127,y为页的范围0~7*****************/
void OLED_DrawBMP(unsigned char x0, unsigned char y0,unsigned char x1, unsigned char y1,unsigned char BMP[])
{unsigned int j=0;unsigned char x,y;if(y1%8==0)y=y1/8;elsey=y1/8+1;for(y=y0;y<y1;y++){OLED_Set_Pos(x0,y);for(x=x0;x<x1;x++){OLED_WR_Byte(BMP[j++],OLED_DATA);}}
}//初始化SSD1306
void OLED_Init(void)
{OLED_WR_Byte(0xAE,OLED_CMD);//--display offOLED_WR_Byte(0x00,OLED_CMD);//---set low column addressOLED_WR_Byte(0x10,OLED_CMD);//---set high column addressOLED_WR_Byte(0x40,OLED_CMD);//--set start line addressOLED_WR_Byte(0xB0,OLED_CMD);//--set page addressOLED_WR_Byte(0x81,OLED_CMD); // contract controlOLED_WR_Byte(0xFF,OLED_CMD);//--128OLED_WR_Byte(0xA1,OLED_CMD);//set segment remapOLED_WR_Byte(0xA6,OLED_CMD);//--normal / reverseOLED_WR_Byte(0xA8,OLED_CMD);//--set multiplex ratio(1 to 64)OLED_WR_Byte(0x3F,OLED_CMD);//--1/32 dutyOLED_WR_Byte(0xC8,OLED_CMD);//Com scan directionOLED_WR_Byte(0xD3,OLED_CMD);//-set display offsetOLED_WR_Byte(0x00,OLED_CMD);//OLED_WR_Byte(0xD5,OLED_CMD);//set osc divisionOLED_WR_Byte(0x80,OLED_CMD);//OLED_WR_Byte(0xD8,OLED_CMD);//set area color mode offOLED_WR_Byte(0x05,OLED_CMD);//OLED_WR_Byte(0xD9,OLED_CMD);//Set Pre-Charge PeriodOLED_WR_Byte(0xF1,OLED_CMD);//OLED_WR_Byte(0xDA,OLED_CMD);//set com pin configuartionOLED_WR_Byte(0x12,OLED_CMD);//OLED_WR_Byte(0xDB,OLED_CMD);//set VcomhOLED_WR_Byte(0x30,OLED_CMD);//OLED_WR_Byte(0x8D,OLED_CMD);//set charge pump enableOLED_WR_Byte(0x14,OLED_CMD);//OLED_WR_Byte(0xAF,OLED_CMD);//--turn on oled panel
}

OLED.h

/** OLED.h**  Created on: Jan 17, 2021*      Author: Royic*/#ifndef OLED_OLED_H_
#define OLED_OLED_H_#include <stdlib.h>
#include <stdint.h>#define Scr12864_HI2C hi2c1#define OLED_MODE 0
#define SIZE 8
#define XLevelL     0x00
#define XLevelH     0x10
#define Max_Column  128
#define Max_Row     64
#define Brightness  0xFF
#define X_WIDTH     128
#define Y_WIDTH     64#define OLED_ADDRESS 0x78
//设备地址#define OLED_WriteCom_Addr    0x00    //从机写指令地址
#define OLED_WriteData_Addr 0x40    //从机写数据地址#define OLED_CMD  0    //写命令
#define OLED_DATA 1 //写数据//OLED控制用函数
void OLED_WR_Byte(unsigned dat,unsigned cmd);
void OLED_Display_On(void);
void OLED_Display_Off(void);
void OLED_Init(void);
void OLED_Clear(void);
void OLED_DrawPoint(uint8_t x,uint8_t y,uint8_t t);
void OLED_Fill(uint8_t x1,uint8_t y1,uint8_t x2,uint8_t y2,uint8_t dot);
void OLED_ShowChar(uint8_t x,uint8_t y,uint8_t chr,uint8_t Char_Size);
void OLED_ShowNum(uint8_t x,uint8_t y,uint32_t num,uint8_t len,uint8_t size);
void OLED_ShowString(uint8_t x,uint8_t y, uint8_t *p,uint8_t Char_Size);
void OLED_Set_Pos(unsigned char x, unsigned char y);
void OLED_ShowCHinese(uint8_t x,uint8_t y,uint8_t no);
void OLED_DrawBMP(unsigned char x0, unsigned char y0,unsigned char x1, unsigned char y1,unsigned char BMP[]);void fill_picture(unsigned char fill_Data);void Write_IIC_Command(unsigned char IIC_Command);
void Write_IIC_Data(unsigned char IIC_Data);
void Write_IIC_Byte(unsigned char IIC_Byte);#endif /* OLED_OLED_H_ */

OLED_Font.h

/** OLED_Font.h**  Created on: Jan 17, 2021*      Author: Royic*/#ifndef OLED_OLED_FONT_H
#define OLED_OLED_FONT_H//常用ASCII表const unsigned char F6x8[][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
};/****************************************8*16的点阵************************************/
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
};const char Hzk[][32]={{0x00,0x00,0xF0,0x10,0x10,0x10,0x10,0xFF,0x10,0x10,0x10,0x10,0xF0,0x00,0x00,0x00},
{0x00,0x00,0x0F,0x04,0x04,0x04,0x04,0xFF,0x04,0x04,0x04,0x04,0x0F,0x00,0x00,0x00},/*"中",0*/{0x40,0x40,0x40,0x5F,0x55,0x55,0x55,0x75,0x55,0x55,0x55,0x5F,0x40,0x40,0x40,0x00},
{0x00,0x40,0x20,0x0F,0x09,0x49,0x89,0x79,0x09,0x09,0x09,0x0F,0x20,0x40,0x00,0x00},/*"景",1*/{0x00,0xFE,0x02,0x42,0x4A,0xCA,0x4A,0x4A,0xCA,0x4A,0x4A,0x42,0x02,0xFE,0x00,0x00},
{0x00,0xFF,0x40,0x50,0x4C,0x43,0x40,0x40,0x4F,0x50,0x50,0x5C,0x40,0xFF,0x00,0x00},/*"园",2*/{0x00,0x00,0xF8,0x88,0x88,0x88,0x88,0xFF,0x88,0x88,0x88,0x88,0xF8,0x00,0x00,0x00},
{0x00,0x00,0x1F,0x08,0x08,0x08,0x08,0x7F,0x88,0x88,0x88,0x88,0x9F,0x80,0xF0,0x00},/*"电",3*/{0x80,0x82,0x82,0x82,0x82,0x82,0x82,0xE2,0xA2,0x92,0x8A,0x86,0x82,0x80,0x80,0x00},
{0x00,0x00,0x00,0x00,0x00,0x40,0x80,0x7F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"子",4*/{0x24,0x24,0xA4,0xFE,0xA3,0x22,0x00,0x22,0xCC,0x00,0x00,0xFF,0x00,0x00,0x00,0x00},
{0x08,0x06,0x01,0xFF,0x00,0x01,0x04,0x04,0x04,0x04,0x04,0xFF,0x02,0x02,0x02,0x00},/*"科",5*/{0x10,0x10,0x10,0xFF,0x10,0x90,0x08,0x88,0x88,0x88,0xFF,0x88,0x88,0x88,0x08,0x00},
{0x04,0x44,0x82,0x7F,0x01,0x80,0x80,0x40,0x43,0x2C,0x10,0x28,0x46,0x81,0x80,0x00},/*"?",0*/{0x40,0x40,0x48,0x48,0x48,0xC8,0x78,0x4F,0x48,0x48,0x48,0x48,0x48,0x40,0x40,0x00},
{0x00,0x00,0x00,0x00,0x03,0x12,0x12,0x22,0x22,0x52,0x8A,0x06,0x00,0x00,0x00,0x00},/*"专",0*/{0x00,0x10,0x60,0x80,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0xC0,0x30,0x00,0x00},
{0x40,0x40,0x40,0x43,0x40,0x7F,0x40,0x40,0x40,0x7F,0x42,0x41,0x40,0x40,0x40,0x00},/*"业",1*/{0x10,0x10,0x10,0xFF,0x10,0x90,0x08,0x88,0x88,0x88,0xFF,0x88,0x88,0x88,0x08,0x00},
{0x04,0x44,0x82,0x7F,0x01,0x80,0x80,0x40,0x43,0x2C,0x10,0x28,0x46,0x81,0x80,0x00},/*"技",2*/{0x00,0x10,0x10,0x10,0x10,0xD0,0x30,0xFF,0x30,0xD0,0x12,0x1C,0x10,0x10,0x00,0x00},
{0x10,0x08,0x04,0x02,0x01,0x00,0x00,0xFF,0x00,0x00,0x01,0x02,0x04,0x08,0x10,0x00},/*"术",3*/{0x00,0x00,0xFE,0x22,0x22,0x22,0xFE,0x00,0xFE,0x82,0x82,0x92,0xA2,0x9E,0x00,0x00},
{0x80,0x60,0x1F,0x02,0x42,0x82,0x7F,0x00,0xFF,0x40,0x2F,0x10,0x2C,0x43,0x80,0x00},/*"服",4*/{0x00,0x00,0x90,0x88,0x4C,0x57,0xA4,0x24,0x54,0x54,0x8C,0x84,0x00,0x00,0x00,0x00},
{0x01,0x01,0x80,0x42,0x22,0x1A,0x07,0x02,0x42,0x82,0x42,0x3E,0x01,0x01,0x01,0x00},/*"务",5*/{0x00,0x04,0xE4,0x24,0x2C,0xB4,0x25,0x26,0x24,0xB4,0x2C,0x24,0xE4,0x04,0x00,0x00},
{0x00,0x00,0xFF,0x02,0x01,0x1E,0x12,0x12,0x12,0x1E,0x41,0x82,0x7F,0x00,0x00,0x00},/*"商",6*/
};#endif /* OLED_OLED_FONT_H */

显示效果

MSP430F5529 DriverLib 库函数I2C驱动OLED屏幕相关推荐

  1. MSP432P401R TI Drivers 库函数学习笔记(七)I2C驱动OLED屏幕

    目录 API (机翻) 上机实战 引脚配置 I2C引脚配置 工作指示灯LED1引脚配置 文件结构 I2C 初始化.读写函数 myI2C.c myI2C.h OLED初始化和测试代码 main.c ma ...

  2. 基于阿里平头哥的单片机软、硬件i2C驱动oled

    基于RiskV的阿里平头哥MCU开箱文章之软硬件i2C驱动oled 12864 Risk-V简介 国产单片机及开发环境CDK iic简介 iIC代码移植详细介绍 # stm32 iic: # 向国产单 ...

  3. ESP8266(NodeMCU)+Lua语言+IIC驱动OLED屏幕

    前言 本来打算用Arduino IDE驱动OLED屏幕,但是因为在家无法安装Arduino的第三方库,改用ESPlorer和Lua语言驱动. 硬件准备 1. NodeMCU开发板 2. OLED屏幕( ...

  4. ⑥ESP8266 开发学习笔记_By_GYC 【ESP8266 驱动 OLED屏幕】

    ⑥ESP8266 开发学习笔记_By_GYC [ESP8266 驱动 OLED屏幕] 目录 ⑥ESP8266 开发学习笔记_By_GYC [ESP8266 驱动 OLED屏幕] 适用范围 user_c ...

  5. 串口助手驱动_STM32Cube22(补充) | 使用硬件I2C驱动OLED(SSD1306)

    点上方蓝字关注我们 每天都有好玩的东西等着你 本篇详细的记录了如何使用STM32CubeMX配置STM32L431RCT6的硬件I2C外设驱动0.96'OLED屏幕. 1. 准备工作 硬件准备 开发板 ...

  6. Arduino 驱动OLED屏幕IIC接线方式简单入门

    OLED一款小巧的显示屏,感觉可以做出很可爱的东西. 这次实验的这款是128X64的OLED屏幕 , 芯片是SSD1306,请确认自家模块芯片型号,不然对不上号啊 使用IIC的方法,简单实验显示示例程 ...

  7. esp8266驱动oled屏幕_为什么“更好的OLED电视”在海信?

    什么是OLED电视? OLED全称Organic Light Emitting Diodes,即有机发光二极管,它的每个像素本身都会发光,而无需单独的背光或者彩色滤光器.由于OLED的特殊属性,在显示 ...

  8. 【矿渣】【玩客云】玩客云驱动OLED屏幕

    玩客云上驱动iic的OLED屏幕 在闲鱼买了花50块买了一台玩客云,拆开刷了armbian系统后发现玩客云这块板子预留了一个单片机芯片的封装,心想这个单片机应该是连接玩客云的GPIO的,所以查了点资料 ...

  9. STM32掌机教程4,STM32驱动OLED屏幕

    屏幕显示英文字符   有个屏幕,掌机的可玩性可以大大增强,打地鼠玩腻了,可以玩个贪吃蛇,俄罗斯方块,以及其他需要开动想象力的游戏.并且,以前总是玩别人的游戏,现在可以自己写游戏,岂不美哉.   后来我 ...

最新文章

  1. python浪漫表白代码
  2. 老板说“我们要做个性化推荐”时,你该怎么办......
  3. 敏捷实践:比每日会议更疯狂的半日会议!
  4. Postgresql kill用户进程
  5. 修改APACHE的默认站点
  6. NFT去中心化自治组织YGG完成130万美元融资,Delphi Digital领投
  7. ajax返回值demo
  8. 为什么程序员做测试其实是有优势的?这是我听过最....的话
  9. 《HTML and CSS Design and Build Websites》学习笔记之HTML5表单新增功能
  10. 2019美赛C题o奖论文结构整理
  11. 科目3|软考高项论文写作技巧
  12. 数据结构面试题以及答案整理
  13. Js拼接Json供echarts的地图使用
  14. PC-DARTS 网络结构搜索程序分析
  15. 怎么批量删除 Word、Excel 以及文本文档中的空白行?
  16. HBuilderX 打包 vue 项目生成 apk
  17. wps底板颜色怎么去掉_怎么去除WPS表格的背景颜色
  18. matlab中时域逐步积分方法,newmark积分法
  19. STM32L476低功耗—进入STOP2模式4s后LPTIM中断唤醒+功率实测
  20. roce流量抓包 linux,roce性能测试方法

热门文章

  1. Mac Book Pro不能识别移动硬盘
  2. FusionCharts使用问题及解决方法(三)-FusionCharts常见问题大全
  3. 思科数据中心Nexus 3000
  4. 魔界的青蔷薇也能在人间开放了
  5. leetcode337. 打家劫舍 III(dfs)
  6. leetcode1091. 二进制矩阵中的最短路径(bfs)
  7. 谷歌跟oracle_谁赢得了Google VS Oracle? 开发人员赢了。
  8. 开源 非开源_开源为善
  9. 鼠标移动到ul图片会摆动_我们可以从摆动时序分析中学到的三件事
  10. 03JavaScript程序设计修炼之道-2019-06-20_20-31-49