STM32触摸屏程序

上传人:大米 文档编号:464165936 上传时间:2023-08-06 格式:DOCX 页数:7 大小:38.53KB
返回 下载 相关 举报
STM32触摸屏程序_第1页
第1页 / 共7页
STM32触摸屏程序_第2页
第2页 / 共7页
STM32触摸屏程序_第3页
第3页 / 共7页
STM32触摸屏程序_第4页
第4页 / 共7页
STM32触摸屏程序_第5页
第5页 / 共7页
点击查看更多>>
资源描述

《STM32触摸屏程序》由会员分享,可在线阅读,更多相关《STM32触摸屏程序(7页珍藏版)》请在金锄头文库上搜索。

1、STM32触摸屏程序现在随着TFT屏的价格快速滑落,原来旧有的单色屏已经远远跟不上了发展的需要,加上触摸屏的成本也不是很高,因而无论在成本还是技术发展的优势上面,TFT屏发展已经获得了平分秋色的实力。但是在传统意义上面来说,使用TFT屏控制必然考虑到arm体现,因而,性价比较高的STM32就走上了台前。我们现在使用的是一款STM32F103RBT6的芯片。这个芯片具有很好的性价比:ARM Cortex-M3内核,128kB Flash,20KB RAM,最高工作时钟72MHz,64脚。我们选用的是2.8寸的TFT屏,TFT屏的控制芯片是:ILI9325;其触摸屏控制芯片为ADS7843。 我们

2、首先看到的是TFT屏和该芯片的接口,其接口定义如下: 2.8寸彩色TFT屏模块接脚定义 脚位 功能 描述 脚位 功能 描述 01脚 3V3 电源正 17脚 DB14 数据线 02脚 GND 电源负 18脚 DB15 数据线 03脚 DB00 数据线 19脚 CS 屏片选,低有效 04脚 DB01 数据线 20脚 RS 寄存器选择 05脚 DB02 数据线 21脚 WR 写使能,低有效 06脚 DB03 数据线 22脚 RD 读使能,低有效 07脚 DB04 数据线 23脚 RESET 复位,低有效 08脚 DB05 数据线 24脚 BACK_LIGHT 背光控制,高有效 09脚 DB06 数据

3、线 25脚 MISO SPI主入从出 10脚 DB07 数据线 26脚 INT 触摸中断输出 11脚 DB08 数据线 27脚 MOSI SPI主出从入 12脚 DB09 数据线 28脚 BUSY 触摸芯片忙检测 13脚 DB10 数据线 29脚 SCLK SPI时钟 14脚 DB11 数据线 30脚 SDA I2C数据线 15脚 DB12 数据线 31脚 T_CS 触摸芯片片选 16脚 DB13 数据线 32脚 SCL I2C时钟线 现在,我们使用IAR编译,然后通过JLINK下载一个程序进去,然后分析一下程序。 使用IAR的环境就不一一叙述了。下面是ILI9325的控制程序的部分子程序以供

4、参考。详细程序见附件。 /* 函数名:Lcd配置函数 功能:配置所有和Lcd相关的GPIO和时钟 引脚分配为: PB8-PB1516Bit数据总线低8位 PC0-PC7 16Bit数据总线高8位 PC8 Lcd_cs PC9 Lcd_rs* PC10Lcd_wr PC11Lcd_rd* PC12Lcd_rst PC13Lcd_blaklight 背光靠场效应管驱动背光模块 */ void Lcd_Configuration(void) GPIO_InitTypeDef GPIO_InitStructure; /*开启相应时钟 */ RCC_APB2PeriphClockCmd(RCC_APB2

5、Periph_GPIOA|RCC_APB2Periph_GPIOB|RCC_APB2Periph_GPIOC, ENABLE); /*所有Lcd引脚配置为推挽输出*/ /*16位数据低8位*/ 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_50MHz; GPIO_InitStructure.GPIO_Mode

6、 = GPIO_Mode_Out_PP; GPIO_Init(GPIOB, &GPIO_InitStructure); /*16位数据高8位*/ 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_Init(GPIOC, &GPIO_InitStructure); /*控制脚*/ GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8|GPIO_Pin_9|GPIO_Pin_

7、10|GPIO_Pin_11|GPIO_Pin_12; GPIO_Init(GPIOC, &GPIO_InitStructure); /*背光控制*/ GPIO_InitStructure.GPIO_Pin =GPIO_Pin_13; GPIO_Init(GPIOC, &GPIO_InitStructure); void DataToWrite(u16 data) u16 temp; temp = GPIO_ReadOutputData(GPIOB); GPIO_Write(GPIOB, (data8)|(temp&0xff00); /* * 名 称:u16 CheckController(v

8、oid) * 功 能:返回控制器代码 * 入口参数:无 * 出口参数:控制器型号 * 说 明:调用后返回兼容型号的控制器型号 * 调用方法:code=CheckController; */ u16 CheckController(void) u16 tmp=0,tmp1=0,tmp2=0; GPIO_InitTypeDef GPIO_InitStructure; DataToWrite(0xffff);/数据线全高 Set_Rst; Set_nWr; Set_Cs; Set_Rs; Set_nRd; Set_Rst; Delay_nms(1); Clr_Rst; Delay_nms(1); S

9、et_Rst; Delay_nms(1); LCD_WR_REG(0x0000,0x0001); /start oscillation Delay_nms(1); 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.GPIO_Mode = GPIO_Mode_IN_

10、FLOATING; GPIO_Init(GPIOB, &GPIO_InitStructure); /*16位数据高8位*/ 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_Init(GPIOC, &GPIO_InitStructure); GPIO_ResetBits(GPIOC,GPIO_Pin_8); GPIO_SetBits(GPIOC,GPIO_Pin_9); GPIO_ResetBits

11、(GPIOC,GPIO_Pin_11); tmp1 = GPIO_ReadInputData(GPIOB); tmp2 = GPIO_ReadInputData(GPIOC); tmp = (tmp18) | (tmp28); GPIO_SetBits(GPIOC,GPIO_Pin_11); GPIO_SetBits(GPIOC,GPIO_Pin_8); /*16位数据低8位*/ GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8|GPIO_Pin_9|GPIO_Pin_10|GPIO_Pin_11|GPIO_Pin_12|GPIO_Pin_13|GPIO_Pin

12、_14|GPIO_Pin_15; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; GPIO_Init(GPIOB, &GPIO_InitStructure); /*16位数据高8位*/ 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_Init(GPI

13、OC, &GPIO_InitStructure); return tmp; /* 函数名:Lcd初始化函数 功能:初始化Lcd 入口参数:无 返回值:无 */ void Lcd_Initialize(void) u16 i; Lcd_Light_ON; DataToWrite(0xffff);/数据线全高 Set_Rst; Set_nWr; Set_Cs; Set_Rs; Set_nRd; Set_Rst; Delay_nms(1); Clr_Rst; Delay_nms(1); Set_Rst; Delay_nms(1); /* #ifdef ILI9325 LCD_WR_REG(0x00e3,0x3008); LCD_WR_REG(0x00e7,0x0010); LCD_WR_REG(0x00ef,0x1231); /Set the internal vcore voltage LCD_WR_REG(0x0001,0x0100); /When SS = 0, the shift direction of outputs is from S1 to S720 #endif

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 建筑/环境 > 施工组织

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号