请教24位的TFT接为16位显示,怎么接功放和效果器连接图最好

车用TFT LCD显示屏解决方案
描述此参考设计将 LVDS 视频解决方案用于汽车信息娱乐应用。突出了在没有将专用支持线路重新引入主机处理器的情况下的带触觉反馈的多点触摸、 背光控制以及环境光感支持。此设计使用两个板实现。主电子电路板 SAT0059 上有解串器、微处理器、背光控制器、触觉驱动器以及电源。LCD 接口板 SAT0096 是特定 LCD 面板的物理和电子接口。它通过 Samtec 板至电路板连接器连接至 SAT0059 并为 LCD 面板、触摸屏、背光连接和触觉驱动器提供连接点。SAT0096 是为 Microtips UMSH-8596MD-20T 设计的。如果要使用不同的显示屏,则可能需要设计新的 LCD 接口板。PCB原理图:PCB板截图:附件内容:TI设计方案涉及到的重要芯片(一键获取样片)
具有可调节电流限制的 42V、2A 宽输入电压恒定导通时间的开关稳压器 &
具有升压、数字前端和内部波形存储器的压电式触觉驱动器 &&
具有控制启动功能的汽车类超低 rON、6A 负载开关 &&TI Store活动:
电路相关文件(请在PC端查看下载)
电路城电路折扣劵获取途径:
电路城7~10折折扣劵(全场通用):对本电路进行评分获取;
电路城6折折扣劵(限购≤100元电路):申请成为卖家,上传电路,审核成功后获取。
版权声明:电路城所有电路均源于网友上传或网上搜集,供学习和研究使用,其版权归原作者所有,对可以提供充分证据的侵权信息,本站将在确认后24小时内删除。对本电路进行投诉建议,点击反馈给电路城。
使用说明:直接使用附件资料或需要对资料PCB板进行打样的买家,请先核对资料的完整性,如果出现问题,电路城不承担任何经济损失!
大家都在看:
1、高清1600万色高清800x480,色彩绚丽,过渡均匀;2、IPS全视角材质,较普通的TFT色彩更通透有力,并且不易产生色差;3、可配电阻电容屏,人机互动更灵活;4、自带大显存,高达1MB的显存,无论多慢的单片机都可以轻松驱动,普通IO口就可以直接驱动,无需外挂类似SSD1963或者RA8875等芯片;5、丰富的接口,支持MCU 8080接口
8位、16位、18位及24位,还支持RGB888,向下兼容RGB666及RGB565,无论是小单片机,少引脚的,还是多引脚的,低端的M0,M3还是高端的M4、ARM7、ARM9、A核都通用;6、采用focaltech 敦泰FT5216GM7触控芯片
来自:时间:
使用LCD和Arduino制作超声波测距仪说明:在这个Arduino教程中,我将向您展示如何使用HC-SR04超声波传感器,并将其与LCD显示器集成,以便显示传感器与特定物体之间的距离。所需材料:
Arduino UNO面包板16 x 2液晶显示器HC-SR04超声波传感器10K电位器(与上面连接的LCD显示器一起)跨接电缆第一步:连接HC-SR04超声波传感器HC-SR04超声波传感器有4个引脚:VCC引脚,触发引脚,回波引脚和GND引脚。如上图所示,VCC引脚连接到面包板上的+ 5V,GND引脚连接到面包板上的GND,trig引脚连接到Arduino的数字引脚11,echo引脚连接到数字引脚10 Arduino的。第二步:连接LCD和电位器为了将LCD连接到面包板,我建议您将引脚连接头焊接到显示器的连接器上。LCD显示器的连接如下:
LCD VSS引脚到面包板上的Arduino GND在面包板上将LCD VDD引脚连接到Arduino 5VLCD VO引脚至10k电位器中心引脚LCD RS引脚连接到数字引脚1在面包板上将LCD RW引脚连接到Arduino GNDLCD使能引脚到数字引脚2LCD D4引脚连接到数字引脚4LCD D5引脚至数字引脚5LCD D6引脚到数字引脚6LCD D7引脚至数字引脚7LCD面板上的一个针脚+ 5V面包板上的LCD K引脚连接到GND10K电位器的其余引脚连接到面包板和GND上的+ 5V。第三步:供电对于这个项目,我们可以通过任何+ 5V电源为Arduino供电。您可以使用计算机上的USB端口为Arduino供电,但在此项目中,我将使用便携式电池。在将电源连接到Arduino之前,确保Arduino上的+ 5V端口连接到面包板上的+ 5V。做同样的事情,将Arduino的GND端口连接到面包板的GND。第四步:获取代码具体代码见附件。第五步:观看视频使用LCD和Arduino制作超声波测距仪视频:http://v.youku.com/v_show/id_XMzIzMjg4NTQ4MA==.html
来自:时间:
本设计介绍的是基于LPC2478(ucGUI & emWin)电能质量监测仪显示屏产品,见附件下载其原理图及PCB。该LPC2478电能质量监测仪显示屏采用ARM7
LPC2478硬件平台设计;配备全彩触摸4.3寸显示屏,RS232&RS485&RS422通信接口。电能质量监测仪显示屏(ucGUI & emWin)程序源码(链接:http://www.cirmall.com/circuit/7063/)。该电能质量监测仪显示屏(ucGUI & emWin) 产品是一个电力行业电能质量监测仪的显示屏真实产品设计,可以用来学习ucgui或应用ucgui开发显示程序。该源码工程对于学习ucGUI & emWin的初学者或应用ucGUI & emWin开发界面程序的开发工程者极具参考意义,程序采用图标菜单模式设计,界面漂亮,应用几乎包含了ucGUI & emWin各种API的应用,如文字,图标显示,表格应用,各种控件应用,按键消息,触摸屏消息,图形显示等。LPC2478电能质量监测仪显示屏产品实物图:PCB文件截图,protel格式。
来自:时间:
该电能质量监测仪显示屏(ucGUI & emWin)软件源码示例了一个电力行业电能质量监测仪的显示终端设计,采用VC++的ucGUI & emWin仿真平台设计,旨在帮助中小企业及个人在应用ucGUI & emWin开发人机界面程序时,参考快速开发产品,也可以为初学者学习参考;程序采用图标菜单模式设计,界面漂亮;在应用ucGUI & emWin开发界面程序时,只需要将自己硬件平台的底层及ucGUI移植好,就可以快速将该程序移植到自己的平台,因为该程序与特定嵌入式硬件无关,是ucGUI & emWin的应用层;该源码工程对于学习ucGUI & emWin的初学者或应用ucGUI & emWin开发界面程序的开发工程者极具参考意义,应用几乎包含了ucGUI & emWin各种API的应用,如文字,图标显示,表格应用,各种控件应用,按键消息,触摸屏消息,图形显示等。源码编译运行环境:VC++;程序运行环境:PC计算机window系统;应用Microsoft Visual C++软件打开源码工程,编译或者直接执行结果如下:部分界面展示:文件截图:
来自:时间:
我本设计介绍了一种基于STM32的多功能GSM通讯系统设计方案。系统以STM32单片机为核心,采用SIM900模块GSM通讯,利用μC/OS-II与μC/GUI系统进行多任务与TFT彩屏的控制,并通过STM32的串口控制GSM模块STM900实现通讯。系统通过STM32的SPI接口实现触控从而实现系统的输入、通过STM32的FSMC接口实现TFT显示从而实现系统的输出。通过STM32的串口可有效发送与接收GSM模块的信息。手机SIM900模块GSM通讯系统工作原理框图:附件资料提供,具体见截图展示:1.重要配件清单2.配件TFT转接板原理图和PCB3.程序代码4.相关资料PS:提供PCB代画 程序代调 论文代写等服务联系Q,丰厚经验电子工程师保障你的设计完美通过
来自:时间:
猜你喜欢(实时推荐最适合你的电路)
7 英寸 TFT电容式触摸屏显示器概述:
电容式触摸显示屏通常提供比传统电阻式触摸显示屏更高的质量和更好的用户体验。此参考设计显示了如何将电容式触摸显示屏连接到 Sitara AM437x 处理器。显示屏具有一个通过其 I2C 端口与 AM437x 进行连接的集成式触摸屏控制器。TFT电容式触摸屏显示器特性: 具有电容式触摸用户接口的彩色 7 英寸 TFT LCD 面板具有 24 位 RGB 接口的 WVGA 800x480 像素分辨率LCD 接口连接到 Sitara AM437x 处理器的集成式 DSS(显示子系统)电容式触摸屏通过 I2C 连接到 Sitara AM437x 处理器27 个白光 LED 用于背光控制的 TPS61081 PWM 控制的 LED 驱动器LCD 所需的功率由 TPS65105 线性稳压器电源提供。AM437x EVM 系统框图:TFT电容式触摸屏显示器电路PCB板实物截图:TI设计方案涉及到的重要芯片(一键获取样片)
SN74LVC1G04单路反向器 逻辑 样片或购买
TPS61081具有集成功率二极管的 27V、1.2A 开关、1.2MHz 升压转换器 LED 驱动器 样片或购买
TPS65105正极 充电泵的 4 通道 LCD 偏置、3.3V LDO 控制器、0.96A 最低 升压 Ilim电源管理 样片或购买 TI Store活动:看设计方案,为您的设计加“芯”能量,晒“芯”单享三重福利
来自:时间:
作为一个电子爱好者,我想有点共享精神。特来分享3.5寸ILI9487 液晶屏资料。同时附上:2.2寸TFT液晶屏模块、横屏模块 ILI9342驱动,单片机可驱 12864接口。全新3.0寸模块,带触摸屏,16:9 240*400分辨率 ILI9327驱动;全新3.5寸模块 R61581/ILI9487驱动,320*480分辨率,不带触摸屏。附件内容截图:
来自:时间:
STM32F103 + SSD1963开发板,ADS7846电阻触摸屏驱动。可以直接点亮800*480以下TFT模块,支持电阻触摸屏;支持NAND FLASH和SD卡;支持USB;设计有EEPROM接口;
来自:时间:
FPGA硬件实现触摸、显示屏控制系统采用FPGA作为主控制器,FPGA并行执行性好,能实现各个模块的同时工作;用FPGA设计的是硬件电路,执行速度特别快,便于信号的及时处理。并且FPGA有许多可用的IP核供使用者调用。系统使用NIOS嵌入式处理器,将NIOS处理器和外围数字电路有机结合,不仅加快了系统响应速度,也减少了开发设计时间。系统调试采用了软件仿真、逻辑分析仪、硬件仿真、和TFT显示等工具,触摸采集模块进行了去抖、滤波、单次连续触摸判断等措施,使得触摸灵敏度和准确度都得到提高。FPGA硬件实现触摸、显示屏控制系统完成的功能有TFT显示字符、显示触摸点坐标、以坐标点为半径画圆、清屏、LED控制等各种操作,实现了触摸屏的触摸显示操作。触摸、显示屏电路原理图触摸、显示屏软件系统组成模块图电路城语:此资料为卖家免费分享,不提供技术支持,请大家使用前验证资料的正确性!如涉及版权问题,请联系管理员删除!附件包含以下资料:
来自:时间:
基于STM32平台的贪吃蛇小游戏,可通过外部按键控制蛇的移动方向及加减速且蛇身颜色会随吃到豆子数量的改变而改变(视频中未显示),作品旨在增加程序设计趣味性。MCU:STM32硬件:STM32F103ZET6最小系统+TFT3.2寸ili9320显示屏开发环境:MDK4.70编程语言:C语言实现功能除大部分贪吃蛇游戏所具有功能外,额外增加加减速及蛇身颜色变化功能。附件包含以下资料:
来自:时间:网站已改版,请使用新地址访问:
bmpconverter 可以将windows 24位BMP图转换为16位图的程序,可用于机顶盒处理打包图片之用 Embeded-SCM Develop 嵌入式/单片机编程 277万源代码下载- www.pudn.com
网站已改版,请使用新地址访问:
&文件名称: bmpconverter
& & & & &&]
&&所属分类:
&&开发工具: C-C++
&&文件大小: 2 KB
&&上传时间:
&&下载次数: 60
&&提 供 者:
&详细说明:可以将windows 24位BMP图转换为16位图的程序,可用于机顶盒处理打包图片之用-Can windows 24 bit BMP map is converted to 16 plans can be used for set-top boxes used image processing package
文件列表(日期:~)(点击判断是否您需要的文件,如果是垃圾请在下面评价投诉):
&[]:一般,勉强可用&[]:一般,勉强可用
&近期下载过的用户:
&相关搜索:
&输入关键字,在本站277万海量源码库中尽情搜索:
&[] - 这是nioS开发的详细解说,希望对初学的朋友来说有一定的帮助
&[] - 把JPG/BMP图片转换位RGB565格式, 这是为了DX应用的方便(16位色), 也可以用于LINUX的帧缓存(16位色) 附带转换程序+图片查看
&[] - 此工具,只要是把24位bmp图转换成16位565格式数据,用于嵌入式平台
&[] - 一个把任意图片转换为C语言数组的程序,非常好用。
直接流览打开bmp或JPG图片,点convert即可转换为同名的.c文件,方便在嵌入式硬件,应用编译时,没有文件系统不能读取文件的问题。
&[] - bmp转换为jpeg,jpeg压缩的源代码 程序用vc实现了bmp图片转换成jpeg图片
&[] - LCD控制器驱动的24位TFT真彩屏接口设计,实现RGB565---RGB888 转换
&[] - 我自己写的程序,将24位的BMP位图转成16位的(5r6g5b)格式的代码,用于弹片机编程
&[] - 实现24位位图到16位位图的转换,采用565格式压缩
&[] - 用的是vc++编译的。有序抖动算法。这个代码是和同学一起做的。刚开始作,感觉很难,什么都不懂,现在感觉好多了。\"~\"//size:字体大小 12/16//mode:叠加方式(1)还是非叠加方式(0)void LCD_ShowChar(u16 x,u16 y,u8 num,u8 size,u8 mode){& && && && && && && && && && && && && && && && && & u8 temp,t1,t;& && & u16 y0=y;& && & u16 colortemp=POINT_COLOR;& && && && && && && && && && & & && & //设置窗口& && && && && && && & num=num-\' \';//得到偏移后的值& && & if(!mode) //非叠加方式& && & {& && && &&&for(t=0;t<t++)& && && &&&{& && && && && && && && &if(size==12)temp=asc2_1206[num][t];&&//调用1206字体& && && && && && && &else temp=asc2_1608[num][t];& && && && & //调用1608字体& && && && && && && && && && && & & && && && && &for(t1=0;t1<8;t1++)& && && && && && && &{& && && && && && && &&&& && && && && && && & if(temp&0x80)POINT_COLOR=& && && && && && && && && & else POINT_COLOR=BACK_COLOR;& && && && && && && && && & LCD_DrawPoint(x,y);& && && && && && && && && && & temp<<=1;& && && && && && && && && & y++;& && && && && && && && && & if(x>=lcddev.height) {POINT_COLOR=}//超区域了& && && && && && && && && & if((y-y0)==size)& && && && && && && && && & {& && && && && && && && && && && &&&y=y0;& && && && && && && && && && && &&&x++;& && && && && && && && && && && &&&if(x>=lcddev.width) {POINT_COLOR=}//超区域了& && && && && && && && && && && &&&& && && && && && && && && & }& && && && && && && &}& &&&& && && &&&}& & & && & }else//叠加方式& && & {& && && &&&for(t=0;t<t++)& && && &&&{& && && && && && && && &if(size==12)temp=asc2_1206[num][t];&&//调用1206字体& && && && && && && &else temp=asc2_1608[num][t];& && && && & //调用1608字体& && && && && && && && && && && & & && && && && &for(t1=0;t1<8;t1++)& && && && && && && &{& && && && && && && &&&& && && && && && && & if(temp&0x80)LCD_DrawPoint(x,y); & && && && && && && && && & temp<<=1;& && && && && && && && && & y++;& && && && && && && && && & if(x>=lcddev.height) {POINT_COLOR=}//超区域了& && && && && && && && && & if((y-y0)==size)& && && && && && && && && & {& && && && && && && && && && && &&&y=y0;& && && && && && && && && && && &&&x++;& && && && && && && && && && && &&&if(x>=lcddev.width) {POINT_COLOR=}//超区域了& && && && && && && && && && && &&&& && && && && && && && && & }& && && && && && && &}& &&&& && && &&&}& & & && & }& && & POINT_COLOR=& && && && && && && && & }&&在LCD_ShowChar函数里面,我们采用画点函数来显示字符,虽然速度不如开辟窗口的方式,但是这样写可以有更好的兼容性,方便在不同LCD之间移植。该代码中我们用到了两个字符集点阵数据数组asc2_1206和asc2_1608,这两个字符集的点阵数据的提取方式,同十七章介绍的提取方法是一模一样的。详细请参考第十七章。 最后,我们再介绍一下TFTLCD模块的初始化函数LCD_Init,该函数先初始化STM32与TFTLCD连接的IO口,并配置FSMC控制器,然后读取LCD控制器的型号,根据控制IC的型号执行不同的初始化代码,其简化代码如下: //初始化lcd//该初始化函数可以初始化各种ILI93XX液晶,但是其他函数是基于ILI9320的!!!//在其他型号的驱动芯片上没有测试! void LCD_Init(void){& && && && && && && && && && && && && && && && && && && && && && && & & && & RCC->AHBENR|=1<<8;& && & //使能FSMC时钟& &&&& && &RCC->APB2ENR|=1<<3;& && &//使能PORTB时钟& && & RCC->APB2ENR|=1<<5;& && &//使能PORTD时钟& && & RCC->APB2ENR|=1<<6;& && &//使能PORTE时钟& && &RCC->APB2ENR|=1<<8;& && &//使能PORTG时钟& && & RCC->APB2ENR|=1<<0;& && &//使能AFIO时钟& & & && & GPIOB->CRL&=0XFFFFFFF0;//PB0推挽输出 背光& && & GPIOB->CRL|=0X;& && && & & && & //PORTD复用推挽输出& && & & && & GPIOD->CRH&=0X00FFF000;& && & GPIOD->CRH|=0XBB000BBB;& && & GPIOD->CRL&=0XFF00FF00;& && & GPIOD->CRL|=0X00BB00BB;& && && & & && & //PORTE复用推挽输出& && & & && & GPIOE->CRH&=0X;& && & GPIOE->CRH|=0XBBBBBBBB;& && & GPIOE->CRL&=0X0FFFFFFF;& && & GPIOE->CRL|=0XB0000000;& && && && && && && && && && && && && && && && && && && && && && && && && && &&&& && & //PORTG12复用推挽输出 A0& && && && && && && && && && && && && && && && && && && && && && && && && && && & & && & GPIOG->CRH&=0XFFF0FFFF;& && & GPIOG->CRH|=0X000B0000;& && & GPIOG->CRL&=0XFFFFFFF0;//PG0->RS& && & GPIOG->CRL|=0X0000000B;& && & //寄存器清零& && & //bank1有NE1~4,每一个有一个BCR+TCR,所以总共八个寄存器。& && & //这里我们使用NE4 ,也就对应BTCR[6],[7]。& && && && && && && && && && && && & FSMC_Bank1->BTCR[6]=0X;& && & FSMC_Bank1->BTCR[7]=0X;& && & FSMC_Bank1E->BWTR[6]=0X;& && & //操作BCR寄存器& && & 使用异步模式& && & FSMC_Bank1->BTCR[6]|=1<<12;& && && && &&&//存储器写使能& && & FSMC_Bank1->BTCR[6]|=1<<14;& && && && &&&//读写使用不同的时序& && & FSMC_Bank1->BTCR[6]|=1<<4;& && && && &&&//存储器数据宽度为16bit& && & & && & //操作BTR寄存器 & && & //读时序控制寄存器& && && && && && && && && && && && && && && && &&&& && & FSMC_Bank1->BTCR[7]|=0<<28;& && & //模式A& && && && && && && && && && && && && && && && && && && && && && && & FSMC_Bank1->BTCR[7]|=1<<0;& && & //地址建立时间(ADDSET)为2个HCLK & && & //因为液晶驱动IC的读数据的时候,速度不能太快,尤其对1289这个IC。& && & FSMC_Bank1->BTCR[7]|=0XF<<8;&&//数据保存时间为16个HCLK& && && & & && & //写时序控制寄存器&&& && & FSMC_Bank1E->BWTR[6]|=0<<28;&&//模式A& && && && && && && && && && && && && && && && && && && && && && & FSMC_Bank1E->BWTR[6]|=0<<0;& &&&//地址建立时间(ADDSET)为1个HCLK //4个HCLK(HCLK=72M)因为液晶驱动IC的写信号脉宽,//最少也得50ns。72M/4=24M=55ns& && && & & && & FSMC_Bank1E->BWTR[6]|=3<<8;& & //数据保存时间为4个HCLK& && && && & //使能BANK1,区域4& && & FSMC_Bank1->BTCR[6]|=1<<0;& && && &//使能BANK1,区域4& &
& && & delay_ms(50); // delay 50 ms & && & LCD_WriteReg(0x1);& && & delay_ms(50); // delay 50 ms & && &lcddev.id = LCD_ReadReg(0x0000);& && && &if(lcddev.id <0XFF||lcddev.id==0XFFFF)//读到ID不正确& && & {& &&&& && && && &&&//尝试9341的ID读取&&& && && && &&&LCD_WR_REG(0XD3);& && && && && && && && && && & & && && && &&&LCD_RD_DATA();& && && && && && &&&//dummy read& && &&&& && && && & LCD_RD_DATA();& && && && && &&&//读到0X00& && && && & lcddev.id=LCD_RD_DATA();& &&&//读取93& && && && && && && && && && && && && && && && && &&&& && && && & lcddev.id<<=8;& && && && &&&lcddev.id|=LCD_RD_DATA();& &&&//读取41& && && && && && && && && &&&& && &}& && &printf(\" LCD ID:%x\\r\\n\",lcddev.id);& &&&//打印LCD ID&&& && & if(lcddev.id==0X9341)& && && && && && && &&&//9341初始化& && & { & && && && &&&……//9341初始化代码 & && & }else if(lcddev.id==0x9325)//9325& && & { & && && && &&&……//9325初始化代码 }else if(lcddev.id==0x9328)& && && && && & //ILI9328& &OK&&& && & { & && && && &&&……//9328初始化代码 & && & }else if(lcddev.id==0x9320||lcddev.id==0x9300)//未测试.& && & {& && && && &&&……//9300初始化代码 & && & }else if(lcddev.id==0X9331)& && && && && & & && & { & && && && &&&……//9331初始化代码 & && & }else if(lcddev.id==0x5408)& && & { & && && && &&&……//5408初始化代码 & && & }& &&&& && & else if(lcddev.id==0x1505)//OK& && & { & && && && &&&……//1505初始化代码 & && & }else if(lcddev.id==0xB505)& && & { & && && && &&&……//B505初始化代码& && & & && & }else if(lcddev.id==0xC505)& && & {& && && && &&&……//C505初始化代码& && & & && & }else if(lcddev.id==0x8989)& && & {& && &&&& && && && &&&……//8989初始化代码& && && && &&&& && & }else if(lcddev.id==0x4531)& && & {& && && && &&&……//4531初始化代码 & && & }else if(lcddev.id==0x4535)& && & {& && && && && && && && & & && && && &&&……//4535初始化代码 & && & }& && && && && && & LCD_Display_Dir(0);& && && && && & //默认为竖屏显示& && & LCD_LED=1;& && && && && && && && && &&&//点亮背光& && & LCD_Clear(WHITE);}该函数先对FSMC相关IO进行初始化,然后是FSMC的初始化,这个我们在前面都有介绍,最后根据读到的LCD ID,对不同的驱动器执行不同的初始化代码,从上面的代码可以看出,这个初始化函数可以针对13款不同的驱动IC执行初始化操作,这样大大提高了整个程序的通用性。大家在以后的学习中应该多使用这样的方式,以提高程序的通用性、兼容性。特别注意:本函数使用了printf来打印LCD ID,所以,如果你在主函数里面没有初始化串口,那么将导致程序死在printf里面!!如果不想用printf,那么请注释掉它。保存ILI93xx.c,并将该代码加入到HARDWARE组下。在介绍完了ILI93xx.c的内容之后,然后我们在lcd.h里面输入如下内容:#ifndef __LCD_H#define __LCD_H& && && &#include \"sys.h\"& &&&#include \"stdlib.h\" //LCD重要参数集typedef struct {& && && && && && && && && && && && && && && && && && && && && && && && && && & u16& && && && && && &&&//LCD 宽度& && & u16& && && && && && & //LCD 高度& && & u16& && && && && && && && & //LCD ID& && & u8&&& && && && && && && &&&//横屏还是竖屏控制:0,竖屏;1,横屏。& &&&& && & u8& && && && && & //开始写gram指令& && & u8&&& && && &//设置x坐标指令& && & u8&&& && && &//设置y坐标指令&&}_lcd_& && & //LCD参数extern _lcd_ //管理LCD重要参数//LCD的画笔颜色和背景色& & extern u16 POINT_COLOR;//默认红色& & extern u16 BACK_COLOR; //背景颜色.默认为白色//////////////////////////////////////////////////////////////////////////////////&&//-----------------LCD端口定义---------------- #define& & LCD_LED PBout(0) //LCD背光& && && && &&&PB0& && && & //LCD地址结构体typedef struct{& && & u16 LCD_REG;& && & u16 LCD_RAM;} LCD_TypeD//使用NOR/SRAM的 BANK 4,地址位HADDR[27,26]=11 A10作为数据命令区分线 //注意设置时STM32内部会右移一位对其! X3E& && && && && && && && &#define LCD_BASE& && &&&((u32)(0x6C000000 | 0x000007FE))#define LCD& && && && & ((LCD_TypeDef *) LCD_BASE)////////////////////////////////////////////////////////////////////////////////////扫描方向定义#define L2R_U2D 0 //从左到右,从上到下#define L2R_D2U 1 //从左到右,从下到上#define R2L_U2D 2 //从右到左,从上到下#define R2L_D2U 3 //从右到左,从下到上#define U2D_L2R 4 //从上到下,从左到右#define U2D_R2L 5 //从上到下,从右到左#define D2U_L2R 6 //从下到上,从左到右#define D2U_R2L 7 //从下到上,从右到左& && & #define DFT_SCAN_DIR&&L2R_U2D //默认的扫描方向//画笔颜色#define WHITE& && && && &&&0xFFFF……//省略部分#define LBBLUE& && && &&&0X2B12 //浅棕蓝色(选择条目的反色)& && && & void LCD_Init(void);& && && && && && && && && && && && && && && && && && && && && && &&&/初始化void LCD_DisplayOn(void);& && && && && && && && && && && && && && && && && && && & //开显示void LCD_DisplayOff(void);& && && && && && && && && && && && && && && && && && && &//关显示void LCD_Clear(u16 Color);& && && && && && && && && && && && && && && && && && & //清屏void LCD_SetCursor(u16 Xpos, u16 Ypos);& && && && && && && && && && && && &//设置光标void LCD_DrawPoint(u16 x,u16 y);& && && && && && && && && && && && && && && &&&//画点u16 LCD_ReadPoint(u16 x,u16 y);& && && && && && && && && && && && && && && &//读点 void Draw_Circle(u16 x0,u16 y0,u8 r);& && && && && && && && && && && && && && && && & //画圆void LCD_DrawLine(u16 x1, u16 y1, u16 x2, u16 y2);& && && && && && &&&//画线void LCD_DrawRectangle(u16 x1, u16 y1, u16 x2, u16 y2);& && && && &//画矩形void LCD_Fill(u16 sx,u16 sy,u16 ex,u16 ey,u16 color);& && && && && &&&//填充单色void LCD_Color_Fill(u16 sx,u16 sy,u16 ex,u16 ey,u16 *color);& && &&&//填充指定颜色void LCD_ShowChar(u16 x,u16 y,u8 num,u8 size,u8 mode);& && && && &//显示一个字符void LCD_ShowNum(u16 x,u16 y,u32 num,u8 len,u8 size);& && && && &//显示一个数字void LCD_ShowxNum(u16 x,u16 y,u32 num,u8 len,u8 size,u8 mode);//显示 数字void LCD_ShowString(u16 x,u16 y,u16 width,u16 height,u8 size,u8 *p);//显示一个字符串,12/16字体void LCD_WriteReg(u8 LCD_Reg, u16 LCD_RegValue);u16 LCD_ReadReg(u8 LCD_Reg);void LCD_WriteRAM_Prepare(void);void LCD_WriteRAM(u16 RGB_Code);& && && && &&&void LCD_Scan_Dir(u8 dir);& && && && && && && && && && && && && && & //设置屏扫描方向void LCD_Display_Dir(u8 dir);& && && && && && && && && && && && && &//设置屏幕显示方向& && && && &// LCD寄存器&&#define R0& && && && & 0x00……//省略部分#define R229& && && &&&0xE5& && && && && && && && && && && && && && && && && && && &&&#endif这段代码的两个重要结构体定义,我们都在前面有介绍,其他的相对就比较简单了。另外这段代码对颜色和驱动器的寄存器进行了很多宏定义,限于篇幅考虑,我们没有完全贴出来,省略了其中绝大部分。此部分我们就不多说了。接下来,我们在test.c里面修改main函数如下:int main(void){
& && &u8 x=0;& && & u8 lcd_id[12];& && && && && &//存放LCD ID字符串& && &Stm32_Clock_Init(9);& & //系统时钟设置& && & uart_init(72,9600);& && &//串口初始化为9600& && & delay_init(72);& && && && && && &//延时初始化 & && & LED_Init();& && && && && && && &&&//初始化与LED连接的硬件接口& && &LCD_Init();& && & POINT_COLOR=RED;& && & sprintf((char*)lcd_id,\"LCD ID:%04X\",lcddev.id);//将LCD ID打印到lcd_id数组& && &&&& && &while(1) & && & {& && && && && && && && &&&switch(x)& && && && &&&{& && && && && && && &case 0:LCD_Clear(WHITE);& && && && && && && &case 1:LCD_Clear(BLACK);& && && && && && && &case 2:LCD_Clear(BLUE);& && && && && && && &case 3:LCD_Clear(RED);& && && && && && && &case 4:LCD_Clear(MAGENTA);& && && && && && && &case 5:LCD_Clear(GREEN);& && && && && && && &case 6:LCD_Clear(CYAN);case 7:LCD_Clear(YELLOW);& && && && && && && &case 8:LCD_Clear(BRRED);& && && && && && && &case 9:LCD_Clear(GRAY);& && && && && && && &case 10:LCD_Clear(LGRAY);& && && && && && && &case 11:LCD_Clear(BROWN);& && && && &&&}& && && && &&&POINT_COLOR=RED;& & & && && && &&&LCD_ShowString(30,50,200,16,16,\"WarShip STM32 ^_^\");& &&&& && && && &&&LCD_ShowString(30,70,200,16,16,\"TFTLCD TEST\");& && && && && && &&&LCD_ShowString(30,90,200,16,16,\"ATOM@ALIENTEK\");& && && && & LCD_ShowString(30,110,200,16,16,lcd_id);& && && && &&&//显示LCD ID& && && && && && && && && && && && && && && && & LCD_ShowString(30,130,200,16,16,\"\");& && && & & && && &&&x++;& && && && &&&if(x==12)x=0;& && && && &&&LED0=!LED0;& && && && && && && && && && && &&&& && && && &&&delay_ms(1000);& & & && & } }该部分代码将显示一些固定的字符,同时显示LCD驱动IC的型号,然后不停的切换背景颜色,每1s切换一次。而LED0也会不停的闪烁,指示程序已经在运行了。其中我们用到一个sprintf的函数,该函数用法同printf,只是sprintf把打印内容输出到指定的内存区间上,sprintf的详细用法,请百度。在编译通过之后,我们开始下载验证代码。
18.4 下载验证 将程序下载到战舰STM32后,可以看到DS0不停的闪烁,提示程序已经在运行了。同时可以看到TFTLCD模块的显示如图18.4.1所示:
图18.4.1 TFTLCD显示效果图我们可以看到屏幕的背景是不停切换的,同时DS0不停的闪烁,证明我们的代码被正确的执行了,达到了我们预期的目的。
[ 本帖最后由 正点原子 于
18:50 编辑 ]
作者的其他最新日志
评论 ( 个评论)
EEWORLD 官方微信
Powered by

我要回帖

更多关于 接待室效果图 的文章

 

随机推荐