搜索
新闻详情

SWM32SRET6-50 RGB565 驱动7寸800*480屏 测试记录

282
发表时间:2022-10-21 08:52作者:全球芯 | glochip.com网址:http://glochip.com/news/

测试设备:SWM32SRET6-50 官方开发板(官方淘宝店购买) 板载SPIFLASH一枚、SD卡接口一个、标准40pin RGB显示接口一个,支持电容及电阻触摸,电阻触摸芯片未焊,电容触摸为I2C接口。如下图(图中为5寸触摸屏,实测7寸屏加转接板也可以驱动)。


5寸触摸屏一个、7寸屏(at070tn92)加转接板一套、jlink一个。


该开发板使用的SWM32SRET6-50 MCU内置8MSDRAM,对于驱动800*480的屏已经足够了。显存占用800*480*2 = 750KByte,加一个缓冲去共1500KByte。缓冲区不是必须的,有缓冲区通过切换现存地址可以避免刷屏的效果。


测试例程使用官方例程目录为\SWM320_Lib-200727\SWM320_Lib\LCD\SimplLCD_SDRAM


1、用keil4 打开例程后,修改man.c 中的分辨率设置


#define LCD_HDOT    800    //480        //水平点数

#define LCD_VDOT    480    //272        //垂直点数


2、根据屏的参数修改RGBLCDInit 函数中的


   LCD_initStruct.Hfp = 15;

    LCD_initStruct.Hbp = 40;

    LCD_initStruct.Vfp = 8;

    LCD_initStruct.Vbp = 8;


void RGBLCDInit(void)

{

    LCD_InitStructure LCD_initStruct;

   

    GPIO_Init(GPIOB, PIN12, 1, 0, 0);//±³¹â¿ØÖÆ

    GPIO_SetBit(GPIOB, PIN12);        //µãÁÁ±³¹â

   

    PORT->PORTN_SEL0 = 0xAAAAAAAA;    //

    PORT->PORTN_SEL1 = 0xAA;

   

    LCD_initStruct.Interface = LCD_INTERFACE_RGB;

    LCD_initStruct.HnPixel = LCD_HDOT;

    LCD_initStruct.VnPixel = LCD_VDOT;

    LCD_initStruct.Hfp = 15;

    LCD_initStruct.Hbp = 40;

    LCD_initStruct.Vfp = 8;

    LCD_initStruct.Vbp = 8;

    LCD_initStruct.ClkDiv = LCD_CLKDIV_2;    //

    LCD_initStruct.ClkAlways = 1;

    LCD_initStruct.SamplEdge = LCD_SAMPLEDGE_FALL;

    LCD_initStruct.HsyncWidth = LCD_HSYNC_2DOTCLK;

    LCD_initStruct.IntEOTEn = 1;

    LCD_Init(LCD, &LCD_initStruct);

}


3、根据使用的内置SDRAM 大小为8MByte,修改void MemoryInit(void) 函数中的,内存大小设置


SDRAM_InitStruct.CellSize = SDRAM_CELLSIZE_64Mb;


4、如果需要串口输出可以修改串口端口配置


    PORT_Init(PORTC, PIN2, FUNMUX0_UART0_RXD, 1);  

    PORT_Init(PORTC, PIN3, FUNMUX1_UART0_TXD, 0);   


5、还要根据开发板背光控制端口修改背光端口设置


    GPIO_Init(GPIOB, PIN12, 1, 0, 0);//

    GPIO_SetBit(GPIOB, PIN12);        //


6、SDRAM虽然是内置的,但是配置方法和外置是一样的,相关的端口除了M6、M18和M20外都不能用于其它功能。


7、DMA可以用于刷新显存,但是实测会导致闪屏,估计是对当前显存操作会导致显示短暂的中断。另外需要注意的是,调试的过程中对程序暂停,屏幕也会不正常,必须在几种颜色之间循环刷屏。应该是由于CPU停止刷屏导致的。NXP的MCU没有这个问题。这个问题会导致无法暂停查看当前运行处屏幕的状态。


8、通过修改LCD->SRCADDR = (uint32_t)LCD_Buffer;此处显存的起始地址可以实现屏幕瞬间刷新,避免从上往下刷屏的效果,这样就需要额外的SDRAM区域作为缓冲区。但是用DMA或者手动复制当前显存区域内容到缓冲区会导致黑屏,因此需要避免操作当前显存区域,只能分别刷写缓冲区和显存区的内容。


首页                                    产品展示                                        行业资讯                                   关于我们                                        联系我们
联系电话:
0755-84828852  
0755-84866816

联系方式: 手机号码:13924642346  13872769588
                13924649321  13928483205 联系邮箱:kevin@glochip.com
公司地址:
广东省深圳市龙岗区大运软件小镇1栋401室
(3号线,14号线,16号线,33号线)
网址:www.glochip.com   www.chip.com.cn
全球芯微信公众号
加密芯片 华芯微特   艾迪科泰    博雅科技    恒烁半导体    补丁科技    晶存科技   华大电子    康盈半导体     三星半导体   海力士  镁光科技     南亚科技  铠侠  金士顿   Skyhigh  Netsol
MCU  SRAM MRAM SDRAM DDR1 DDR2 DDR3 DDR4 DDR5 LPDDR3 LPDDR4 LPDDR4X LPDDR5 LPDDR5X NAND NOR eMMC UFS eMCP uMCP