外设篇 18LCD彩色液晶屏显示汉字英文数字9325.docx

上传人:b****7 文档编号:11248847 上传时间:2023-02-26 格式:DOCX 页数:18 大小:19.39KB
下载 相关 举报
外设篇 18LCD彩色液晶屏显示汉字英文数字9325.docx_第1页
第1页 / 共18页
外设篇 18LCD彩色液晶屏显示汉字英文数字9325.docx_第2页
第2页 / 共18页
外设篇 18LCD彩色液晶屏显示汉字英文数字9325.docx_第3页
第3页 / 共18页
外设篇 18LCD彩色液晶屏显示汉字英文数字9325.docx_第4页
第4页 / 共18页
外设篇 18LCD彩色液晶屏显示汉字英文数字9325.docx_第5页
第5页 / 共18页
点击查看更多>>
下载资源
资源描述

外设篇 18LCD彩色液晶屏显示汉字英文数字9325.docx

《外设篇 18LCD彩色液晶屏显示汉字英文数字9325.docx》由会员分享,可在线阅读,更多相关《外设篇 18LCD彩色液晶屏显示汉字英文数字9325.docx(18页珍藏版)》请在冰豆网上搜索。

外设篇 18LCD彩色液晶屏显示汉字英文数字9325.docx

外设篇18LCD彩色液晶屏显示汉字英文数字9325

#include"pbdata.h"//外设篇18.LCD彩色液晶屏显示汉字、英文、数字9325

voidRCC_Configuration(void);

voidGPIO_Configuration(void);

voidNVIC_Configuration(void);

voidUSART_Configuration(void);

intfputc(intch,FILE*f)

{USART_SendData(USART1,(u8)ch);

while(USART_GetFlagStatus(USART1,USART_FLAG_TXE)==RESET);

returnch;

}

intmain(void)

{u8i=0;

RCC_Configuration();//系统时钟初始化

GPIO_Configuration();//端口初始化

USART_Configuration();

NVIC_Configuration();

FSMC_Configuration();

ILI9325_Init();

delay_ms(1000);

ILI_9325_CLEAR(WHITE);

for(i=0;i<4;i++)

{show_Font(30+i*50,50,i,RED,WHITE);}

for(i=0;i<15;i++)

{show_Str(10+i*15,100,i,RED,WHITE);}

while

(1)

{delay_ms(200);

TFT_Draw_Rectangle(10,150,230,160,RED);

delay_ms(200);

TFT_Draw_Rectangle(10,150,230,160,BLUE);

delay_ms(200);

TFT_Draw_Rectangle(10,150,230,160,GREEN);

}

}

voidRCC_Configuration(void)

{SystemInit();//72m

RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);

RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOD,ENABLE);

RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOE,ENABLE);

RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1,ENABLE);

RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO,ENABLE);

RCC_AHBPeriphClockCmd(RCC_AHBPeriph_FSMC,ENABLE);

}

voidGPIO_Configuration(void)

{GPIO_InitTypeDefGPIO_InitStructure;

//LED

GPIO_InitStructure.GPIO_Pin=GPIO_Pin_9;//TX

GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;

GPIO_InitStructure.GPIO_Mode=GPIO_Mode_AF_PP;

GPIO_Init(GPIOA,&GPIO_InitStructure);

GPIO_InitStructure.GPIO_Pin=GPIO_Pin_10;//RX

GPIO_InitStructure.GPIO_Mode=GPIO_Mode_IN_FLOATING;

GPIO_Init(GPIOA,&GPIO_InitStructure);

//FSMC管脚初始化

GPIO_InitStructure.GPIO_Pin=GPIO_Pin_13;

GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;

GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP;

GPIO_Init(GPIOD,&GPIO_InitStructure);

GPIO_SetBits(GPIOD,GPIO_Pin_13);//打开背光

GPIO_InitStructure.GPIO_Pin=GPIO_Pin_1;//复位

GPIO_Init(GPIOE,&GPIO_InitStructure);

//启用fsmc复用功能复用上拉模式

GPIO_InitStructure.GPIO_Pin=GPIO_Pin_14//D0

|GPIO_Pin_15//D1

|GPIO_Pin_0//D2

|GPIO_Pin_1//D3

|GPIO_Pin_8//D13

|GPIO_Pin_9//D14

|GPIO_Pin_10;//D15

GPIO_InitStructure.GPIO_Mode=GPIO_Mode_AF_PP;

GPIO_Init(GPIOD,&GPIO_InitStructure);

GPIO_InitStructure.GPIO_Pin=GPIO_Pin_7//D4

|GPIO_Pin_8//D5

|GPIO_Pin_9//D6

|GPIO_Pin_10//D7

|GPIO_Pin_11//D8

|GPIO_Pin_12//D9

|GPIO_Pin_13//D10

|GPIO_Pin_14//D11

|GPIO_Pin_15;//D12

GPIO_Init(GPIOE,&GPIO_InitStructure);

GPIO_InitStructure.GPIO_Pin=GPIO_Pin_11//RS

|GPIO_Pin_4//nOE

|GPIO_Pin_5;//nWE

GPIO_Init(GPIOD,&GPIO_InitStructure);

GPIO_InitStructure.GPIO_Pin=GPIO_Pin_7;//NE1

GPIO_Init(GPIOD,&GPIO_InitStructure);

}

