完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
本帖最后由 qjp1988113 于 2021-10-24 21:19 编辑 套件没有屏幕。但好在LCD的接口兼容原子的。我手里有块不知道几手的驱动为NT35310 LCD~正好拿来用~这了用并口8080的方式驱动,GD32F303这个用EXMC 的驱动方式来驱动,它跟STM32的FSMC几乎相同~ 让我们先来看看外部存储器控制器(EXMC) : 外部存储器控制器EXMC,用来访问各种片外存储器,通过配置寄存器,EXMC可以把AMBA协议转换为专用的片外存储器通信协议,包括SRAM,ROM,NOR Flash,NAND Flash,PC卡。用户还可以调整配置寄存器中的时间参数来提高通信效率。EXMC的访问空间被划分为许多个块(Bank),每个块支持特定的存储器类型,用户可以通过对Bank的控制寄存器配置来控制外部存储器。 主要特性 支持片外存储器类型: SRAM;PSRAM;ROM;NOR Flash;8 位或 16 位 NAND Flash;16 位 PC Card; AMBA 协议与各种片外存储器协议转换; 时序参数可编程可以满足用户特定需求; 每个 Bank 有独立的片选信号; 对于部分存储器类型支持独立的读写时序; 对于 NAND Flash 内置硬件 ECC; 支持 8 位,或 16 位总线带宽; NOR Flash 和 PSRAM 支持地址总线和数据总线的复用; 提供写使能和字节选择信号; 当 AMBA 总线宽度与外部存储器数据宽度不同时,会自动分割操作。 我们看看他们的地址区域划分: 我们这了选用BANK0,我们看下它的地址映射~ 我们对LCD主要要确定的就是它映射后读写的地址: //使用NOR/SRAM的 Bank0.sector1,地址位HADDR[27,26]=01 A23作为数据命令区分线 //注意设置时GD32内部会右移一位对其! (时间设备的地址往左移一位与GD32内部地址才对对应) //由于使用半字(16BIT)的连接方式,MCU内部地址线HADDR[25:1]→ FSMC_A[24:0] //即实际连线的位置往左移动一格,才与实际MCU地址对其 //这里选择A23作为数据线,实际A23对于地址0x800000 对于MCU地址需往左移一位即0x1000000 //那么当A23=0时,即LCD_RS=0时,地址0x64000000 //那么当A23=1时,即LCD_RS=1时,地址0x64000000+0x1000000=0x65000000 #define BANK0_LCD_D ((uint32_t)0x65000000) /*!< LCD data address */ #define BANK0_LCD_C ((uint32_t)0x64000000) /*!< LCD register address */ 这样我们就得到了它地址的由来,然后直接读写地址,即可完成LCD的控制~ lcd.h(仅修改读写地址,其他未改变)
lcd.c(主要都对写命令和数据做了修改,其他不变)
在main函数里面调用:
这了驱动移植自正点原子,理论可用它支持的所有屏幕。 (//2.4寸/2.8寸/3.5寸/4.3寸/7寸 TFT液晶驱动 //支持驱动IC型号包括:ILI9341/ILI9325/RM68042/RM68021/ILI9320/ILI9328/LGDP4531/LGDP4535/ // SPFD5408/1505/B505/C505/NT35310/NT35510/SSD19) 编译下载查看: |
|
相关推荐
|
|
只有小组成员才能发言,加入小组>>
204个成员聚集在这个小组
加入小组3184 浏览 0 评论
【直播课件】如何移植Open Harmony到ARM单片机芯片上
5343 浏览 0 评论
4176 浏览 3 评论
【星空派GD32F303开发板试用体验】-01-开箱验货以及点灯体验
7879 浏览 0 评论
5805 浏览 0 评论
273浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-19 09:33 , Processed in 0.615177 second(s), Total 72, Slave 53 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号