概述
Dis_Menu(menu); //display the menu content
/*******************************************************************************
* Function Name : LED_Menu_01
* Description : LED test Menu.
* Input : - numb, Function number
* Output : None
* Return : None
*******************************************************************************/
void Dis_Menu(Menu_TypeDef menu)
{
uint16_t page, row, i;
page = (menu.numb-1) / 6; //each 6 items for a page
i = (page+1) * 6; //the total item can be showed on the OLED
if(i < menu.max_numb)
row = 5;
else
row = (menu.max_numb-1) % 6;
//show the title:LED Test pg 1, and yellow color
OLED_ClearScreen();
OLED_DisStrLine(0, 0, (uint8_t *)menu.title); //show the menu title
OLED_DisChar(0, 6*17, 0, 'P'); //show the page indicate
OLED_DisChar(0, 6*18, 0, 'g');
OLED_DisChar(0, 6*19, 0, ' ');
OLED_DisChar(0, 6*20, 0, 0x30+1+page);
//show the menu items, and blue color
for(i=0; i<=row; i++)
{
if(menu.numb == (page*6 + i + 1))
OLED_DisStrLine(2+ i, 1, (uint8_t *)menu.item[page*6+i]); //yellow or blue
else
OLED_DisStrLine(2+ i, 0, (uint8_t *)menu.item[page*6+i]); //black
}
}
1、OLED_ClearScreen(); //ClearScreen
void OLED_ClearScreen(void)
{
Fill_RAM(0x00);
}
1.1、Fill_RAM(0x00); /*Show Regular Pattern (Full Screen)*/
void Fill_RAM(unsigned char Data)
{
unsigned char i,j;
for(i=0;i<8;i++)
{
Set_Start_Page(i);
Set_Start_Column(0x00);
for(j=0;j<128;j++)
{
Write_Data(Data);
}
}
}
1.1.1、Set_Start_Page(i); /*// Set Page Start Address for Page Addressing Mode*/
void Set_Start_Page(unsigned char d)
{
Write_Command(0xB0|d); // Default => 0xB0 (0x00)
}
1.1.1.1、Write_Command(0xB0|d); /*// 4-wire SPI*/
void Write_Command(unsigned char Data)
{
//unsigned char i;
OLED_DC(0);
OLED_CS(0);
/*
for(i=0; i<8; i++)
{
OLED_CLK(0);
OLED_MOSI((Data&0x80)>>7);
Data = Data << 1;
OLED_CLK(1);
}
*/
SSP_Send(0, (uint8_t *)&Data, 1);
SPI_PutGet(0, Data);
OLED_CS(1);
OLED_DC(1);
}
1.1.1.1.1、OLED_DC(0); OLED_DC(1);
#define OLED_DC(x) GPIOSetValue(PORT2, 5, x)
1.1.1.1.2、OLED_CS(0); OLED_CS(1);
#define OLED_CS(x) GPIOSetValue(PORT2, 4, x)
1.1.1.1.3、OLED_CLK(0); OLED_CLK(1);
#define OLED_CLK(x) GPIOSetValue(PORT0, 6, x)
1.1.1.1.4、OLED_MOSI((Data&0x80)>>7);
#define OLED_MOSI(x) GPIOSetValue(PORT0, 9, x)
1.1.1.1.5、SPI_PutGet(0, Data); Descriptions: SPI port send & receive
/*SPI(Serial Peripheral Interface--串行外设接口)总线系统是一种同步串行外设接口,它可以使MCU与各种外围设备以串行方式进行通信以交换信息*/
uint16_t SPI_PutGet(uint8_t portNum, uint16_t SendData)
{
if(portNum == 0)
{
/* Move on only if NOT busy and TX FIFO not full. */
while((LPC_SSP0->SR & (SSPSR_TNF|SSPSR_BSY)) != SSPSR_TNF);
LPC_SSP0->DR = SendData;
/* Wait until the Busy bit is cleared. */
while(LPC_SSP0->SR & SSPSR_BSY);
/* Wait until the Busy bit is cleared */
while((LPC_SSP0->SR & (SSPSR_BSY|SSPSR_RNE)) != SSPSR_RNE);
return LPC_SSP0->DR;
}
else
{
/* Move on only if NOT busy and TX FIFO not full. */
while((LPC_SSP1->SR & (SSPSR_TNF|SSPSR_BSY)) != SSPSR_TNF);
LPC_SSP1->DR = SendData;
/* Wait until the Busy bit is cleared. */
while(LPC_SSP1->SR & SSPSR_BSY);
/* Wait until the Busy bit is cleared */
while((LPC_SSP1->SR & (SSPSR_BSY|SSPSR_RNE)) != SSPSR_RNE);
return LPC_SSP1->DR;
}
}
1.1.1.1.5.1、LPC_SSP0->SR
/*Peripheral declaration*/
#define LPC_SSP0 ((LPC_SSP_TypeDef *) LPC_SSP0_BASE)
typedef struct
{
__IO uint32_t CR0; /*!< Offset: 0x000 Control Register 0 (R/W) */
__IO uint32_t CR1; /*!< Offset: 0x004 Control Register 1 (R/W) */
__IO uint32_t DR; /*!< Offset: 0x008 Data Register (R/W) */
__I uint32_t SR; /*!< Offset: 0x00C Status Registe (R/ ) */
__IO uint32_t CPSR; /*!< Offset: 0x010 Clock Prescale Register (R/W) */
__IO uint32_t IMSC; /*!< Offset: 0x014 Interrupt Mask Set and Clear Register (R/W) */
__IO uint32_t RIS; /*!< Offset: 0x018 Raw Interrupt Status Register (R/W) */
__IO uint32_t MIS; /*!< Offset: 0x01C Masked Interrupt Status Register (R/W) */
__IO uint32_t ICR; /*!< Offset: 0x020 SSPICR Interrupt Clear Register (R/W) */
} LPC_SSP_TypeDef;
/*Peripheral memory map 外围存储图*/
/* APB0 peripherals */ (APB(Advanced Peripheral Bus),外围总线的意思)
#define LPC_SSP0_BASE (LPC_APB0_BASE + 0x40000)
/*Base addresses*/
#define LPC_APB0_BASE (0x40000000UL)
1.1.1.1.5.2、SSPSR_TNF
#define SSPSR_TNF (1 << 1) /* SSP Status register */
1.1.1.1.5.3、SSPSR_BSY
#define SSPSR_BSY (1 << 4) /* SSP Status register */
1.1.1.1.5.4、LPC_SSP1->SR
/*Peripheral declaration*/
#define LPC_SSP1 ((LPC_SSP_TypeDef *) LPC_SSP1_BASE )
/*Peripheral memory map*/
/*APB0 peripherals*/
#define LPC_SSP1_BASE (LPC_APB0_BASE + 0x58000)
/*Base addresses*/
#define LPC_APB0_BASE (0x40000000UL)
1.1.1.1.5、SSP_Send(0, (uint8_t *)&Data, 1); /*同步串行协议*/
/*Send a block of data to the SSP port,
the first parameter is the buffer pointer, the 2nd parameter is the block length.*/
void SSP_Send( uint8_t portNum, uint8_t *buf, uint32_t Length )
{
uint32_t i;
uint8_t Dummy = Dummy;
for ( i = 0; i < Length; i++ )
{
if ( portNum == 0 )
{
/* Move on only if NOT busy and TX FIFO not full. */
while ( (LPC_SSP0->SR & (SSPSR_TNF|SSPSR_BSY)) != SSPSR_TNF );
LPC_SSP0->DR = *buf;
buf++;
#if !LOOPBACK_MODE
while ( (LPC_SSP0->SR & (SSPSR_BSY|SSPSR_RNE)) != SSPSR_RNE );
/* Whenever a byte is written, MISO FIFO counter increments, Clear FIFO
on MISO. Otherwise, when SSP0Receive() is called, previous data byte
is left in the FIFO. */
Dummy = LPC_SSP0->DR;
#else
/* Wait until the Busy bit is cleared. */
while ( LPC_SSP0->SR & SSPSR_BSY );
#endif
}
else
{
/* Move on only if NOT busy and TX FIFO not full. */
while ( (LPC_SSP1->SR & (SSPSR_TNF|SSPSR_BSY)) != SSPSR_TNF );
LPC_SSP1->DR = *buf;
buf++;
#if !LOOPBACK_MODE
while ( (LPC_SSP1->SR & (SSPSR_BSY|SSPSR_RNE)) != SSPSR_RNE );
/* Whenever a byte is written, MISO FIFO counter increments, Clear FIFO
on MISO. Otherwise, when SSP0Receive() is called, previous data byte
is left in the FIFO. */
Dummy = LPC_SSP1->DR;
#else
/* Wait until the Busy bit is cleared. */
while ( LPC_SSP1->SR & SSPSR_BSY );
#endif
}
}
return;
}
1.2、Set_Start_Column(0x00);
/* Instruction Setting*/
void Set_Start_Column(unsigned char d)
{
Write_Command(0x00+d%16); // Set Lower Column Start Address for Page Addressing Mode
// Default => 0x00
Write_Command(0x10+d/16); // Set Higher Column Start Address for Page Addressing Mode
// Default => 0x10
}
1.2.1、Write_Command(0x00+d%16);
/*4-wire SPI*/
void Write_Command(unsigned char Data)
{
//unsigned char i;
OLED_DC(0);
OLED_CS(0);
for(i=0; i<7; i++)
{
OLED_CLK(0);
OLED_MOSI((Data&0x80)>>7);
Data = Data << 1;
OLED_CLK(1);
}
SSP_Send(0, (uint8_t *)&Data, 1);
SPI_PutGet(0, Data);
OLED_CS(1);
OLED_DC(1);
}
1.3、Write_Data(Data);
void Write_Data(unsigned char Data)
{
//unsigned char i;
OLED_DC(1);
OLED_CS(0);
/*
for(i=0; i<8; i++)
{
OLED_CLK(0);
OLED_MOSI((Data&0x80)>>7);
Data = Data << 1;
OLED_CLK(1);
}
*/
//SSP_Send(0, (uint8_t *)&Data, 1);
SPI_PutGet(0, Data);
OLED_CS(1);
OLED_DC(1);
}
2、OLED_DisChar(0, 6*17, 0, 'P');
/*******************************************************************************
* Function Name : OLED_DisChar
* Description : Displays a char on the OLED.
* Input : - Line: the Line where to display the character shape .
* This parameter can be one of the following values:
* - Linex: where x can be 0..7
* - Column: start column address.
* - Color: display color
* - 0: dot is yellow or blue
* - 1: dot is black
* - Ascii: character ascii code, must be between 0x20 and 0x7E.
* Output : None
* Return : None
*******************************************************************************/
void OLED_DisChar(uint8_t Line, uint16_t Column, uint8_t Color, uint8_t Ascii)
{
uint8_t *Src_Pointer;
uint8_t i;
Src_Pointer = (unsigned char *) &Ascii_1[(Ascii-32)][0];
Set_Start_Page(Line);
if(Column == 0)
{
Set_Start_Column(0);
if(Color == 0)
Write_Data(0x00);
else
Write_Data(0xff);
}
Set_Start_Column(Column+1);
for(i=0;i<5;i++)
{
if(Color == 0)
Write_Data(*Src_Pointer);
else
Write_Data(~(*Src_Pointer));
Src_Pointer ++;
}
if(Color == 0)
Write_Data(0x00);
else
Write_Data(0xff);
}
2.1、Src_Pointer = (unsigned char *) &Ascii_1[(Ascii-32)][0];
const unsigned char Ascii_1[241][5]={ // Refer to "Times New Roman" Font Database...
// Basic Characters
{0x00,0x00,0x00,0x00,0x00}, // ( 0) - 0x0020 Space
{0x00,0x00,0x4F,0x00,0x00}, // ( 1) ! - 0x0021 Exclamation Mark
{0x00,0x07,0x00,0x07,0x00}, // ( 2) " - 0x0022 Quotation Mark
{0x14,0x7F,0x14,0x7F,0x14}, // ( 3) # - 0x0023 Number Sign
{0x24,0x2A,0x7F,0x2A,0x12}, // ( 4) $ - 0x0024 Dollar Sign
{0x23,0x13,0x08,0x64,0x62}, // ( 5) % - 0x0025 Percent Sign
{0x36,0x49,0x55,0x22,0x50}, // ( 6) & - 0x0026 Ampersand
{0x00,0x05,0x03,0x00,0x00}, // ( 7) ' - 0x0027 Apostrophe
{0x00,0x1C,0x22,0x41,0x00}, // ( 8) ( - 0x0028 Left Parenthesis
{0x00,0x41,0x22,0x1C,0x00}, // ( 9) ) - 0x0029 Right Parenthesis
{0x14,0x08,0x3E,0x08,0x14}, // ( 10) * - 0x002A Asterisk
{0x08,0x08,0x3E,0x08,0x08}, // ( 11) + - 0x002B Plus Sign
{0x00,0x50,0x30,0x00,0x00}, // ( 12) , - 0x002C Comma
{0x08,0x08,0x08,0x08,0x08}, // ( 13) - - 0x002D Hyphen-Minus
{0x00,0x60,0x60,0x00,0x00}, // ( 14) . - 0x002E Full Stop
{0x20,0x10,0x08,0x04,0x02}, // ( 15) / - 0x002F Solidus
{0x3E,0x51,0x49,0x45,0x3E}, // ( 16) 0 - 0x0030 Digit Zero
{0x00,0x42,0x7F,0x40,0x00}, // ( 17) 1 - 0x0031 Digit One
{0x42,0x61,0x51,0x49,0x46}, // ( 18) 2 - 0x0032 Digit Two
{0x21,0x41,0x45,0x4B,0x31}, // ( 19) 3 - 0x0033 Digit Three
{0x18,0x14,0x12,0x7F,0x10}, // ( 20) 4 - 0x0034 Digit Four
{0x27,0x45,0x45,0x45,0x39}, // ( 21) 5 - 0x0035 Digit Five
{0x3C,0x4A,0x49,0x49,0x30}, // ( 22) 6 - 0x0036 Digit Six
{0x01,0x71,0x09,0x05,0x03}, // ( 23) 7 - 0x0037 Digit Seven
{0x36,0x49,0x49,0x49,0x36}, // ( 24) 8 - 0x0038 Digit Eight
{0x06,0x49,0x49,0x29,0x1E}, // ( 25) 9 - 0x0039 Dight Nine
{0x00,0x36,0x36,0x00,0x00}, // ( 26) : - 0x003A Colon
{0x00,0x56,0x36,0x00,0x00}, // ( 27) ; - 0x003B Semicolon
{0x08,0x14,0x22,0x41,0x00}, // ( 28) < - 0x003C Less-Than Sign
{0x14,0x14,0x14,0x14,0x14}, // ( 29) = - 0x003D Equals Sign
{0x00,0x41,0x22,0x14,0x08}, // ( 30) > - 0x003E Greater-Than Sign
{0x02,0x01,0x51,0x09,0x06}, // ( 31) ? - 0x003F Question Mark
{0x32,0x49,0x79,0x41,0x3E}, // ( 32) @ - 0x0040 Commercial At
{0x7E,0x11,0x11,0x11,0x7E}, // ( 33) A - 0x0041 Latin Capital Letter A
{0x7F,0x49,0x49,0x49,0x36}, // ( 34) B - 0x0042 Latin Capital Letter B
{0x3E,0x41,0x41,0x41,0x22}, // ( 35) C - 0x0043 Latin Capital Letter C
{0x7F,0x41,0x41,0x22,0x1C}, // ( 36) D - 0x0044 Latin Capital Letter D
{0x7F,0x49,0x49,0x49,0x41}, // ( 37) E - 0x0045 Latin Capital Letter E
{0x7F,0x09,0x09,0x09,0x01}, // ( 38) F - 0x0046 Latin Capital Letter F
{0x3E,0x41,0x49,0x49,0x7A}, // ( 39) G - 0x0047 Latin Capital Letter G
{0x7F,0x08,0x08,0x08,0x7F}, // ( 40) H - 0x0048 Latin Capital Letter H
{0x00,0x41,0x7F,0x41,0x00}, // ( 41) I - 0x0049 Latin Capital Letter I
{0x20,0x40,0x41,0x3F,0x01}, // ( 42) J - 0x004A Latin Capital Letter J
{0x7F,0x08,0x14,0x22,0x41}, // ( 43) K - 0x004B Latin Capital Letter K
{0x7F,0x40,0x40,0x40,0x40}, // ( 44) L - 0x004C Latin Capital Letter L
{0x7F,0x02,0x0C,0x02,0x7F}, // ( 45) M - 0x004D Latin Capital Letter M
{0x7F,0x04,0x08,0x10,0x7F}, // ( 46) N - 0x004E Latin Capital Letter N
{0x3E,0x41,0x41,0x41,0x3E}, // ( 47) O - 0x004F Latin Capital Letter O
{0x7F,0x09,0x09,0x09,0x06}, // ( 48) P - 0x0050 Latin Capital Letter P
{0x3E,0x41,0x51,0x21,0x5E}, // ( 49) Q - 0x0051 Latin Capital Letter Q
{0x7F,0x09,0x19,0x29,0x46}, // ( 50) R - 0x0052 Latin Capital Letter R
{0x46,0x49,0x49,0x49,0x31}, // ( 51) S - 0x0053 Latin Capital Letter S
{0x01,0x01,0x7F,0x01,0x01}, // ( 52) T - 0x0054 Latin Capital Letter T
{0x3F,0x40,0x40,0x40,0x3F}, // ( 53) U - 0x0055 Latin Capital Letter U
{0x1F,0x20,0x40,0x20,0x1F}, // ( 54) V - 0x0056 Latin Capital Letter V
{0x3F,0x40,0x38,0x40,0x3F}, // ( 55) W - 0x0057 Latin Capital Letter W
{0x63,0x14,0x08,0x14,0x63}, // ( 56) X - 0x0058 Latin Capital Letter X
{0x07,0x08,0x70,0x08,0x07}, // ( 57) Y - 0x0059 Latin Capital Letter Y
{0x61,0x51,0x49,0x45,0x43}, // ( 58) Z - 0x005A Latin Capital Letter Z
{0x00,0x7F,0x41,0x41,0x00}, // ( 59) [ - 0x005B Left Square Bracket
{0x02,0x04,0x08,0x10,0x20}, // ( 60) - 0x005C Reverse Solidus
{0x00,0x41,0x41,0x7F,0x00}, // ( 61) ] - 0x005D Right Square Bracket
{0x04,0x02,0x01,0x02,0x04}, // ( 62) ^ - 0x005E Circumflex Accent
{0x40,0x40,0x40,0x40,0x40}, // ( 63) _ - 0x005F Low Line
{0x01,0x02,0x04,0x00,0x00}, // ( 64) ` - 0x0060 Grave Accent
{0x20,0x54,0x54,0x54,0x78}, // ( 65) a - 0x0061 Latin Small Letter A
{0x7F,0x48,0x44,0x44,0x38}, // ( 66) b - 0x0062 Latin Small Letter B
{0x38,0x44,0x44,0x44,0x20}, // ( 67) c - 0x0063 Latin Small Letter C
{0x38,0x44,0x44,0x48,0x7F}, // ( 68) d - 0x0064 Latin Small Letter D
{0x38,0x54,0x54,0x54,0x18}, // ( 69) e - 0x0065 Latin Small Letter E
{0x08,0x7E,0x09,0x01,0x02}, // ( 70) f - 0x0066 Latin Small Letter F
{0x06,0x49,0x49,0x49,0x3F}, // ( 71) g - 0x0067 Latin Small Letter G
{0x7F,0x08,0x04,0x04,0x78}, // ( 72) h - 0x0068 Latin Small Letter H
{0x00,0x44,0x7D,0x40,0x00}, // ( 73) i - 0x0069 Latin Small Letter I
{0x20,0x40,0x44,0x3D,0x00}, // ( 74) j - 0x006A Latin Small Letter J
{0x7F,0x10,0x28,0x44,0x00}, // ( 75) k - 0x006B Latin Small Letter K
{0x00,0x41,0x7F,0x40,0x00}, // ( 76) l - 0x006C Latin Small Letter L
{0x7C,0x04,0x18,0x04,0x7C}, // ( 77) m - 0x006D Latin Small Letter M
{0x7C,0x08,0x04,0x04,0x78}, // ( 78) n - 0x006E Latin Small Letter N
{0x38,0x44,0x44,0x44,0x38}, // ( 79) o - 0x006F Latin Small Letter O
{0x7C,0x14,0x14,0x14,0x08},// ( 80) p - 0x0070 Latin Small Letter P
{0x08,0x14,0x14,0x18,0x7C}, // ( 81) q - 0x0071 Latin Small Letter Q
{0x7C,0x08,0x04,0x04,0x08}, // ( 82) r - 0x0072 Latin Small Letter R
{0x48,0x54,0x54,0x54,0x20}, // ( 83) s - 0x0073 Latin Small Letter S
{0x04,0x3F,0x44,0x40,0x20}, // ( 84) t - 0x0074 Latin Small Letter T
{0x3C,0x40,0x40,0x20,0x7C}, // ( 85) u - 0x0075 Latin Small Letter U
{0x1C,0x20,0x40,0x20,0x1C}, // ( 86) v - 0x0076 Latin Small Letter V
{0x3C,0x40,0x30,0x40,0x3C}, // ( 87) w - 0x0077 Latin Small Letter W
{0x44,0x28,0x10,0x28,0x44}, // ( 88) x - 0x0078 Latin Small Letter X
{0x0C,0x50,0x50,0x50,0x3C}, // ( 89) y - 0x0079 Latin Small Letter Y
{0x44,0x64,0x54,0x4C,0x44}, // ( 90) z - 0x007A Latin Small Letter Z
{0x00,0x08,0x36,0x41,0x00}, // ( 91) { - 0x007B Left Curly Bracket
{0x00,0x00,0x7F,0x00,0x00}, // ( 92) | - 0x007C Vertical Line
{0x00,0x41,0x36,0x08,0x00}, // ( 93) } - 0x007D Right Curly Bracket
{0x02,0x01,0x02,0x04,0x02}, // ( 94) ~ - 0x007E Tilde
{0x3E,0x55,0x55,0x41,0x22}, // ( 95) C - 0x0080 <Control>
{0x00,0x00,0x00,0x00,0x00}, // ( 96) - 0x00A0 No-Break Space
{0x00,0x00,0x79,0x00,0x00}, // ( 97) ! - 0x00A1 Inverted Exclamation Mark
{0x18,0x24,0x74,0x2E,0x24}, // ( 98) c - 0x00A2 Cent Sign
{0x48,0x7E,0x49,0x42,0x40}, // ( 99) L - 0x00A3 Pound Sign
{0x5D,0x22,0x22,0x22,0x5D}, // (100) o - 0x00A4 Currency Sign
{0x15,0x16,0x7C,0x16,0x15}, // (101) Y - 0x00A5 Yen Sign
{0x00,0x00,0x77,0x00,0x00}, // (102) | - 0x00A6 Broken Bar
{0x0A,0x55,0x55,0x55,0x28}, // (103) - 0x00A7 Section Sign
{0x00,0x01,0x00,0x01,0x00}, // (104) " - 0x00A8 Diaeresis
{0x00,0x0A,0x0D,0x0A,0x04}, // (105) - 0x00AA Feminine Ordinal Indicator
{0x08,0x14,0x2A,0x14,0x22}, // (106) << - 0x00AB Left-Pointing Double Angle Quotation Mark
{0x04,0x04,0x04,0x04,0x1C}, // (107) - 0x00AC Not Sign
{0x00,0x08,0x08,0x08,0x00}, // (108) - - 0x00AD Soft Hyphen
{0x01,0x01,0x01,0x01,0x01}, // (109) - 0x00AF Macron
{0x00,0x02,0x05,0x02,0x00}, // (110) - 0x00B0 Degree Sign
{0x44,0x44,0x5F,0x44,0x44}, // (111) +- - 0x00B1 Plus-Minus Sign
{0x00,0x00,0x04,0x02,0x01}, // (112) ` - 0x00B4 Acute Accent
{0x7E,0x20,0x20,0x10,0x3E}, // (113) u - 0x00B5 Micro Sign
{0x06,0x0F,0x7F,0x00,0x7F}, // (114) - 0x00B6 Pilcrow Sign
{0x00,0x18,0x18,0x00,0x00}, // (115) . - 0x00B7 Middle Dot
{0x00,0x40,0x50,0x20,0x00}, // (116) - 0x00B8 Cedilla
{0x00,0x0A,0x0D,0x0A,0x00}, // (117) - 0x00BA Masculine Ordinal Indicator
{0x22,0x14,0x2A,0x14,0x08}, // (118) >> - 0x00BB Right-Pointing Double Angle Quotation Mark
{0x17,0x08,0x34,0x2A,0x7D}, // (119) /4 - 0x00BC Vulgar Fraction One Quarter
{0x17,0x08,0x04,0x6A,0x59}, // (120) /2 - 0x00BD Vulgar Fraction One Half
{0x30,0x48,0x45,0x40,0x20}, // (121) ? - 0x00BF Inverted Question Mark
{0x70,0x29,0x26,0x28,0x70}, // (122) `A - 0x00C0 Latin Capital Letter A with Grave
{0x70,0x28,0x26,0x29,0x70}, // (123) 'A - 0x00C1 Latin Capital Letter A with Acute
{0x70,0x2A,0x25,0x2A,0x70}, // (124) ^A - 0x00C2 Latin Capital Letter A with Circumflex
{0x72,0x29,0x26,0x29,0x70}, // (125) ~A - 0x00C3 Latin Capital Letter A with Tilde
{0x70,0x29,0x24,0x29,0x70}, // (126) "A - 0x00C4 Latin Capital Letter A with Diaeresis
{0x70,0x2A,0x2D,0x2A,0x70}, // (127) A - 0x00C5 Latin Capital Letter A with Ring Above
{0x7E,0x11,0x7F,0x49,0x49}, // (128) AE - 0x00C6 Latin Capital Letter Ae
{0x0E,0x51,0x51,0x71,0x11}, // (129) C - 0x00C7 Latin Capital Letter C with Cedilla
{0x7C,0x55,0x56,0x54,0x44}, // (130) `E - 0x00C8 Latin Capital Letter E with Grave
{0x7C,0x55,0x56,0x54,0x44}, // (131) 'E - 0x00C9 Latin Capital Letter E with Acute
{0x7C,0x56,0x55,0x56,0x44}, // (132) ^E - 0x00CA Latin Capital Letter E with Circumflex
{0x7C,0x55,0x54,0x55,0x44}, // (133) "E - 0x00CB Latin Capital Letter E with Diaeresis
{0x00,0x45,0x7E,0x44,0x00}, // (134) `I - 0x00CC Latin Capital Letter I with Grave
{0x00,0x44,0x7E,0x45,0x00}, // (135) 'I - 0x00CD Latin Capital Letter I with Acute
{0x00,0x46,0x7D,0x46,0x00}, // (136) ^I - 0x00CE Latin Capital Letter I with Circumflex
{0x00,0x45,0x7C,0x45,0x00}, // (137) "I - 0x00CF Latin Capital Letter I with Diaeresis
{0x7F,0x49,0x49,0x41,0x3E}, // (138) D - 0x00D0 Latin Capital Letter Eth
{0x7C,0x0A,0x11,0x22,0x7D}, // (139) ~N - 0x00D1 Latin Capital Letter N with Tilde
{0x38,0x45,0x46,0x44,0x38}, // (140) `O - 0x00D2 Latin Capital Letter O with Grave
{0x38,0x44,0x46,0x45,0x38}, // (141) 'O - 0x00D3 Latin Capital Letter O with Acute
{0x38,0x46,0x45,0x46,0x38}, // (142) ^O - 0x00D4 Latin Capital Letter O with Circumflex
{0x38,0x46,0x45,0x46,0x39}, // (143) ~O - 0x00D5 Latin Capital Letter O with Tilde
{0x38,0x45,0x44,0x45,0x38}, // (144) "O - 0x00D6 Latin Capital Letter O with Diaeresis
{0x22,0x14,0x08,0x14,0x22}, // (145) x - 0x00D7 Multiplcation Sign
{0x2E,0x51,0x49,0x45,0x3A}, // (146) O - 0x00D8 Latin Capital Letter O with Stroke
{0x3C,0x41,0x42,0x40,0x3C}, // (147) `U - 0x00D9 Latin Capital Letter U with Grave
{0x3C,0x40,0x42,0x41,0x3C}, // (148) 'U - 0x00DA Latin Capital Letter U with Acute
{0x3C,0x42,0x41,0x42,0x3C}, // (149) ^U - 0x00DB Latin Capital Letter U with Circumflex
{0x3C,0x41,0x40,0x41,0x3C}, // (150) "U - 0x00DC Latin Capital Letter U with Diaeresis
{0x0C,0x10,0x62,0x11,0x0C}, // (151) `Y - 0x00DD Latin Capital Letter Y with Acute
{0x7F,0x12,0x12,0x12,0x0C}, // (152) P - 0x00DE Latin Capital Letter Thom
{0x40,0x3E,0x01,0x49,0x36}, // (153) B - 0x00DF Latin Capital Letter Sharp S
{0x20,0x55,0x56,0x54,0x78}, // (154) `a - 0x00E0 Latin Small Letter A with Grave
{0x20,0x54,0x56,0x55,0x78}, // (155) 'a - 0x00E1 Latin Small Letter A with Acute
{0x20,0x56,0x55,0x56,0x78}, // (156) ^a - 0x00E2 Latin Small Letter A with Circumflex
{0x20,0x55,0x56,0x55,0x78}, // (157) ~a - 0x00E3 Latin Small Letter A with Tilde
{0x20,0x55,0x54,0x55,0x78}, // (158) "a - 0x00E4 Latin Small Letter A with Diaeresis
{0x20,0x56,0x57,0x56,0x78}, // (159) a - 0x00E5 Latin Small Letter A with Ring Above
{0x24,0x54,0x78,0x54,0x58}, // (160) ae - 0x00E6 Latin Small Letter Ae
{0x0C,0x52,0x52,0x72,0x13}, // (161) c - 0x00E7 Latin Small Letter c with Cedilla
{0x38,0x55,0x56,0x54,0x18}, // (162) `e - 0x00E8 Latin Small Letter E with Grave
{0x38,0x54,0x56,0x55,0x18}, // (163) 'e - 0x00E9 Latin Small Letter E with Acute
{0x38,0x56,0x55,0x56,0x18}, // (164) ^e - 0x00EA Latin Small Letter E with Circumflex
{0x38,0x55,0x54,0x55,0x18}, // (165) "e - 0x00EB Latin Small Letter E with Diaeresis
{0x00,0x49,0x7A,0x40,0x00}, // (166) `i - 0x00EC Latin Small Letter I with Grave
{0x00,0x48,0x7A,0x41,0x00}, // (167) 'i - 0x00ED Latin Small Letter I with Acute
{0x00,0x4A,0x79,0x42,0x00}, // (168) ^i - 0x00EE Latin Small Letter I with Circumflex
{0x00,0x4A,0x78,0x42,0x00}, // (169) "i - 0x00EF Latin Small Letter I with Diaeresis
{0x31,0x4A,0x4E,0x4A,0x30}, // (170) - 0x00F0 Latin Small Letter Eth
{0x7A,0x11,0x0A,0x09,0x70}, // (171) ~n - 0x00F1 Latin Small Letter N with Tilde
{0x30,0x49,0x4A,0x48,0x30}, // (172) `o - 0x00F2 Latin Small Letter O with Grave
{0x30,0x48,0x4A,0x49,0x30}, // (173) 'o - 0x00F3 Latin Small Letter O with Acute
{0x30,0x4A,0x49,0x4A,0x30}, // (174) ^o - 0x00F4 Latin Small Letter O with Circumflex
{0x30,0x4A,0x49,0x4A,0x31}, // (175) ~o - 0x00F5 Latin Small Letter O with Tilde
{0x30,0x4A,0x48,0x4A,0x30}, // (176) "o - 0x00F6 Latin Small Letter O with Diaeresis
{0x08,0x08,0x2A,0x08,0x08}, // (177) + - 0x00F7 Division Sign
{0x38,0x64,0x54,0x4C,0x38}, // (178) o - 0x00F8 Latin Small Letter O with Stroke
{0x38,0x41,0x42,0x20,0x78}, // (179) `u - 0x00F9 Latin Small Letter U with Grave
{0x38,0x40,0x42,0x21,0x78}, // (180) 'u - 0x00FA Latin Small Letter U with Acute
{0x38,0x42,0x41,0x22,0x78}, // (181) ^u - 0x00FB Latin Small Letter U with Circumflex
{0x38,0x42,0x40,0x22,0x78}, // (182) "u - 0x00FC Latin Small Letter U with Diaeresis
{0x0C,0x50,0x52,0x51,0x3C}, // (183) 'y - 0x00FD Latin Small Letter Y with Acute
{0x7E,0x14,0x14,0x14,0x08}, // (184) p - 0x00FE Latin Small Letter Thom
{0x0C,0x51,0x50,0x51,0x3C}, // (185) "y - 0x00FF Latin Small Letter Y with Diaeresis
{0x1E,0x09,0x09,0x29,0x5E}, // (186) A - 0x0104 Latin Capital Letter A with Ogonek
{0x08,0x15,0x15,0x35,0x4E}, // (187) a - 0x0105 Latin Small Letter A with Ogonek
{0x38,0x44,0x46,0x45,0x20}, // (188) 'C - 0x0106 Latin Capital Letter C with Acute
{0x30,0x48,0x4A,0x49,0x20}, // (189) 'c - 0x0107 Latin Small Letter C with Acute
{0x38,0x45,0x46,0x45,0x20}, // (190) C - 0x010C Latin Capital Letter C with Caron
{0x30,0x49,0x4A,0x49,0x20}, // (191) c - 0x010D Latin Small Letter C with Caron
{0x7C,0x45,0x46,0x45,0x38}, // (192) D - 0x010E Latin Capital Letter D with Caron
{0x20,0x50,0x50,0x7C,0x03}, // (193) d' - 0x010F Latin Small Letter D with Caron
{0x1F,0x15,0x15,0x35,0x51}, // (194) E - 0x0118 Latin Capital Letter E with Ogonek
{0x0E,0x15,0x15,0x35,0x46}, // (195) e - 0x0119 Latin Small Letter E with Ogonek
{0x7C,0x55,0x56,0x55,0x44}, // (196) E - 0x011A Latin Capital Letter E with Caron
{0x38,0x55,0x56,0x55,0x18}, // (197) e - 0x011B Latin Small Letter E with Caron
{0x00,0x44,0x7C,0x40,0x00}, // (198) i - 0x0131 Latin Small Letter Dotless I
{0x7F,0x48,0x44,0x40,0x40}, // (199) L - 0x0141 Latin Capital Letter L with Stroke
{0x00,0x49,0x7F,0x44,0x00}, // (200) l - 0x0142 Latin Small Letter L with Stroke
{0x7C,0x08,0x12,0x21,0x7C}, // (201) 'N - 0x0143 Latin Capital Letter N with Acute
{0x78,0x10,0x0A,0x09,0x70}, // (202) 'n - 0x0144 Latin Small Letter N with Acute
{0x7C,0x09,0x12,0x21,0x7C}, // (203) N - 0x0147 Latin Capital Letter N with Caron
{0x78,0x11,0x0A,0x09,0x70}, // (204) n - 0x0148 Latin Small Letter N with Caron
{0x38,0x47,0x44,0x47,0x38}, // (205) "O - 0x0150 Latin Capital Letter O with Double Acute
{0x30,0x4B,0x48,0x4B,0x30}, // (206) "o - 0x0151 Latin Small Letter O with Double Acute
{0x3E,0x41,0x7F,0x49,0x49}, // (207) OE - 0x0152 Latin Capital Ligature Oe
{0x38,0x44,0x38,0x54,0x58}, // (208) oe - 0x0153 Latin Small Ligature Oe
{0x7C,0x15,0x16,0x35,0x48}, // (209) R - 0x0158 Latin Capital Letter R with Caron
{0x78,0x11,0x0A,0x09,0x10}, // (210) r - 0x0159 Latin Small Letter R with Caron
{0x48,0x54,0x56,0x55,0x20}, // (211) 'S - 0x015A Latin Capital Letter S with Acute
{0x20,0x48,0x56,0x55,0x20}, // (212) 's - 0x015B Latin Small Letter S with Acute
{0x48,0x55,0x56,0x55,0x20}, // (213) S - 0x0160 Latin Capital Letter S with Caron
{0x20,0x49,0x56,0x55,0x20}, // (214) s - 0x0161 Latin Small Letter S with Caron
{0x04,0x05,0x7E,0x05,0x04}, // (215) T - 0x0164 Latin Capital Letter T with Caron
{0x08,0x3C,0x48,0x22,0x01}, // (216) t' - 0x0165 Latin Small Letter T with Caron
{0x3C,0x42,0x45,0x42,0x3C}, // (217) U - 0x016E Latin Capital Letter U with Ring Above
{0x38,0x42,0x45,0x22,0x78}, // (218) u - 0x016F Latin Small Letter U with Ring Above
{0x3C,0x43,0x40,0x43,0x3C}, // (219) "U - 0x0170 Latin Capital Letter U with Double Acute
{0x38,0x43,0x40,0x23,0x78}, // (220) "u - 0x0171 Latin Small Letter U with Double Acute
{0x0C,0x11,0x60,0x11,0x0C}, // (221) "Y - 0x0178 Latin Capital Letter Y with Diaeresis
{0x44,0x66,0x55,0x4C,0x44}, // (222) 'Z - 0x0179 Latin Capital Letter Z with Acute
{0x48,0x6A,0x59,0x48,0x00}, // (223) 'z - 0x017A Latin Small Letter Z with Acute
{0x44,0x64,0x55,0x4C,0x44}, // (224) Z - 0x017B Latin Capital Letter Z with Dot Above
{0x48,0x68,0x5A,0x48,0x00}, // (225) z - 0x017C Latin Small Letter Z with Dot Above
{0x44,0x65,0x56,0x4D,0x44}, // (226) Z - 0x017D Latin Capital Letter Z with Caron
{0x48,0x69,0x5A,0x49,0x00}, // (227) z - 0x017E Latin Small Letter Z with Caron
{0x00,0x02,0x01,0x02,0x00}, // (228) ^ - 0x02C6 Modifier Letter Circumflex Accent
{0x00,0x01,0x02,0x01,0x00}, // (229) - 0x02C7 Caron
{0x00,0x01,0x01,0x01,0x00}, // (230) - 0x02C9 Modifier Letter Macron
{0x01,0x02,0x02,0x01,0x00}, // (231) - 0x02D8 Breve
{0x00,0x00,0x01,0x00,0x00}, // (232) - 0x02D9 Dot Above
{0x00,0x02,0x05,0x02,0x00}, // (233) - 0x02DA Ring Above
{0x02,0x01,0x02,0x01,0x00}, // (234) ~ - 0x02DC Small Tilde
{0x7F,0x05,0x15,0x3A,0x50}, // (235) Pt - 0x20A7 Peseta Sign
{0x3E,0x55,0x55,0x41,0x22}, // (236) C - 0x20AC Euro Sign
{0x18,0x14,0x08,0x14,0x0C}, // (237) - 0x221E Infinity
{0x44,0x4A,0x4A,0x51,0x51}, // (238) < - 0x2264 Less-Than or Equal to
{0x51,0x51,0x4A,0x4A,0x44}, // (239) > - 0x2265 Greater-Than or Equal to
{0x74,0x42,0x41,0x42,0x74}, // (240) - 0x2302 House
};
3、OLED_DisStrLine(0, 0, (uint8_t *)menu.title); //show the content
/*******************************************************************************
* Function Name : OLED_DisStrLine
* Description : Displays a maximum of 21 char on the OLED.
* Input : - Line: the Line where to display the character shape .
* This parameter can be one of the following values:
* - Linex: where x can be 0..9
* - Color: display color
* - 0: dot is yellow or blue
* - 1: dot is black
* - *ptr: pointer to string to display on LCD.
* Output : None
* Return : None
*******************************************************************************/
void OLED_DisStrLine(uint8_t Line, uint8_t Color, uint8_t *ptr)
{
uint16_t refcolumn = 0;
if(Line < 8)
{
/* Send the string character by character on OLED */
while ((*ptr != 0) & (((refcolumn + 1) & 0xFFFF) < 128))
{
/* Display one character on OLED */
OLED_DisChar(Line, refcolumn, Color, *ptr);
/* Increment the column position by 6 */
refcolumn += 6;
/* Point on the next character */
ptr++;
}
}
}
最后
以上就是彪壮西牛为你收集整理的[Linux项目实践] 物联网单板测试:OLED Dis_Menu的全部内容,希望文章能够帮你解决[Linux项目实践] 物联网单板测试:OLED Dis_Menu所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复