voidNVIC_Configuration(void)

{NVIC_InitTypeDefNVIC_InitStructure;

NVIC_PriorityGroupConfig(NVIC_PriorityGroup_1);

NVIC_InitStructure.NVIC_IRQChannel=USART1_IRQn;

NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=0;

NVIC_InitStructure.NVIC_IRQChannelSubPriority=1;

NVIC_InitStructure.NVIC_IRQChannelCmd=ENABLE;

NVIC_Init(&NVIC_InitStructure);

}

voidUSART_Configuration(void)

{

USART_InitTypeDefUSART_InitStructure;

USART_InitStructure.USART_BaudRate=9600;

USART_InitStructure.USART_WordLength=USART_WordLength_8b;

USART_InitStructure.USART_StopBits=USART_StopBits_1;

USART_InitStructure.USART_Parity=USART_Parity_No;

USART_InitStructure.USART_HardwareFlowControl=USART_HardwareFlowControl_None;

USART_InitStructure.USART_Mode=USART_Mode_Rx|USART_Mode_Tx;

USART_Init(USART1,&USART_InitStructure);

USART_ITConfig(USART1,USART_IT_RXNE,ENABLE);

USART_Cmd(USART1,ENABLE);

USART_ClearFlag(USART1,USART_FLAG_TC);

}

#include"pbdata.h"

u8dt=0;

voidRCC_HSE_Configuration(void)//HSE作为PLL时钟,PLL作为SYSCLK

{RCC_DeInit();/*将外设RCC寄存器重设为缺省值*/

RCC_HSEConfig(RCC_HSE_ON);/*设置外部高速晶振(HSE)HSE晶振打开(ON)*/

if(RCC_WaitForHSEStartUp()==SUCCESS){/*等待HSE起振,SUCCESS:

HSE晶振稳定且就绪*/

RCC_HCLKConfig(RCC_SYSCLK_Div1);/*设置AHB时钟(HCLK)RCC_SYSCLK_Div1——AHB时钟=系统时*/

RCC_PCLK2Config(RCC_HCLK_Div1);/*设置高速AHB时钟(PCLK2)RCC_HCLK_Div1——APB2时钟=HCLK*/

RCC_PCLK1Config(RCC_HCLK_Div2);/*设置低速AHB时钟(PCLK1)RCC_HCLK_Div2——APB1时钟=HCLK/2*/

RCC_PLLConfig(RCC_PLLSource_HSE_Div1,RCC_PLLMul_9);/*设置PLL时钟源及倍频系数*/

RCC_PLLCmd(ENABLE);/*使能PLL*/

while(RCC_GetFlagStatus(RCC_FLAG_PLLRDY)==RESET);/*检查指定的RCC标志位(PLL准备好标志)设置与否*/

RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK);/*设置系统时钟(SYSCLK)*/

while(RCC_GetSYSCLKSource()!

=0x08);/*0x08:

PLL作为系统时钟*/

}}

voiddelay(u32nCount)

{for(;nCount!

=0;nCount--);}

/****************************************************************************

*名称:

delay_us(u32nus)

*功能:

微秒延时函数

*入口参数:

u32nus

*出口参数:

*说明:

*调用方法:

****************************************************************************/

voiddelay_us(u32nus)

