STM32驱动12864液晶屏.docx
- 文档编号:18252132
- 上传时间:2023-08-14
- 格式:DOCX
- 页数:9
- 大小:16.91KB
STM32驱动12864液晶屏.docx
《STM32驱动12864液晶屏.docx》由会员分享,可在线阅读,更多相关《STM32驱动12864液晶屏.docx(9页珍藏版)》请在冰点文库上搜索。
STM32驱动12864液晶屏
STM32驱动12864液晶屏
#include"stm32f10x_lib.h"
#defineuintunsignedint
#defineucharunsignedchar
#defineRSH GPIO_SetBits(GPIOA,GPIO_Pin_0)
#defineRSL GPIO_ResetBits(GPIOA,GPIO_Pin_0)
#defineRWH GPIO_SetBits(GPIOA,GPIO_Pin_1)
#defineRWL GPIO_ResetBits(GPIOA,GPIO_Pin_1)
#defineENH GPIO_SetBits(GPIOA,GPIO_Pin_2)
#defineENL GPIO_ResetBits(GPIOA,GPIO_Pin_2)
#defineCS1H GPIO_SetBits(GPIOA,GPIO_Pin_3)
#defineCS1L GPIO_ResetBits(GPIOA,GPIO_Pin_3)
#defineCS2H GPIO_SetBits(GPIOA,GPIO_Pin_4)
#defineCS2L GPIO_ResetBits(GPIOA,GPIO_Pin_4)
voidRCC_Configuration(void);
voidNVIC_Configuration(void);
voidGPIO_Configuration(void);
voidDelay();
uchar table[][16]={
/*-- 文字:
我 --*/
/*-- 宋体12; 此字体下对应的点阵为:
宽x高=16x16 --*/
0x20,0x20,0x22,0x22,0xFE,0x21,0x21,0x20,0x20,0xFF,0x20,0x22,0xAC,0x20,0x20,0x00,
0x04,0x04,0x42,0x82,0x7F,0x01,0x01,0x10,0x10,0x08,0x07,0x1A,0x21,0x40,0xF0,0x00,/*-- 文字:
爸 --*/
/*-- 文字:
一 --*/
/*-- 宋体12; 此字体下对应的点阵为:
宽x高=16x16 --*/
0x00,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0xC0,0x80,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
/*-- 文字:
天 --*/
/*-- 宋体12; 此字体下对应的点阵为:
宽x高=16x16 --*/
0x00,0x40,0x42,0x42,0x42,0x42,0x42,0xFE,0x42,0x42,0x42,0x42,0x42,0x42,0x40,0x00,
0x00,0x80,0x40,0x20,0x10,0x08,0x06,0x01,0x02,0x04,0x08,0x10,0x30,0x60,0x20,0x00,
/*-- 文字:
的 --*/
/*-- 宋体12; 此字体下对应的点阵为:
宽x高=16x16 --*/
0x00,0xF8,0x8C,0x8B,0x88,0xF8,0x40,0x30,0x8F,0x08,0x08,0x08,0x08,0xF8,0x00,0x00,
0x00,0x7F,0x10,0x10,0x10,0x3F,0x00,0x00,0x00,0x03,0x26,0x40,0x20,0x1F,0x00,0x00,
/*-- 文字:
成 --*/
/*-- 宋体12; 此字体下对应的点阵为:
宽x高=16x16 --*/
0x00,0x00,0xF8,0x48,0x48,0x48,0xC8,0x08,0xFF,0x08,0x09,0x0A,0xC8,0x88,0x08,0x00,
0x40,0x30,0x0F,0x00,0x08,0x50,0x4F,0x20,0x10,0x0B,0x0C,0x12,0x21,0x40,0xF0,0x00,
/*-- 文字:
果 --*/
/*-- 宋体12; 此字体下对应的点阵为:
宽x高=16x16 --*/
0x00,0x00,0x00,0x3E,0x2A,0x2A,0x2A,0xFE,0x2A,0x2A,0x2A,0x3E,0x00,0x00,0x00,0x00,
0x21,0x21,0x11,0x11,0x09,0x05,0x03,0xFF,0x03,0x05,0x09,0x09,0x11,0x31,0x11,0x00,
};
voidWrite_cmd_left(ucharcmd)
{
RSL;
RWL;
CS1H;
GPIO_Write(GPIOF,cmd);
ENL;
Delay(50);
ENH;
Delay(50);
ENL;
Delay(50);
CS1L;
}
voidWrite_cmd_right(ucharcmd)
{
RSL;
RWL;
CS2H;
GPIO_Write(GPIOF,cmd);
ENL;
Delay(50);
ENH;
Delay(50);
ENL;
Delay(50);
CS2L;
}
voidWrite_data_left(uchardata)
{
RSH;
RWL;
CS2L;
CS1H;
GPIO_Write(GPIOF,data);
ENL;
Delay(50);
ENH;
Delay(50);
ENL;
Delay(50);
CS1L;
}
voidWrite_data_right(uchardata)
{
RSH;
RWL;
CS1L;
CS2H;
GPIO_Write(GPIOF,data);
ENL;
Delay(50);
ENH;
Delay(50);
ENL;
Delay(50);
CS2L;
}
voidled_disp(uchar*p,ucharlr)
{
uchari,cl,cr;
if(lr=='L')
{
for(i=0;i<16;i++)
{
cl=*p;
p++;
Write_data_left(cl);
}
}
if(lr=='R')
{
for(i=0;i<16;i++)
{
cr=*p;
p++;
Write_data_right(cr);
}
}
}
voidclear()
{
uchari,j,disp_page;
for(i=0;i<8;i++)
{
disp_page=0xb8+i;
Write_cmd_left(disp_page);
Write_cmd_left(0x40);
for(j=0;j<64;j++)
Write_data_left(0x00);
}
for(i=0;i<8;i++)
{
disp_page=0xb8+i;
Write_cmd_right(disp_page);
Write_cmd_right(0x40);
for(j=0;j<64;j++)
Write_data_right(0x00);
}
}
voidinit()
{
Write_cmd_left(0x30);
Delay(10);
Write_cmd_right(0x30);
Delay(10);
Write_cmd_left(0x3f);
Delay(10);
Write_cmd_right(0x3f);
Delay(10);
Write_cmd_left(0xc0);
Delay(10);
Write_cmd_right(0xc0);
}
intmain(void)
{
/*Infiniteloop*/
RCC_Configuration();
NVIC_Configuration();
GPIO_Configuration();
clear();
Delay(10);
init();
Delay(10);
uchari;
while
(1)
{
Write_cmd_left(0xb8);
Write_cmd_left(0x40);
for(i=0;i<4;i++)
led_disp(table[2*i],'L');
Write_cmd_left(0xb8+1);
Write_cmd_left(0x40);
for(i=0;i<4;i++)
led_disp(table[2*i+1],'L');
Write_cmd_right(0xb8);
Write_cmd_right(0x40);
for(i=0;i<2;i++)
led_disp(table[2*i+8],'R');
Write_cmd_right(0xb8+1);
Write_cmd_right(0x40);
for(i=0;i<2;i++)
led_disp(table[2*i+9],'R');
}
}
/******************************************************************************
*Function Name :
RCC_Configuration.
*Descriprion :
configuresthedifferentsystemclocks.
*Input :
None
*Output :
None
*Return :
None
*******************************************************************************/
voidRCC_Configuration(void)
{
ErrorStatusHSEStartUpStatus;
/*RCCsystemreset(fordebugpurpose)*/
RCC_DeInit();
/*EnableHSE 打开外部时钟*/
RCC_HSEConfig(RCC_HSE_ON);
/*WaittillHSEisread*/
HSEStartUpStatus=RCC_WaitForHSEStartUp();
if(HSEStartUpStatus==SUCCESS)//起振成功
{
/*EnablePrefetchBuffer打开flash的预存储功能*/
FLASH_PrefetchBufferCmd(FLASH_PrefetchBuffer_Enable);
FLASH_SetLatency(FLASH_Latency_2);//设置代码延时值
/*HCLK=syclk*/
RCC_HCLKConfig(RCC_SYSCLK_Div1);
/*PCLK2=HCLK*/
RCC_PCLK2Config(RCC_HCLK_Div1);
/*RCLK1=HCLK*/
RCC_PCLK1Config(RCC_HCLK_Div2);
/*PLLCLK=8MHZ*9=72MHZ*/
RCC_PLLConfig(RCC_PLLSource_HSE_Div1,RCC_PLLMul_9);
/*EnablePLL*/
RCC_PLLCmd(ENABLE);
/*WaittillPLLisready*/
while(RCC_GetFlagStatus(RCC_FLAG_PLLRDY)==RESET)
{
}
/*SelectPLLassystemclocksource*/
RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK);
/*Waittillpllusedassystemclocksource*/
while(RCC_GetSYSCLKSource()!
=0x80)
{
}
/*打开相应的外部时钟:
GPIOF*/
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOF,ENABLE);
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);
}
else
{
}
}
/******************************************************************************
*Function Name :
NVIC_Configuration.
*Descriprion :
configuresVectorTablebaselocation.
*Input :
None
*Output :
None
*Return :
None
*******************************************************************************/
voidNVIC_Configuration(void)
{
#ifdefVECT_TAB_RAM
/*Setthevectortablebaselocationat0x20000000*/
NVIC_SetVectorTable(NVIC_VectTab_RAM,0X0);
#else
/*Setthevectortablebaselocationat0x20000000*/
NVIC_SetVectorTable(NVIC_VectTab_FLASH,0x0);
#endif
}
voidGPIO_Configuration(void)
{
GPIO_InitTypeDefGPIO_InitStructure;
GPIO_InitStructure.GPIO_Pin=GPIO_Pin_All;
GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP; //设置GPIO的工作状态
GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz; //设置GPIO的速度
GPIO_Init(GPIOF,&GPIO_InitStructure);
GPIO_Init(GPIOA,&GPIO_InitStructure);
}
/******************************************************************************
延时函数
******************************************************************************/
voidDelay(uintz)
{
uintx,y;
for(x=z;x>0;x--)
for(y=100;y>0;y--);
}
以上是鑫洪泰的小编为你带来的液晶屏ST7565RIC驱动程序演示代码介绍,如果你想有更进一步的了解,请您关注我们微信,或者点击我们官网了解我们,也可以在线咨询或者拨打我们的热线电话与我们联系!
我们会有专业的工作人员为你实时解答。
给您最好的最专业的解答!
深圳市鑫洪泰电子科技有限公司,是一家专业从事LCD和LCM研发、生产、销售和售后于一体的高科技民营企业。
以人为本,以质为纲,以客为尊,是我们至今秉承的经营理念。
公司拥有一支经验丰富的研发、销售和生产管理人员,并具备成熟的生产工艺和先进的智能化进口专业生产设备。
我们承接各种TN、HTN、STN、FSTN、TAB、COG、CSTN、TFT液晶屏的开发设计、开模定制、单片机开发及LCD的来料加工。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- STM32 驱动 12864 液晶屏
![提示](https://static.bingdoc.com/images/bang_tan.gif)