已阅读5页,还剩10页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
9325TFT320*240触摸屏学习总结(2011-02-27 14:51:23) 转载标签: 杂谈分类: 学习笔记 一、图片显示液晶显示最重要的是了解TFT320*240的工作原理。TFT320*240顾名思义就是有一行中320个点,而总共有240行,即共有320*240个点。每个点的颜色由两位U8的数据(Image2Lcd产生的是8位的数组,如果图片是320*240的,则输出同样类型的图片产生的数组个数是320*240*2)决定,也可以说一个点显示在液晶上,对它的描述是一个U16的数。遇到的问题:arm79中有关于关于Image2LCD软件的设置。真彩色LCD设置: C语言数组 水平扫描 16位真彩色 320 240图片的容量需小于:37KB使用代码:address_set(0,0,239,319); for(i=0;i73280;i+) dd=(0x00|gImage_picturei*2+1)8; dd=dd|gImage_picturei*2; LCD_WriteRAM(dd); 我用这种方式显示图片时发现图片显示过后,屏幕就马上变为白色,相当于显示了就马上清屏。用while(1)让以上程序不断循环时发现,屏幕处于显示图片和清屏交替的状态。后来修改了显示程序:address_set(0, 0,239,319); / i,j, for(i=0; i240; i+) for(j=0; j320; j+) dd=(unsigned int)gImage_mmi*320*2+j*2+18; dd=dd|(unsigned int)gImage_mmi*320*2+j*2; LCD_WriteRAM(dd); LCD_WriteRAM_Ready();图片显示正常。其中除了一些关于寄存器的初始化工作外,地址的设置也是很重要的,void address_set(unsigned int x1,unsigned int y1,unsigned int x2,unsigned int y2) LCD_WriteReg(0x0020,x1);/设置X坐标位置 地址计数器初始值x LCD_WriteReg(0x0021,y1);/设置Y坐标位置 地址计数器初始值y LCD_WriteReg(0x0050,x1); /开始XLCD_WriteReg(0x0052,y1); /开始Y LCD_WriteReg(0x0051,x2); /结束XLCD_WriteReg(0x0053,y2); /结束Y LCD_WriteRAM_Prepare(); / 写数据准备地址设置出现问题或与原来图片的尺寸有差别时会导致图片无法正常显示。FSMC地址设置问题:奋斗STM32MINI版中TFT的RS接到了地址STM32的A16,为什么地址是这样定义的,不懂#defineBank1_LCD_D(uint32_t)0x60020000)/dispDataADDR#defineBank1_LCD_C(uint32_t)0x60000000) /dispRegADDR如果选择地址16的话我感觉应该是#defineBank1_LCD_D(uint32_t)0x60010000)/dispDataADDR#defineBank1_LCD_C(uint32_t)0x60000000) /dispRegADDRSTM32FSMC设置为16位时,并不是A0无效,而是A0当A1用.那么A16就当A17用了.所以是20000.有些CPU则是16或32位时,A0,A1无效.这样.地址不变.二、彩条显示程序void ili9320_Test()u16 i,j;address_set(0,0,239,319); for(i=0;i240;i+) for(j=0;j199)LCD_WriteRAM(0x07e0); else if(i159)LCD_WriteRAM(0x07ff); else if(i119)LCD_WriteRAM(0xf800); else if(i79)LCD_WriteRAM(0xf81f); else if(i39)LCD_WriteRAM(0xffe0); else LCD_WriteRAM(0xffff);三、在屏幕上显示12张80*80的图片for(j=0;j3;j+) for(k=0;k4;k+) address_set(80*j,80*k,80*j+79,80*k+79);for(i=0; i80; i+) for(m=0; m80; m+) dd=(unsigned int)gImage_1i*80*2+m*2+18; dd=dd|(unsigned int)gImage_1i*80*2+m*2; LCD_WriteRAM(dd); 四、显示ASCII字符8*16点阵的ASCII字符表示液晶屏上的一个字符由8列16行的点阵构成。一个字符也就需要16个U8。一般我们可以输入所需要的字符,在液晶屏上会根据ascii_8x16显示相应的字符。ascii_8x16就是一连串8为数组的组成。相关的程序:(1)先定义自己要显示的字符串,也可以是字符,如const unsigned char tab=wo shi wu hong sheng;(2)再在main()函数中调用相应的显示函数void test(void) LCD_Clear(Green); ili9320_PutChars(0,0,tab,0xF800,0x1fff); 在第一行显示字符串void ili9320_PutChars(u16 x,u16 y,uc8 *z,u16 charColor,u16 bkColor) u16 i=0; u16 j=0; u16 w=0; unsigned char c=0; unsigned char tmp_char=0; address_set(0,0,239,319); for (w=0;w20;w+) c=*z;z=z+; for (i=0;i16;i+) tmp_char=ascii_8x16(c-0x20)*16)+i; for (j=0;j 7-j) & 0x01 = 0x01) ili9320_SetPoint(x+j,y+i,charColor); / 字符颜色 (注意此处是给第x+j列,第y+i行对应的点设置颜色) else ili9320_SetPoint(x+j,y+i,bkColor); / 背景颜色/ x=x+8; void ili9320_SetPoint(u16 x,u16 y,u16 point) LCD_WriteReg(32, y); LCD_WriteReg(33, x); LCD_WriteIndex(34); LCD_WriteRAM(point);五、显示文字一般的字模软件产生的都是8bit的数组,所以在参考别人的程序上,将显示文字的程序做了一点小小的改动。取模软件很多像晓奇工作室,或者其他什么的都可以。产生的数组如下:extern const uc16 ASCII_Table =0x06,0x40,0x38,0x50,0x08,0x48,0x08,0x48,0x08,0x40,0xFF,0xFE,0x08,0x40,0x08,0x48,0x0E,0x28,0x38,0x30,0xC8,0x20,0x08,0x50,0x09,0x92,0x08,0x0A,0x28,0x06,0x10,0x02,显示程序:void ili9320_PutCharz(u16 x,u16 y,unsigned char z,u16 charColor,u16 bkColor)u16 i=0;u16 j=0;u16 m=0;u16 tmp_char=0;uc16 *hz;hz=ASCII_Table;address_set(0,0,239,319);while(z-)for (i=0;i16;i+) for(m=0;m2;m+) tmp_char=*hz; for (j=0;j 7-j) & 0x01 = 0x01) ili9320_SetPoint(x+j+8*m,y+i,charColor); / 字符颜色 else ili9320_SetPoint(x+j+8*m,y+i,bkColor); / 背景颜色/ hz=hz+; x=x+16; 六、FSMC问题:在FSMC的配置中,FSMC的访问模式有四种,请问有人知道这四种模式都有什么区别?,在什么情况下该启用那种模式 如:FSMC_AccessMode=FSMC_AccessMode_B;答:下列内容来自参考手册FSMC章节:模式A SRAM/PSRAM(CRAM) OE翻转 模式A与模式1的区别是NOE的变化和相互独立的读写时序。模式2/B NOR闪存 模式2/B与模式1相比较,不同的是NADV的变化,且在扩展模式下(模式B)读写时序相互独立。(只有当设置了扩展模式时(模式B),FSMC_BWTRx才有效,否则该寄存器的内容不起作用。)模式C NOR闪存 - OE翻转 模式C与模式1不同的是,NOE和NADV的翻转变化,以及独立的读写时序。模式D 带地址扩展的异步操作 模式D与模式1不同的是NADV的翻转变化,NOE的翻转出现在NADV翻转之后,并且具有独立的读写时序复用模式 地址/数据复用的NOR闪存异步操作 复用模式与模式D不同的是地址的低16位出现在数据总线上程序:void FSMC_LCD_Init(void) FSMC_NORSRAMInitTypeDef FSMC_NORSRAMInitStructure; FSMC_NORSRAMTimingInitTypeDef FSMC_TimingInitStructure; /FSMC_TCRx位域 FSMC_TimingInitStructure.FSMC_AddressSetupTime = 0x02; /地址建立时间 多少个AHB时钟周期 FSMC_TimingInitStructure.FSMC_AddressHoldTime = 0x00; /地址保持时间 FSMC_TimingInitStructure.FSMC_DataSetupTime = 0x05; /数据建立时间 FSMC_TimingInitStructure.FSMC_BusTurnAroundDuration = 0x00;/总线恢复时间 FSMC_TimingInitStructure.FSMC_CLKDivision = 0x00; / 时钟分频因子 FSMC_TimingInitStructure.FSMC_DataLatency = 0x00; / 数据产生时间 :突发模式下产生第一个数据所需的时钟数目 FSMC_TimingInitStructure.FSMC_AccessMode = FSMC_AccessMode_B; /访问模式B NOR闪存 模式 FSMC_NORSRAMInitStructure.FSMC_Bank = FSMC_Bank1_NORSRAM1; /选择Bank1 FSMC_NORSRAMInitStructure.FSMC_DataAddressMux = FSMC_DataAddressMux_Disable;/0:地址/数据不复用 FSMC_NORSRAMInitStructure.FSMC_MemoryType = FSMC_MemoryType_NOR; /存储器类型:NOR闪存 FSMC_NORSRAMInitStructure.FSMC_MemoryDataWidth = FSMC_MemoryDataWidth_16b; /存储器数据总线宽度16位 FSMC_NORSRAMInitStructure.FSMC_BurstAccessMode = FSMC_BurstAccessMode_Disable;/禁用成组访问模式;这是复位后的默认状态 FSMC_NORSRAMInitStructure.FSMC_WaitSignalPolarity = FSMC_WaitSignalPolarity_Low;/NWAIT等待信号为低时有效;这是复位后的默认状态 FSMC_NORSRAMInitStructure.FSMC_WrapMode = FSMC_WrapMode_Disable;/不允许直接的非对齐成组操作;这是复位后的默认状态 FSMC_NORSRAMInitStructure.FSMC_WaitSignalActive = FSMC_WaitSignalActive_BeforeWaitState;/NWAIT信号在等待状态前的一个数据周期有效;这是复位后的默认状态 FSMC_NORSRAMInitStructure.FSMC_WriteOperation = FSMC_WriteOperation_Enable;/允许FSMC对存储器的写操作;这是复位后的默认状态 FSMC_NORSRAMInitStructure.FSMC_WaitSignal = FSMC_WaitSignal_Disable; /禁用NWAIT信号,在设置的闪存保持周期之后不会检测NWAIT信号插入等待状态 FSMC_NORSRAMInitStructure.FSMC_ExtendedMode = FSMC_ExtendedMode_Disable; /EXTMOD:扩展模式使能 0:不使用FSMC_BWTR寄存器,这是复位后的默认状态 FSMC_NORSRAMInitStructure.FSMC_WriteBurst = FSMC_WriteBurst_Disable; /成组写使能位 0:写操作始终处于异步模式 FSMC_NORSRAMInitStructure.FSMC_ReadWriteTimingStruct = &FSMC_TimingInitStructure; FSMC_NORSRAMInitStructure.FSMC_WriteT
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年iq标准测试题及答案
- 2026年骆骆祥子测试题及答案
- 2026年工作状态测试题及答案
- 25万立方米可燃冰储存设施建设项目可行性研究报告
- 2026年中国内墙腻子粉产业发展前景及供需格局预测报告
- 部队政治考试题库及答案详解
- 2026功能洗护行业市场调研报告
- 包头市工商银行2026年秋招笔试综合模拟题库及答案详解
- 2026年中国锆矿市场分析预测报告
- 2026年山东专升本模拟试题及答案详解
- 广东专插本政治理论复习要点
- 教师系列任现职以来教学工作情况证明材料
- 单元教学设计15 一元二次函数、方程和不等式大单元-高中数学单元教学设计
- DB21T 2420-2015 城市公共汽(电)车客运服务规范
- TD-T 1048-2016耕作层土壤剥离利用技术规范
- DL-T 5609-2021火力发电厂烟气海水脱硫系统设计规程-PDF解密
- 板蓝根片对精神疾病的预防和治疗作用
- 《弱国无外交》课件
- 2023年全国“动物疫病防治员”技能及理论知识考试题库(附含答案)
- 内蒙古2023年中学生生物学竞赛初赛试卷
- 中国旅游文化-中国名山
评论
0/150
提交评论