{u32temp;

SysTick->LOAD=9*nus;

SysTick->VAL=0X00;//清空计数器

SysTick->CTRL=0X01;//使能,减到零是无动作,采用外部时钟源

do

{temp=SysTick->CTRL;//读取当前倒计数值

}while((temp&0x01)&&(!

(temp&(1<<16))));//等待时间到达

SysTick->CTRL=0x00;//关闭计数器

SysTick->VAL=0X00;//清空计数器

}

/****************************************************************************

*名称:

delay_ms(u16nms)

*功能:

毫秒延时函数

*入口参数:

u16nms

*出口参数:

*说明:

*调用方法:

****************************************************************************/

voiddelay_ms(u16nms)

{//注意delay_ms函数输入范围是1-1863

//所以最大延时为1.8秒

u32temp;

SysTick->LOAD=9000*nms;

SysTick->VAL=0X00;//清空计数器

SysTick->CTRL=0X01;//使能,减到零是无动作,采用外部时钟源

do

{temp=SysTick->CTRL;//读取当前倒计数值

}while((temp&0x01)&&(!

(temp&(1<<16))));//等待时间到达

SysTick->CTRL=0x00;//关闭计数器

SysTick->VAL=0X00;//清空计数器

}

#include"stm32f10x_it.h"

#include"stm32f10x_exti.h"

#include"stm32f10x_rcc.h"

#include"misc.h"

#include"pbdata.h"

voidUSART1_IRQHandler(void)

{if(USART_GetITStatus(USART1,USART_IT_RXNE)!

=RESET)

{USART_SendData(USART1,USART_ReceiveData(USART1));

while(USART_GetFlagStatus(USART1,USART_FLAG_TXE)==RESET);

}

}

#include"pbdata.h"

voidFSMC_Configuration(void)

{FSMC_NORSRAMInitTypeDefFSMC_NORSRAMInitStructure;

FSMC_NORSRAMTimingInitTypeDefp;

p.FSMC_AddressSetupTime=0x02;//地址建立时间

p.FSMC_AddressHoldTime=0x00;//地址保持时间

p.FSMC_DataSetupTime=0x05;//数据建立时间

p.FSMC_BusTurnAroundDuration=0x00;//总线恢复时间

p.FSMC_CLKDivision=0x00;//时钟分频

p.FSMC_DataLatency=0x00;//数据保持时间

p.FSMC_AccessMode=FSMC_AccessMode_B;

//NORFLASH的BANK1

FSMC_NORSRAMInitStructure.FSMC_Bank=FSMC_Bank1_NORSRAM1;

//数据线与地址线不复用

FSMC_NORSRAMInitStructure.FSMC_DataAddressMux=FSMC_DataAddressMux_Disable;

//存储器类型NORFLASH

FSMC_NORSRAMInitStructure.FSMC_MemoryType=FSMC_MemoryType_NOR;

//数据宽度为16位

FSMC_NORSRAMInitStructure.FSMC_MemoryDataWidth=FSMC_MemoryDataWidth_16b;

//使用异步写模式,禁止突发模式

FSMC_NORSRAMInitStructure.FSMC_BurstAccessMode=FSMC_BurstAccessMode_Disable;

//本成员的配置只在突发模式下有效,等待信号极性为低

FSMC_NORSRAMInitStructure.FSMC_WaitSignalPolarity=FSMC_WaitSignalPolarity_Low;

//禁止非对齐突发模式

FSMC_NORSRAMInitStructure.FSMC_WrapMode=FSMC_WrapMode_Disable;

//本成员配置仅在突发模式下有效。

NWAIT信号在什么时期产生

FSMC_NORSRAMInitStructure.FSMC_WaitSignalActive=FSMC_WaitSignalActive_BeforeWaitState;

//本成员的配置只在突发模式下有效,禁用NWAIT信号

FSMC_NORSRAMInitStructure.FSMC_WriteOperation=FSMC_WriteOperation_Enable;

//禁止突发写操作

FSMC_NORSRAMInitStructure.FSMC_WaitSignal=FSMC_WaitSignal_Disable;

//写使能

FSMC_NORSRAMInitStructure.FSMC_ExtendedMode=FSMC_ExtendedMode_Disable;

//禁止扩展模式,扩展模式可以使用独立的读、写模式

FSMC_NORSRAMInitStructure.FSMC_WriteBurst=FSMC_WriteBurst_Disable;

//配置读写时序

FSMC_NORSRAMInitStructure.FSMC_ReadWriteTimingStruct=&p;

//配置写时序

FSMC_NORSRAMInitStructure.FSMC_WriteTimingStruct=&p;

//初始化FSMC

FSMC_NORSRAMInit(&FSMC_NORSRAMInitStructure);

//使能FSMCBANK1_SRAM模式

FSMC_NORSRAMCmd(FSMC_Bank1_NORSRAM1,ENABLE);

}

