STM32F4LCD12864串行并行驱动程序合集Word文档格式.docx
- 文档编号:19025630
- 上传时间:2023-01-03
- 格式:DOCX
- 页数:46
- 大小:31.14KB
STM32F4LCD12864串行并行驱动程序合集Word文档格式.docx
《STM32F4LCD12864串行并行驱动程序合集Word文档格式.docx》由会员分享,可在线阅读,更多相关《STM32F4LCD12864串行并行驱动程序合集Word文档格式.docx(46页珍藏版)》请在冰豆网上搜索。
#defineCGRAM_Value64//写入CGRAM数量
u8CGROM_Code[]={
//电量100Percent(add_h=0,add_l=0)
0x00,0x00,0x00,0x00,0xFF,0xFE,0x80,0x02,0xB6,0xDA,0xB6,0xDB,0xB6,0xDB,0xB6,0xDB,
0xB6,0xDB,0xB6,0xDB,0xB6,0xDB,0xB6,0xDA,0x80,0x02,0xFF,0xFE,0x00,0x00,0x00,0x00,
//月亮图形(add_h=0,add_l=2)
0x01,0x80,0x07,0x00,0x0E,0x00,0x1C,0x00,0x3C,0x00,0x78,0x00,0x78,0x00,0x78,0x00,
0x78,0x00,0x7C,0x00,0x7C,0x00,0x3E,0x00,0x1F,0x00,0x0F,0x80,0x03,0xF0,0x00,0x30,
//存储设备(add_h=0,add_l=4)
0x00,0x00,0x0F,0xF8,0x08,0x08,0x0B,0x68,0x08,0x08,0x3F,0xFE,0x3F,0xFE,0x3F,0xFE,
0x3F,0xFE,0x3F,0xFE,0x3F,0xFE,0x3F,0xFE,0x1F,0xFC,0x0F,0xF8,0x07,0xF0,0x03,0xE0,
//天线图形(add_h=0,add_l=6)
0x10,0x10,0x20,0x08,0x40,0x04,0x84,0x42,0x88,0x22,0x90,0x12,0x93,0x92,0x93,0x92,
0x91,0x12,0x88,0x22,0x85,0x42,0x41,0x04,0x21,0x08,0x11,0x10,0x03,0x80,0x03,0x80
//CD图形
//0xff,0xff,0xff,0xff,0xff,0xff,0xe3,0x07,0xc9,0xb3,0x9d,0xb9,0x9f,0xb9,0x9f,0xb9,
//0x9f,0xb9,0x9f,0xb9,0x9d,0xb9,0xc9,0xb3,0xe3,0x07,0xff,0xff,0xff,0xff,0xff,0xff,
//右指向手型
//0x00,0x00,0x1e,0x00,0x12,0x00,0x73,0xfc,0x52,0x02,0x52,0x1c,0x53,0xe0,0x52,0x10,
//0x53,0xe0,0x52,0x10,0x53,0xe0,0x52,0x10,0x73,0xe0,0x12,0x00,0x1e,0x00,0x00,0x00
//摄氏图形
//0x00,0x00,0x00,0x00,0x00,0x00,0x1c,0x70,0x14,0xd8,0x1d,0x88,0x01,0x80,0x01,0x80,
//0x01,0x80,0x01,0x80,0x01,0x88,0x00,0xc8,0x00,0x70,0x00,0x00,0x00,0x00,0x00,0x00,
//天线图形1
//0xff,0xff,0x80,0x01,0xbf,0xfd,0xdf,0xfb,0xec,0x37,0xf6,0x6f,0xfb,0xdf,0xfd,0xbf,
//0xfe,0x7f,0xfe,0x7f,0xfe,0x7f,0xfe,0x7f,0xfe,0x7f,0xfe,0x7f,0xfe,0x7f,0xff,0xff,
//蓝牙图形
//0x07,0xe0,0x0e,0x70,0x1e,0xb8,0x3e,0xdc,0x36,0xec,0x3a,0xdc,0x3c,0xbc,0x3e,0x7c,
//0x3e,0x7c,0x3c,0xbc,0x3a,0xdc,0x36,0xec,0x3e,0xdc,0x1e,0xb8,0x0e,0x70,0x07,0xe0,
};
u8constClearCGRAM[]={
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
u8constSunIcon[]={
0x00,0x80,0x40,0x82,0x20,0x84,0x10,0x08,0x03,0xC0,0x07,0xE0,0x0F,0xF0,0xEF,0xF7,
0x0F,0xF0,0x0F,0xF0,0x07,0xE0,0x03,0xC0,0x10,0x08,0x20,0x84,0x40,0x82,0x00,0x80
u8constMoonIcon[]={
u8constAntennaIcon[]={
u8constWIFIConnection[]={
0x00,0x00,0x00,0x00,0x0F,0xF0,0x3F,0xFC,0x70,0x0E,0xE0,0x07,0x07,0xE0,0x0F,0xF0,
0x1C,0x38,0x00,0x00,0x01,0x80,0x03,0xC0,0x03,0xC0,0x03,0xC0,0x00,0x00,0x00,0x00
u8constBattery_100Percent[]={
0xB6,0xDB,0xB6,0xDB,0xB6,0xDB,0xB6,0xDA,0x80,0x02,0xFF,0xFE,0x00,0x00,0x00,0x00
u8constBattery_80Percent[]={
0x00,0x00,0x00,0x00,0xFF,0xFE,0x80,0x02,0xB6,0xC2,0xB6,0xC3,0xB6,0xC3,0xB6,0xC3,
0xB6,0xC3,0xB6,0xC3,0xB6,0xC3,0xB6,0xC2,0x80,0x02,0xFF,0xFE,0x00,0x00,0x00,0x00
u8constBattery_60Percent[]={
0x00,0x00,0x00,0x00,0xFF,0xFE,0x80,0x02,0xB6,0x02,0xB6,0x03,0xB6,0x03,0xB6,0x03,
0xB6,0x03,0xB6,0x03,0xB6,0x03,0xB6,0x02,0x80,0x02,0xFF,0xFE,0x00,0x00,0x00,0x00
u8constBattery_40Percent[]={
0x00,0x00,0x00,0x00,0xFF,0xFE,0x80,0x02,0xB0,0x02,0xB0,0x03,0xB0,0x03,0xB0,0x03,
0xB0,0x03,0xB0,0x03,0xB0,0x03,0xB0,0x02,0x80,0x02,0xFF,0xFE,0x00,0x00,0x00,0x00
u8constBattery_20Percent[]={
0x00,0x00,0x00,0x00,0xFF,0xFE,0x80,0x02,0x80,0x02,0x80,0x03,0x80,0x03,0x80,0x03,
0x80,0x03,0x80,0x03,0x80,0x03,0x80,0x02,0x80,0x02,0xFF,0xFE,0x00,0x00,0x00,0x00
u8constASCII_Table[]={
0x00,0x00,0x00,0x18,0x24,0x42,0x42,0x42,0x42,0x42,0x42,0x42,0x24,0x18,0x00,0x00,/*"
0"
0*/
0x00,0x00,0x00,0x10,0x70,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x7C,0x00,0x00,/*"
1"
1*/
0x00,0x00,0x00,0x3C,0x42,0x42,0x42,0x04,0x04,0x08,0x10,0x20,0x42,0x7E,0x00,0x00,/*"
2"
2*/
0x00,0x00,0x00,0x3C,0x42,0x42,0x04,0x18,0x04,0x02,0x02,0x42,0x44,0x38,0x00,0x00,/*"
3"
3*/
0x00,0x00,0x00,0x04,0x0C,0x14,0x24,0x24,0x44,0x44,0x7E,0x04,0x04,0x1E,0x00,0x00,/*"
4"
4*/
0x00,0x00,0x00,0x7E,0x40,0x40,0x40,0x58,0x64,0x02,0x02,0x42,0x44,0x38,0x00,0x00,/*"
5"
5*/
0x00,0x00,0x00,0x1C,0x24,0x40,0x40,0x58,0x64,0x42,0x42,0x42,0x24,0x18,0x00,0x00,/*"
6"
6*/
0x00,0x00,0x00,0x7E,0x44,0x44,0x08,0x08,0x10,0x10,0x10,0x10,0x10,0x10,0x00,0x00,/*"
7"
7*/
0x00,0x00,0x00,0x3C,0x42,0x42,0x42,0x24,0x18,0x24,0x42,0x42,0x42,0x3C,0x00,0x00,/*"
8"
8*/
0x00,0x00,0x00,0x18,0x24,0x42,0x42,0x42,0x26,0x1A,0x02,0x02,0x24,0x38,0x00,0x00/*"
9"
9*/
u8LCD12864_LockedFlag;
//LCD12864lockedflag
//=========================================================
voidLCD_delay_1us()
{
inti=200;
//最小90可以稳定工作
while(i--);
}
voidLCD_delay_nus(intnus)
while(nus--)LCD_delay_1us();
#ifdefLCD_Work_Mode_Parallel//如果定义了,则使用并口工作模式
GPIO_InitTypeDefGPIOStru;
//定义用于定义所以引脚为输出的变量
*函数功能--->
把所有数据端口初始化为推挽输出模式的函数。
*入口参数--->
none
*返回数值--->
*功能说明--->
voidLCDDataBus_OUT(void)
RCC_APB2PeriphClockCmd(DataBusGPIOCLK,ENABLE);
GPIOStru.GPIO_Pin=DataBusPins;
//LCD数据端口对应的引脚
GPIOStru.GPIO_Mode=GPIO_Mode_OUT;
//普通输出模式
GPIOStru.GPIO_OType=GPIO_OType_PP;
//推挽输出
GPIOStru.GPIO_Speed=GPIO_Speed_100MHz;
//100MHz
GPIOStru.GPIO_PuPd=GPIO_PuPd_UP;
//上拉
GPIO_Init(DataBusGPIO,&
GPIOStru);
把数据引脚初始化为浮空输入的函数
voidLCDDataBus_IN(void)
GPIOStru.GPIO_Mode=GPIO_Mode_IN;
//普通输入模式
GPIOStru.GPIO_OType=GPIO_OType_OD;
//开漏模式
GPIOStru.GPIO_PuPd=GPIO_PuPd_NOPULL;
//无上下拉
LCD12864判断忙
voidLCD_Check_Busy(void)
staticu16busytimeout;
//忙超时
//=====================================================
LCDDataBus_IN();
//把数据引脚定义为浮空输入
do
{
busytimeout++;
if(busytimeout>
300)break;
LCD_RS=0;
LCD_Delay();
LCD_RW=1;
LCD_EN=1;
}while(GPIO_ReadInputData(DataBusGPIO)&
DataBusPin7);
//等待LCD忙完
LCD_EN=0;
LCDDataBus_OUT();
//把数据引脚定义为输出
if(busytimeout>
=300)printf("
LCDBusyTimeOut...\r\n"
);
busytimeout=0;
LCD写入一个字节命令或者数据,判断忙标志(8位数据一次发送完毕)
dat:
要写入的字节
*ord:
判断dat是命令还是数据依据,“0”为命令,“1”为数据
voidLCD_Write_Byte(u8dat,u8ord)
LCD_Check_Busy();
//判断是否在忙?
LCD_EN=0;
LCD_Delay();
LCD_RW=0;
if(ord&
0x01)LCD_RS=1;
//放上数据或者命令判断位
elseLCD_RS=0;
LCD_EN=1;
LCDWriteData(dat);
//放入数据
#else//没定义则使用串口通讯模式
#ifdefLCD_Work_Mode_HardSPI//串行模式-采用硬件SPI
//=========================================================
/**********************************************************
*函数功能--->
初始化硬件SPI1模块,配置为主机模式
*入口参数--->
*返回数值--->
*功能说明--->
**********************************************************/
voidSPI1_Init(void)
{
GPIO_InitTypeDefGPIO_InitStructure;
SPI_InitTypeDefSPI_InitStructure;
RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOB,ENABLE);
//使能GPIOB时钟
RCC_APB2PeriphClockCmd(RCC_APB2Periph_SPI1,ENABLE);
//使能SPI1时钟
//GPIOB3,5初始化设置(仅使用SCK,MOSI引脚)
GPIO_InitStructure.GPIO_Pin=GPIO_Pin_3|GPIO_Pin_5;
//PB3~5复用功能输出
GPIO_InitStructure.GPIO_Mode=GPIO_Mode_AF;
//复用功能
GPIO_InitStructure.GPIO_OType=GPIO_OType_PP;
GPIO_InitStructure.GPIO_Speed=GPIO_Speed_100MHz;
//100MHz
GPIO_InitStructure.GPIO_PuPd=GPIO_PuPd_UP;
GPIO_Init(GPIOB,&
GPIO_InitStructure);
//初始化
GPIO_PinAFConfig(GPIOB,GPIO_PinSource3,GPIO_AF_SPI1);
//PB3复用为SPI1(SCK)
//GPIO_PinAFConfig(GPIOB,GPIO_PinSource4,GPIO_AF_SPI1);
//PB4复用为SPI1(MISO)
GPIO_PinAFConfig(GPIOB,GPIO_PinSource5,GPIO_AF_SPI1);
//PB5复用为SPI1(MOSI)
//这里只针对SPI口初始化
RCC_APB2PeriphResetCmd(RCC_APB2Periph_SPI1,ENABLE);
//复位SPI1
RCC_APB2PeriphResetCmd(RCC_APB2Per
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- STM32F4LCD12864 串行 并行 驱动程序