STM32单片机ILI9325系列TFT的驱动原理解析.doc
《STM32单片机ILI9325系列TFT的驱动原理解析.doc》由会员分享,可在线阅读,更多相关《STM32单片机ILI9325系列TFT的驱动原理解析.doc(23页珍藏版)》请在三一办公上搜索。
1、STM32单片机ILI9325系列TFT的驱动原理解析为了更好,更深入学习了解ILI9325系列TFT的驱动原理,自己做了一块TFT板子。为了方便测试,在上面集成了STM32芯片,到时候做实验的时候就焊接STM32测试,如果只是使用,就直接焊接TFT就行了。板子还在做,先上原理图与PCB。-等板子回来,再测试,总结继续-板子回来了,焊接好了,简单测试了一下!-第二部分-ili9320.h-代码简单分析-#ifndef _ILI9320_H_#define _ILI9320_H_#include “stm32f10x.h”#define DB0_7_RCC RCC_APB2Periph_GPIO
2、B#define DB_8_15_RCC RCC_APB2Periph_GPIOC/-#define nCsPin_RCC RCC_APB2Periph_GPIOC#define nCsPin_Port GPIOC#define nCsPin GPIO_Pin_11#define RsPin_RCC RCC_APB2Periph_GPIOC#define RsPin_Port GPIOC#define RsPin GPIO_Pin_8#define nWrPin_RCC RCC_APB2Periph_GPIOC#define nWrPin_Port GPIOC#define nWrPin GP
3、IO_Pin_9#define nRdPin_RCC RCC_APB2Periph_GPIOC#define nRdPin_Port GPIOC#define nRdPin GPIO_Pin_10#define nRstPin_RCC RCC_APB2Periph_GPIOC#define nRstPin_Port GPIOC#define nRstPin GPIO_Pin_12#define LightPin_RCC RCC_APB2Periph_GPIOB#define LightPin_Port GPIOB#define LightPin GPIO_Pin_0/-#define Set_
4、nWrnCsPin_Port-BSRR = nWrPin / GPIO_SetBits (nWrPin_Port, nWrPin)#define Clr_nWrnCsPin_Port-BRR = nWrPin / GPIO_ResetBits (nWrPin_Port, nWrPin)#define Set_Cs nCsPin_Port-BSRR = nCsPin / GPIO_SetBits (nCsPin_Port, nCsPin)#define Clr_Cs nCsPin_Port-BRR = nCsPin/ GPIO_ResetBits (nCsPin_Port, nCsPin)#de
5、fine Set_Rs RsPin_Port-BSRR = RsPin/ GPIO_SetBits (RsPin_Port, RsPin)#define Clr_Rs RsPin_Port-BRR = RsPin / GPIO_ResetBits (RsPin_Port, RsPin)#define Set_nRdnRdPin_Port-BSRR = nRdPin/ GPIO_SetBits (nRdPin_Port, nRdPin)#define Clr_nRdnRdPin_Port-BRR = nRdPin / GPIO_ResetBits (nRdPin_Port, nRdPin)#de
6、fine Set_RstnRstPin_Port-BSRR = nRstPin/ GPIO_SetBits (nRstPin_Port, nRstPin)#define Clr_RstnRstPin_Port-BRR = nRstPin / GPIO_ResetBits (nRstPin_Port, nRstPin)#define Set_LightLightPin_Port-BSRR = LightPin/ GPIO_SetBits (LightPin_Port, LightPin)#define Clr_LightLightPin_Port-BRR = LightPin/ GPIO_Res
7、etBits (LightPin_Port, LightPin)/-#define White 0xFFFF#define Black 0x0000#define Grey 0xF7DE#define Blue 0x001F#define Blue2 0x051F#define Red 0xF800#define Magenta 0xF81F#define Green 0x07E0#define Cyan 0x7FFF#define Yellow 0xFFE0void Lcd_Configuration(void); /初始化GPIOvoid LCD_ili9320_IniTIalizTIon
8、(void); /初始化ILI9320-uCGUI需要使用-1void LCD_ili9320_Reset(void);void LCD_ili9320_BackLight(u8 status); /背光void LCD_ili9320_SetCursor(u16 x,u16 y); /设置坐标-uCGUI需要使用-2void LCD_ili9320_SetWindows(u16 StartX,u16 StartY,u16 EndX,u16 EndY); /设置窗体void LCD_ili9320_DrawPicture(u16 StartX,u16 StartY,u16 EndX,u16 E
9、ndY,u16 *pic);/画图片void LCD_ili9320_SetPoint(u16 x,u16 y,u16 point);/画点-uCGUI需要使用-3u16 LCD_ili9320_GetPoint(u16 x,u16 y); /读取点颜色-uCGUI需要使用-4void LCD_ili9320_PutChar(u16 x,u16 y,u8 c,u16 charColor,u16 bkColor); /显示字符-需要字体头文件void LCD_ili9320_Clear(u16 dat); /清屏void LCD_ili9320_Delay(u32 nCount);void LC
10、D_ili9320_Test(void);void LCD_ili9320_WriteData(u16 dat); /写数据void LCD_ili9320_WriteIndex(u16 idx); /写地址u16 LCD_ili9320_ReadData(void); /读数据u16 LCD_ili9320_ReadRegister(u16 index); /读寄存器void LCD_ili9320_WriteRegister(u16 index,u16 dat); /写寄存器u16 LCD_ili9320_BGR2RGB(u16 c); /转换颜色格式u16 LCD_ili9320_Col
11、or565(u32 RGB); / RGB颜色转为16位(565)void LCD_ili9320_DrawHLine(uint16_t usX1 , uint16_t usY1 , uint16_t usX2 , uint16_t usColor);/水平线-uCGUI需要使用-5void LCD_ili9320_DrawVLine(uint16_t usX1 , uint16_t usY1 , uint16_t usY2 , uint16_t usColor);/垂直线-uCGUI需要使用-6void LCD_ili9320_FillRect(u16 x0, u16 y0, u16 x1,
12、 u16 y1,u16 color);/填充矩形-uCGUI需要使用-7void LCD_ili9320_Line(u16 x0, u16 y0, u16 x1, u16 y1,u16 color); / 画任意直线线void LCD_ili9320_Circle(u16 cx,u16 cy,u16 r,u16 color,u8 fill); / 画园void LCD_ili9320_Rectangle(u16 x0, u16 y0, u16 x1, u16 y1,u16 color,u8 fill); / 画矩形-填充或者不填充void LCD_ili9320_Square(u16 x0,
13、u16 y0, u16 with, u16 color,u8 fill); / 画正方形-填充或者不填充void LCD_ili9320_Text(u16 x, u16 y, u8 *str, u16 len,u16 Color, u16 bkColor); /简单测试-显示渐变色条#endif-第三部分-ili9320.c-代码分析-#include “ili9320.h”#include “ili9320_font.h”void Lcd_ConfiguraTIon(void)GPIO_InitTypeDef GPIO_InitStructure;RCC_APB2PeriphClockCmd
14、(RCC_APB2Periph_GPIOB “ RCC_APB2Periph_GPIOC, ENABLE); /初始化数据引脚 -DB0DB7是PB8PB15 DB8DB15是PC0PC7-/GPIO_InitStructure.GPIO_Pin =GPIO_Pin_8 | GPIO_Pin_9 | GPIO_Pin_10 | GPIO_Pin_11 | GPIO_Pin_12 | GPIO_Pin_13 | GPIO_Pin_14 | GPIO_Pin_15;GPIO_InitStructure.GPIO_Speed = GPIO_Speed_2MHz;GPIO_InitStructure.
15、GPIO_Mode = GPIO_Mode_Out_PP;GPIO_Init(GPIOB, GPIO_InitStructure.GPIO_Pin =GPIO_Pin_0 | GPIO_Pin_1 | GPIO_Pin_2 |GPIO_Pin_3 | GPIO_Pin_4 | GPIO_Pin_5 | GPIO_Pin_6 | GPIO_Pin_7;GPIO_InitStructure.GPIO_Speed = GPIO_Speed_2MHz;GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;GPIO_Init(GPIOC, RCC_APB2Per
16、iphClockCmd(nCsPin_RCC, ENABLE); / 控制脚 CS -PC11-/GPIO_InitStructure.GPIO_Pin = nCsPin;GPIO_InitStructure.GPIO_Speed = GPIO_Speed_2MHz;GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;GPIO_Init(nCsPin_Port, RCC_APB2PeriphClockCmd(RsPin_RCC, ENABLE); / 控制脚 RS -PC8-/GPIO_InitStructure.GPIO_Pin = RsPin;G
17、PIO_InitStructure.GPIO_Speed = GPIO_Speed_2MHz;GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;GPIO_Init(RsPin_Port, RCC_APB2PeriphClockCmd(nWrPin_RCC, ENABLE); / 控制脚 WR -PC9-/GPIO_InitStructure.GPIO_Pin = nWrPin;GPIO_InitStructure.GPIO_Speed = GPIO_Speed_2MHz;GPIO_InitStructure.GPIO_Mode = GPIO_Mod
18、e_Out_PP;GPIO_Init(nWrPin_Port, RCC_APB2PeriphClockCmd(nRdPin_RCC, ENABLE); / 控制脚 RD -PC10-/GPIO_InitStructure.GPIO_Pin = nRdPin;GPIO_InitStructure.GPIO_Speed = GPIO_Speed_2MHz;GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;GPIO_Init(nRdPin_Port, RCC_APB2PeriphClockCmd(nRstPin_RCC, ENABLE); / 控制脚 R
19、ST -PC12-/GPIO_InitStructure.GPIO_Pin = nRstPin;GPIO_InitStructure.GPIO_Speed = GPIO_Speed_2MHz;GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;GPIO_Init(nRstPin_Port, RCC_APB2PeriphClockCmd(LightPin_RCC, ENABLE); / 控制脚背光 -PB00-/GPIO_InitStructure.GPIO_Pin = LightPin;GPIO_InitStructure.GPIO_Speed =
20、GPIO_Speed_50MHz;GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;GPIO_Init(LightPin_Port, void delayms(int count) / X1msint i,j;for(i=0;i for(j=0;j1000;j+);void LCD_ili9320_IniTIaliztion (void) /-功 能:初始化 ILI9320 控制器volatile u16 i, j, k;u32 DeviceCode = 0;Lcd_Configuration();LCD_ili9320_BackLight(0);
21、 /关背光delayms(200);Clr_Rst;delayms(200);LCD_ili9320_WriteData(0xffff);Set_Rst; Set_nWr; Set_Cs; Set_Rs; Set_nRd; Set_Rst;delayms(200);LCD_ili9320_WriteRegister(0x0000,0x0001); / Start OCSdelayms(200);DeviceCode = LCD_ili9320_ReadRegister(0x0000); / 读控制器型号 ILI9320if(DeviceCode = 0x9320|0x9300)LCD_ili9
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- STM32 单片机 ILI9325 系列 TFT 驱动 原理 解析
![提示](https://www.31ppt.com/images/bang_tan.gif)
链接地址:https://www.31ppt.com/p-4853685.html