#include"pbdata.h"

constu8font[4][72]={

{0x00,0x00,0x00,0x00,0x08,0x00,0x00,0x08,0x02,0x00,0x10,0x0C,0x00,0x10,0x38,0x00,0x20,0xE0,0x00,0x5F,0x80,0x00,0x99,0x00,0x03,0x00,0x80,0x06,0x00,0xC2,0x1C,0x00,0x72,0x70,0x00,0x04,0x28,0x00,0x08,0x04,0x00,0x30,0x03,0x03,0xE0,0x01,0xBF,0x00,0x00,0xD7,0x00,0x00,0x60,0xC0,0x00,0x60,0x30,0x00,0x30,0x18,0x00,0x30,0x0E,0x00,0x20,0x06,0x00,0x00,0x04,0x00,0x00,0x00},/*"众",0*/

{0x00,0x00,0x00,0x00,0x02,0x00,0x02,0x04,0x00,0x02,0x08,0x0C,0x02,0x30,0x38,0x02,0xE0,0x00,0x7F,0xFE,0x00,0x3F,0xFE,0x00,0x02,0xC0,0xFC,0x06,0x60,0x04,0x02,0x20,0x04,0x00,0x01,0x04,0x1F,0xFE,0xC4,0x09,0x24,0xE4,0x09,0x24,0x04,0x09,0x24,0x04,0x09,0x24,0x04,0x09,0x24,0x3C,0x09,0x24,0x00,0x1F,0xFE,0x40,0x1F,0xFE,0x30,0x00,0x00,0x18,0x00,0x00,0x00,0x00,0x00,0x00},/*"想",1*/

{0x00,0x00,0x00,0x00,0x00,0x20,0x08,0x40,0x40,0x08,0x41,0x80,0x08,0x46,0x00,0x08,0x5C,0x00,0x1F,0xFF,0xFE,0x1F,0xFF,0xFE,0x10,0x48,0x00,0x30,0x8C,0x00,0x10,0x86,0x80,0x00,0x00,0x80,0x00,0x20,0x80,0x04,0x10,0x80,0x03,0x1C,0x80,0x03,0x01,0x00,0x00,0x01,0x00,0x00,0x01,0x00,0x3F,0xFF,0xFE,0x20,0x01,0x00,0x00,0x02,0x00,0x00,0x06,0x00,0x00,0x02,0x00,0x00,0x00,0x00},/*"科",2*/

{0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x06,0x00,0x01,0x04,0x04,0x01,0x04,0x06,0x7F,0xFF,0xFE,0x3F,0xFF,0xFC,0x21,0x08,0x00,0x02,0x10,0x02,0x02,0x10,0x02,0x01,0x10,0x02,0x01,0x10,0x04,0x01,0x1C,0x08,0x01,0x13,0x08,0x01,0x10,0xD0,0x3F,0xF0,0x30,0x21,0x10,0x70,0x01,0x11,0xC8,0x01,0x17,0x0C,0x01,0x1C,0x04,0x02,0x10,0x06,0x02,0x00,0x06,0x00,0x00,0x04,0x00,0x00,0x00}/*"技",3*/

};

constu8str[15][36]={

{0x00,0x20,0x00,0x00,0x3C,0x00,0x00,0x3F,0xE0,0x00,0x23,0xF8,0x00,0x00,0xE0,0x00,0x27,0x00,0x00,0x3E,0x00,0x00,0x3F,0xE0,0x00,0x21,0xF8,0x00,0x01,0xE0,0x00,0x3E,0x00,0x00,0x20,0x00},/*"w",0*/

{0x00,0x20,0x00,0x00,0x3C,0x00,0x00,0x3F,0xE0,0x00,0x23,0xF8,0x00,0x00,0xE0,0x00,0x27,0x00,0x00,0x3E,0x00,0x00,0x3F,0xE0,0x00,0x21,0xF8,0x00,0x01,0xE0,0x00,0x3E,0x00,0x00,0x20,0x00},/*"w",1*/

{0x00,0x20,0x00,0x00,0x3C,0x

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 经管营销 > 经济市场

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1