batou 发表于 2014-10-16 17:21:20

STM32F429驱动7寸屏

最近接到一个新案子,需要驱动7寸屏,选择的MCU是STM32F429,之前没有弄过,硬件已经画出来了,用STM32F429的LTDC(18bit)接GM7123输出RGB信号到7寸屏,没有用SDRAM作缓存,不知道可不可行?现在手头有块STM32F429 discovery版,驱动2.4寸屏都用了SDRAM作缓存的,不知道没有SDRAM驱动7寸屏可不可行,很久没发帖了,特来请大神们给点建议?

czg1411 发表于 2014-10-16 17:35:27

7寸的不用SDRAM缓存不够,怎么不用24位的呢

liwei_jlu 发表于 2014-10-16 17:52:37

谁定的方案找谁,不做个验证就画板?
还是需要sdram做缓存的

czg1411 发表于 2014-10-16 17:59:06

2.4寸用16位内部RAM做缓存还是够用,也只能用单层

honami520 发表于 2014-10-16 18:37:52

用都没用过,也敢接!!!成功率稍微低了点。就算最后能成功,100%也会折腾不少时间的!双方都比较草率啊

linux-0405209 发表于 2014-10-16 18:42:23

honami520 发表于 2014-10-16 18:37
用都没用过,也敢接!!!成功率稍微低了点。就算最后能成功,100%也会折腾不少时间的!双方都比较草率啊 ...

有见地~~~不能见钱就看眼{:titter:}

takashiki 发表于 2014-10-16 19:22:14

LZ的屏的分辨率是多少?480*234的可行,800*480、1024*600的就别想了

czg1411 发表于 2014-10-16 21:22:48

7寸的估计是800*480的

batou 发表于 2014-10-17 09:10:00

czg1411 发表于 2014-10-16 17:35
7寸的不用SDRAM缓存不够,怎么不用24位的呢

是我太草率了,STM32F429的RGB只有22位,R0跟R1没有

czg1411 发表于 2014-10-17 09:20:33

batou 发表于 2014-10-17 09:10
是我太草率了,STM32F429的RGB只有22位,R0跟R1没有

LQFP176封装的有

batou 发表于 2014-10-17 09:27:51

czg1411 发表于 2014-10-17 09:20
LQFP176封装的有

是的,你用过这个芯片吧,跟LPC1788比性能怎样?

batou 发表于 2014-10-17 09:28:52

liwei_jlu 发表于 2014-10-16 17:52
谁定的方案找谁,不做个验证就画板?
还是需要sdram做缓存的

是我们太草率,手头也没有相关硬件就没有做实验

batou 发表于 2014-10-17 09:31:19

czg1411 发表于 2014-10-16 17:59
2.4寸用16位内部RAM做缓存还是够用,也只能用单层

是的{:smile:}

batou 发表于 2014-10-17 09:32:20

takashiki 发表于 2014-10-16 19:22
LZ的屏的分辨率是多少?480*234的可行,800*480、1024*600的就别想了

800*480的,这么说只能重新画板打样了

batou 发表于 2014-10-17 09:32:42

czg1411 发表于 2014-10-16 21:22
7寸的估计是800*480的

对滴{:smile:}

batou 发表于 2014-10-17 09:35:33

honami520 发表于 2014-10-16 18:37
用都没用过,也敢接!!!成功率稍微低了点。就算最后能成功,100%也会折腾不少时间的!双方都比较草率啊 ...

是啊,时间就是金钱,不能拖久了,已经叫硬工重新画板了

big_cat 发表于 2014-10-17 09:36:52

行不行在方案论证的时候就能确定啊。

batou 发表于 2014-10-17 09:38:40

感谢各位大大的提醒和建议,已经加入2M SDRAM,希望后面调试能一帆风顺

batou 发表于 2014-10-17 09:40:40

big_cat 发表于 2014-10-17 09:36
行不行在方案论证的时候就能确定啊。

小公司,各方面都不完善,你懂的

czg1411 发表于 2014-10-17 09:43:21

batou 发表于 2014-10-17 09:27
是的,你用过这个芯片吧,跟LPC1788比性能怎样?

比LPC1788快,而且还有DMA2D。就是价格高了一点。

honami520 发表于 2014-10-17 10:17:41

batou 发表于 2014-10-17 09:40
小公司,各方面都不完善,你懂的

哦,是公司项目啊!那应该没什么问题的。2MB的SDRAM稍微少了点!勉强满足需要把!
最好用稍微大一点的SDRAM,把用到的图片上电后都放到SDRAM里面去。需要用的时候,可以快速的刷新图片。
比你再从外部FLASH里面读出来快多了。

so_so_so_so 发表于 2014-10-17 10:28:32

7寸屏TFT驱动,不知道F4能不能胜任,等楼主试验。

batou 发表于 2014-10-17 10:32:21

so_so_so_so 发表于 2014-10-17 10:28
7寸屏TFT驱动,不知道F4能不能胜任,等楼主试验。

我的是18bitRGB数字信号经过GM7123转成模拟的VGA信号啊,也是7寸屏,应该差不多

faduo2012 发表于 2014-10-17 10:33:00

一直想试试,一直没去弄,坐等楼主实验

batou 发表于 2014-10-17 11:03:03

honami520 发表于 2014-10-17 10:17
哦,是公司项目啊!那应该没什么问题的。2MB的SDRAM稍微少了点!勉强满足需要把!
最好用稍微大一点的SDR ...

是啊,跟8M位字节的差不多,到时不行可以换的,用到的图片上电后就放到SDRAM里,这真是个好方法啊,速度肯定快多了

big_cat 发表于 2014-10-17 12:32:06

batou 发表于 2014-10-17 11:03
是啊,跟8M位字节的差不多,到时不行可以换的,用到的图片上电后就放到SDRAM里,这真是个好方法啊,速度 ...

各种图片资源放在SDRAM中是正常的处理方式。WINCE,LINUX系统也都是上电从FLASH中复制到SDRAM中后,在SDRAM中才启动运行的,速度就很快了。

baonng 发表于 2014-10-20 15:12:01

SDRAM的价格应该很便宜,你用2M不见得比8M的便宜,还是大点好。

batou 发表于 2014-10-21 09:58:41

baonng 发表于 2014-10-20 15:12
SDRAM的价格应该很便宜,你用2M不见得比8M的便宜,还是大点好。

是的,就用8M的了

batou 发表于 2014-10-21 09:59:56

老板真的下了血本,80多RMB的芯片下了5块,我都替他不舍

Nexus 发表于 2014-10-21 10:02:13

honami520 发表于 2014-10-16 18:37
用都没用过,也敢接!!!成功率稍微低了点。就算最后能成功,100%也会折腾不少时间的!双方都比较草率啊 ...

我觉得,没做过敢接是很正常的事情,至少在学校里面就是这样的。外面公司说要做什么,都是先接过来再说的~~社会就是这样。。。当然,我们都明白,双方都没好处,可是有钱赚,谁在乎。

nongxiaoming 发表于 2014-10-21 10:05:01

不用SDRAM做缓存推7寸屏?自己计算一下啊,sram 256k都用完都不够坐一层的缓存。

honami520 发表于 2014-10-21 11:08:21

Nexus 发表于 2014-10-21 10:02
我觉得,没做过敢接是很正常的事情,至少在学校里面就是这样的。外面公司说要做什么,都是先接过来再说的 ...

并不是说要完全都会!有些了解过,觉得把握大的,当然要接!总不可能什么都会了,才去做事吧!
不过根据N多项目的实际经验来说,有些比较复杂的东西,但是之前没有类似经验的,把握不是太大的。
这种项目接了,最后很有可能就是做不出来的。或者本身一个月的,最后花了3个月还搞不定。这个时候,你就亏大了。因为,你最多拿到一点点定金。客户不是傻子,不会一开始就给你很多钱的。
这个浪费掉得2-3个月时间,去做搞的定的事情,最后赚得多,效果更好。
一句话总结:在自己能力范围内的,把握大的可接。超出太多的,放弃其实更划算。

love0679 发表于 2014-10-21 11:13:50

跟着前辈学习~以前都不懂弄缓存……

Nexus 发表于 2014-10-21 11:32:41

honami520 发表于 2014-10-21 11:08
并不是说要完全都会!有些了解过,觉得把握大的,当然要接!总不可能什么都会了,才去做事吧!
不过根据N ...

恩,很实在。我也只是说明下,学校里面的状况。老板接项目从来不看会不会,因为他都不会,而且他可以逼学生做出来。所以只要有钱,都会接。

batou 发表于 2014-10-21 13:37:48

nongxiaoming 发表于 2014-10-21 10:05
不用SDRAM做缓存推7寸屏?自己计算一下啊,sram 256k都用完都不够坐一层的缓存。 ...

是的啊,PCB已经来了,驱动2.4寸屏跟7寸屏除了缓存不一样,其他应该都一样吧

batou 发表于 2014-10-21 13:38:49

honami520 发表于 2014-10-21 11:08
并不是说要完全都会!有些了解过,觉得把握大的,当然要接!总不可能什么都会了,才去做事吧!
不过根据N ...

说的太对了{:handshake:}

hilam 发表于 2014-10-21 16:41:37

哈哈,我用新唐N329做八寸屏,效果好,性价比更高

ljuneLCD 发表于 2014-10-21 16:48:40

batou 发表于 2014-10-17 09:10
是我太草率了,STM32F429的RGB只有22位,R0跟R1没有

你可以用18位(6:6:6)或者16位(5:6:5)也是可以的,去掉地位,只要高位就可以了

batou 发表于 2014-10-22 13:30:51

hilam 发表于 2014-10-21 16:41
哈哈,我用新唐N329做八寸屏,效果好,性价比更高

老板选的芯片,么有办法

batou 发表于 2014-10-22 13:31:30

ljuneLCD 发表于 2014-10-21 16:48
你可以用18位(6:6:6)或者16位(5:6:5)也是可以的,去掉地位,只要高位就可以了

是的,就是用18位(6:6:6)

study_hardware 发表于 2014-10-22 14:02:41

刚画过这个板子 stm32f429+128m美光的sdram+1g美光nand+4.3+5.6裸屏液晶

batou 发表于 2014-10-22 15:32:25

study_hardware 发表于 2014-10-22 14:02
刚画过这个板子 stm32f429+128m美光的sdram+1g美光nand+4.3+5.6裸屏液晶

厉害,1g的nand做什么用,U盘吗

study_hardware 发表于 2014-10-22 20:47:16

batou 发表于 2014-10-22 15:32
厉害,1g的nand做什么用,U盘吗

1Gb 是比特 也就是128M,就是存放图片和病人的数据就差不多了

fishhead 发表于 2014-10-27 10:47:11

batou 发表于 2014-10-21 09:59
老板真的下了血本,80多RMB的芯片下了5块,我都替他不舍

STM32F429要80元么?好不好买啊?

batou 发表于 2014-10-27 11:34:39

fishhead 发表于 2014-10-27 10:47
STM32F429要80元么?好不好买啊?

还好吧,淘宝上就有

batou 发表于 2014-10-27 11:36:23

honami520 发表于 2014-10-21 11:08
并不是说要完全都会!有些了解过,觉得把握大的,当然要接!总不可能什么都会了,才去做事吧!
不过根据N ...

请教一个问题,关于stm32f429驱动7寸屏显示的,如图片所示,为什么会出现一条条的蓝色条形呢,还有画的圆跟正方形尺寸都不太对,驱动代码是从官网的2.4寸屏的基础上改的,这些跟同步跟消隐信号配置有关系吗

honami520 发表于 2014-10-27 12:21:07

batou 发表于 2014-10-27 11:36
请教一个问题,关于stm32f429驱动7寸屏显示的,如图片所示,为什么会出现一条条的蓝色条形呢,还有画的圆 ...

应该是没关系!你的白色框能正常显示就说明了驱动是对的。
有一个地方可能需要注意一下。就是SDRAM的初始化。SDRAM和内部SRAM是有区别的。如果不初始化的话,它内部并不是全0。
官方的是2.4的屏,分辨率小。你现在7寸,最起码也是800*480,所以,我猜问题可能是出在这!
不过话说回来了。你直接去刷全屏单色不就马上知道答案了。

GodHunter 发表于 2014-10-27 12:45:12

7寸,好吃力的感觉。。。

mon51 发表于 2014-10-27 16:02:38

没有缓存很难驱动LCD。前段时间正好做了7寸驱动。可惜是客户的。不能随便公开。

阿文 发表于 2014-10-27 17:16:52

效果怎样?

batou 发表于 2014-10-28 14:33:00

honami520 发表于 2014-10-27 12:21
应该是没关系!你的白色框能正常显示就说明了驱动是对的。
有一个地方可能需要注意一下。就是SDRAM的初始 ...

你说的很对,现在可以刷屏了,跑emwin看了下效果不怎么理想,还有如图所示右下角的进度条没显示出来,我调整过尺寸等参数都没有解决,不知哪里问题

batou 发表于 2014-10-28 14:39:35

GodHunter 发表于 2014-10-27 12:45
7寸,好吃力的感觉。。。

还行吧,刷屏可以达到57M

batou 发表于 2014-10-28 14:45:34

mon51 发表于 2014-10-27 16:02
没有缓存很难驱动LCD。前段时间正好做了7寸驱动。可惜是客户的。不能随便公开。 ...

理解,你的是800X480的吗,我的也可以显示了,只是还有个问题,移植网上的emwin左下角的进度条还有部分显示不出来,我的行场同步等信号都是按手册上面配的,我这么配的你看对吗
#defineHSW            ((uint16_t)48)   /* Horizontal synchronization */
#defineHBP            ((uint16_t)40)      /* Horizontal back porch      */
#defineHFP            ((uint16_t)40)      /* Horizontal front porch   */
#defineVSW            ((uint16_t)3)   /* Vertical synchronization   */
#defineVBP            ((uint16_t)29)      /* Vertical back porch      */
#defineVFP            ((uint16_t)13)      /* Vertical front porch       */

/* Configure horizontal synchronization width */   
LTDC_InitStruct.LTDC_HorizontalSync = HSW-1;
/* Configure vertical synchronization height */
LTDC_InitStruct.LTDC_VerticalSync = VSW-1;
/* Configure accumulated horizontal back porch */
LTDC_InitStruct.LTDC_AccumulatedHBP = HSW+HBP-1;
/* Configure accumulated vertical back porch */
LTDC_InitStruct.LTDC_AccumulatedVBP = VSW+VBP-1;
/* Configure accumulated active width */
LTDC_InitStruct.LTDC_AccumulatedActiveW = LCD_PIXEL_WIDTH + HBP+HSW-1;
/* Configure accumulated active height */
LTDC_InitStruct.LTDC_AccumulatedActiveH = LCD_PIXEL_HEIGHT + VBP+VSW-1;
/* Configure total width */
LTDC_InitStruct.LTDC_TotalWidth = LCD_PIXEL_WIDTH + HBP + HFP+HSW-1;
/* Configure total height */
LTDC_InitStruct.LTDC_TotalHeigh = LCD_PIXEL_HEIGHT + VBP + VFP+VSW-1;

batou 发表于 2014-10-28 14:47:49

阿文 发表于 2014-10-27 17:16
效果怎样?

还不错哦

lishunfu 发表于 2014-10-28 15:33:13

hilam 发表于 2014-10-21 16:41
哈哈,我用新唐N329做八寸屏,效果好,性价比更高

请问个人玩新唐N329如果购买芯片以及得到SDK?你是N329X 裸跑,还是上系统(Ucos or Linux)?

cnxh 发表于 2014-10-28 15:36:26

hilam 发表于 2014-10-21 16:41
哈哈,我用新唐N329做八寸屏,效果好,性价比更高

八寸的是800*600,24位色吗,刷新多少帧

cnxh 发表于 2014-10-28 15:40:34

新唐N329,看起来不错
主频:200~300MHZ
内置DDR2内存
LCD驱动(1028*768)JPEG硬解
带MPEG3/MF4/H.264

qufuta 发表于 2014-10-28 15:51:49

如果刷新速度有要求,没有SRAM作保证还是有点玄

batou 发表于 2014-10-28 15:53:52

cnxh 发表于 2014-10-28 15:40
新唐N329,看起来不错
主频:200~300MHZ
内置DDR2内存


还带硬解MPEG3?不知价格怎么样

mon51 发表于 2014-10-28 16:29:56

batou 发表于 2014-10-28 14:45
理解,你的是800X480的吗,我的也可以显示了,只是还有个问题,移植网上的emwin左下角的进度条还有部分显 ...

你可以测试一下扫描范围是否达到800*480 ,那些参数,手册上不一定准。

mon51 发表于 2014-10-28 16:32:38

//-----------------------------------------------------------------------------
//函数:void LCD_GPIOInit(void)
//输入:void
//输出:void
//描述:LCD GPIO初始化
//-----------------------------------------------------------------------------
void LCD_GPIOInit(void)
{ unsigned i;
GPIO_InitTypeDef GPIO_InitStructure;
//----------------------------------------------------------------------------
// R3 -->PH9 | G2 --> PH13 | B3 --> PG11 | VSYNC --> PI10 原
// R4 --> PH10 | G3 --> PH14 | B4 --> PG12 | HSYNC -->PI9
// R5 --> PH11 | G4 --> PH15 | B5 -->PI5 | DE    --> PF10
// R6 -->PB1 | G5 -->PI0 | B6 -->PI6 | CLK   -->PG7
// R7 -->PG6 | G6 -->PI1 | B7 -->PI7 | BL_EN --> PG13
//             | G7 -->PI2 |
       
//----------------------------------------------------------------------------
// R3 -->PH9 | G2 --> PH13 | B3 --> PG11 | VSYNC -->PI9 现   为何与原来相反!!!!
// R4 --> PH10 | G3 --> PH14 | B4 -->PI4 | HSYNC --> PI10
// R5 --> PH11 | G4 --> PH15 | B5 -->PI5 | DE    --> PF10
// R6 --> PH12 | G5 -->PI0 | B6 -->PI6 | CLK   -->PG7
// R7 -->PG6 | G6 -->PI1 | B7 -->PI7 | LCD_BM-->PH6
//             | G7 -->PI2 |
// 使能GPIO时钟
RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOA | RCC_AHB1Periph_GPIOB | RCC_AHB1Periph_GPIOF | RCC_AHB1Periph_GPIOG
                         | RCC_AHB1Periph_GPIOH | RCC_AHB1Periph_GPIOI, ENABLE);
       
       
LCD_HSYNCOn();
LCD_VSYNCOn();
                LCD_U_DOn();
//                LCD_U_DOff();
//                LCD_L_ROn();
                LCD_L_ROff();
                LCD_RESETOn(); for(i=0;i<10000000;i++);
               
GPIO_InitStructure.GPIO_Mode= GPIO_Mode_AF;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
GPIO_InitStructure.GPIO_PuPd= GPIO_PuPd_NOPULL;
       
// PFxx设置为LCD
GPIO_PinAFConfig(GPIOF, GPIO_PinSource10, GPIO_AF_LTDC);   //LCD_DE
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10;
GPIO_Init(GPIOF, &GPIO_InitStructure);

// PGxx设置为LCD
GPIO_PinAFConfig(GPIOG, GPIO_PinSource7,GPIO_AF_LTDC);   //LCD_CLK               
GPIO_PinAFConfig(GPIOG, GPIO_PinSource6,GPIO_AF_LTDC);   //LCD_R7
GPIO_PinAFConfig(GPIOG, GPIO_PinSource11, GPIO_AF_LTDC);   //LCD_B3
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6 |GPIO_Pin_7 | GPIO_Pin_11;
GPIO_Init(GPIOG, &GPIO_InitStructure);

// PHxx设置为LCD
GPIO_PinAFConfig(GPIOH, GPIO_PinSource9,GPIO_AF_LTDC);   //LCD_R3
GPIO_PinAFConfig(GPIOH, GPIO_PinSource10, GPIO_AF_LTDC);   //LCD_R4
GPIO_PinAFConfig(GPIOH, GPIO_PinSource11, GPIO_AF_LTDC);   //LCD_R5
GPIO_PinAFConfig(GPIOH, GPIO_PinSource12, GPIO_AF_LTDC);   //LCD_R6
GPIO_PinAFConfig(GPIOH, GPIO_PinSource13, GPIO_AF_LTDC);   //LCD_G2
GPIO_PinAFConfig(GPIOH, GPIO_PinSource14, GPIO_AF_LTDC);   //LCD_G3
GPIO_PinAFConfig(GPIOH, GPIO_PinSource15, GPIO_AF_LTDC);   //LCD_G4
GPIO_InitStructure.GPIO_Pin =GPIO_Pin_9| GPIO_Pin_10         | GPIO_Pin_11   
                                          | GPIO_Pin_12 | GPIO_Pin_13 | GPIO_Pin_14
                                                                                                                                                                                                                                                | GPIO_Pin_15;
GPIO_Init(GPIOH, &GPIO_InitStructure);

// PIxx设置为LCD
//7+2
GPIO_PinAFConfig(GPIOI, GPIO_PinSource0,GPIO_AF_LTDC);   //LCD_G5
GPIO_PinAFConfig(GPIOI, GPIO_PinSource1,GPIO_AF_LTDC);   //LCD_G6
GPIO_PinAFConfig(GPIOI, GPIO_PinSource2,GPIO_AF_LTDC);   //LCD_G7
GPIO_PinAFConfig(GPIOI, GPIO_PinSource4,GPIO_AF_LTDC);   //LCD_B4
GPIO_PinAFConfig(GPIOI, GPIO_PinSource5,GPIO_AF_LTDC);   //LCD_B5
GPIO_PinAFConfig(GPIOI, GPIO_PinSource6,GPIO_AF_LTDC);   //LCD_B6
GPIO_PinAFConfig(GPIOI, GPIO_PinSource7,GPIO_AF_LTDC);   //LCD_B7
GPIO_PinAFConfig(GPIOI, GPIO_PinSource9,GPIO_AF_LTDC);   //LCD_VSYNC
GPIO_PinAFConfig(GPIOI, GPIO_PinSource10, GPIO_AF_LTDC);   //LCD_HSYNC
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0| GPIO_Pin_1| GPIO_Pin_2
                                          | GPIO_Pin_4| GPIO_Pin_5| GPIO_Pin_6
                              | GPIO_Pin_7| GPIO_Pin_9| GPIO_Pin_10;
GPIO_Init(GPIOI, &GPIO_InitStructure);
/* BL_EN pin configuration */
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6;
GPIO_Init(GPIOH, &GPIO_InitStructure);
       
        //_________________________________________________________________________________
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6 | GPIO_Pin_8; //添加PH8!!!!!!
GPIO_Init(GPIOH, &GPIO_InitStructure);
               
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8 | GPIO_Pin_9 | GPIO_Pin_12 ; //添加PA!!!!!!
GPIO_Init(GPIOA, &GPIO_InitStructure);
       
       LCD_RESETOff();
                for(i=0;i<100000;i++);
                LCD_RESETOn();
}
//-----------------------------------------------------------------------------
//函数:void LCD_GPIOInit(void)
//输入:void
//输出:void
//描述:LCD初始化
//-----------------------------------------------------------------------------
void LCD_Init(void)
{ //unsigned short *
LTDC_InitTypeDef       LTDC_InitStruct;
LTDC_Layer_InitTypeDef LTDC_Layer_InitStruct;
LTDC_Layer_TypeDef   LTDC_Layerx;
       
/* IO口初始化 */
LCD_GPIOInit();
       
LCD_DisplayOff();
/* 使能LCD时钟 */
RCC_APB2PeriphClockCmd(RCC_APB2Periph_LTDC, ENABLE);
/* 使能DMA时钟*/
RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_DMA2D, ENABLE);
       
/* 水平同步信号---低电平有效 */
LTDC_InitStruct.LTDC_HSPolarity = LTDC_HSPolarity_AL;   
/* 垂直同步信号---低电平有效 */
LTDC_InitStruct.LTDC_VSPolarity = LTDC_VSPolarity_AL;   
/* 数据使能信号---低电平有效 */
LTDC_InitStruct.LTDC_DEPolarity = LTDC_DEPolarity_AL;   
/* 像素时钟配置--- */
LTDC_InitStruct.LTDC_PCPolarity = LTDC_PCPolarity_IPC;
        /* LCD背光设置 */
LTDC_InitStruct.LTDC_BackgroundRedValue = 0;            
LTDC_InitStruct.LTDC_BackgroundGreenValue = 0;         
LTDC_InitStruct.LTDC_BackgroundBlueValue = 0;       
/*
   ****************************************************************************
   *PLLSAI_VCO = HSE*PLLSAI_N / PLL_M = 8 * 192 / 8 = 192MHz
   *PLLLCDCLK = PLLSAI_VCO / PLLSAI_R = 192 / 3 = 64 Mhz
   *LTDC clock frequency = PLLLCDCLK / RCC_PLLSAIDivR = 64 / 2 = 32 Mhz
   ****************************************************************************
   */
RCC_PLLSAIConfig(192, 7, 3);
RCC_LTDCCLKDivConfig(RCC_PLLSAIDivR_Div2);//RCC_PLLSAIDivR_Div2
/* 使能PLLSAI时钟 */
RCC_PLLSAICmd(ENABLE);
/* 等待PLLSAI时钟 */
while(RCC_GetFlagStatus(RCC_FLAG_PLLSAIRDY) == RESET){}
/**/
/* Timing configuration */
/* Configure horizontal synchronization width */   
LTDC_InitStruct.LTDC_HorizontalSync = 39;//40-1
/* Configure vertical synchronization height */
LTDC_InitStruct.LTDC_VerticalSync = 19;//20-1
/* Configure accumulated horizontal back porch */
LTDC_InitStruct.LTDC_AccumulatedHBP = (46-1);
/* Configure accumulated vertical back porch */
LTDC_InitStruct.LTDC_AccumulatedVBP = (23-1);
/* Configure accumulated active width */
LTDC_InitStruct.LTDC_AccumulatedActiveW = (46+LCD_PIXEL_WIDTH-1);
/* Configure accumulated active height */
LTDC_InitStruct.LTDC_AccumulatedActiveH = (23+LCD_PIXEL_HEIGHT-1);
/* Configure total width */
LTDC_InitStruct.LTDC_TotalWidth = (46+LCD_PIXEL_WIDTH+210-1);
/* Configure total height */
LTDC_InitStruct.LTDC_TotalHeigh = (23+LCD_PIXEL_HEIGHT+22-1);
LTDC_Init(&LTDC_InitStruct);
               
LTDC_Layer_InitStruct.LTDC_HorizontalStart = 46;
LTDC_Layer_InitStruct.LTDC_HorizontalStop = (LCD_PIXEL_WIDTH + 46 - 1);
LTDC_Layer_InitStruct.LTDC_VarticalStart = 23;
LTDC_Layer_InitStruct.LTDC_VerticalStop = (LCD_PIXEL_HEIGHT +23 - 1);       

/* Pixel Format configuration*/            
LTDC_Layer_InitStruct.LTDC_PixelFormat = LTDC_Pixelformat_RGB565;
/* Alpha constant (255 totally opaque) */
LTDC_Layer_InitStruct.LTDC_ConstantAlpha = 255;
/* Default Color configuration (configure A,R,G,B component values) */         
LTDC_Layer_InitStruct.LTDC_DefaultColorBlue = 0;      
LTDC_Layer_InitStruct.LTDC_DefaultColorGreen = 0;      
LTDC_Layer_InitStruct.LTDC_DefaultColorRed = 0;         
LTDC_Layer_InitStruct.LTDC_DefaultColorAlpha = 0;
/* Configure blending factors */      
LTDC_Layer_InitStruct.LTDC_BlendingFactor_1 = LTDC_BlendingFactor1_CA;   
LTDC_Layer_InitStruct.LTDC_BlendingFactor_2 = LTDC_BlendingFactor2_CA;
/* the length of one line of pixels in bytes + 3 then :
   Line Lenth = Active high width x number of bytes per pixel + 3
   Active high width         = LCD_PIXEL_WIDTH
   number of bytes per pixel = 2    (pixel_format : RGB565)
*/
LTDC_Layer_InitStruct.LTDC_CFBLineLength = ((LCD_PIXEL_WIDTH * 2) + 3);
/*the pitch is the increment from the start of one line of pixels to the
      start of the next line in bytes, then :
      Pitch = Active high width x number of bytes per pixel   
*/
LTDC_Layer_InitStruct.LTDC_CFBPitch = (LCD_PIXEL_WIDTH * 2);
/* configure the number of lines */
LTDC_Layer_InitStruct.LTDC_CFBLineNumber = LCD_PIXEL_HEIGHT;

/* Input Address configuration */
                LTDC_Layer_InitStruct.LTDC_CFBStartAdress =(uint32_t)gRam1;
LTDC_LayerInit(LTDC_Layer1, &LTDC_Layer_InitStruct);

/* Configure Layer2 */
LTDC_Layer_InitStruct.LTDC_CFBStartAdress = (uint32_t)gRam2;
LTDC_Layer_InitStruct.LTDC_BlendingFactor_1 = LTDC_BlendingFactor1_PAxCA;   
LTDC_Layer_InitStruct.LTDC_BlendingFactor_2 = LTDC_BlendingFactor2_PAxCA;
LTDC_LayerInit(LTDC_Layer2, &LTDC_Layer_InitStruct);
       
LTDC_ReloadConfig(LTDC_IMReload);

/* Enable foreground & background Layers */
LTDC_LayerCmd(LTDC_Layer1, ENABLE);
// LTDC_LayerCmd(LTDC_Layer2, ENABLE);//ENABLE
LTDC_ReloadConfig(LTDC_IMReload);
       
/* dithering activation */
LTDC_DitherCmd(ENABLE);
/* Enable the LTDC */
//LTDC_Cmd(ENABLE);

        LCD_DisplayOn();
        LCD_LTDC_Layer1_SetTransparency(255); //127
//        LCD_LTDC_Layer2_SetTransparency(127); //127
}

//---------------------------------------------------
//函数:void LCD_DisplayOn(void)
//描述:LCD显示开启,使能背光,使能电源
void LCD_DisplayOn(void)
{ GPIO_SetBits(GPIOH, GPIO_Pin_6);
LTDC_Cmd(ENABLE); /* display ON */
}
//函数:void LCD_DisplayOff(void)
//描述:LCD显示关闭,失能背光,失能电源
void LCD_DisplayOff(void)
{ GPIO_ResetBits(GPIOH, GPIO_Pin_6);
       LTDC_Cmd(DISABLE);
}
//---------------------------------------------------

zj2003 发表于 2014-10-28 19:31:18

lpc1788+sdram+flash+emwin+7寸屏, 性能效果都是杠杠的。

batou 发表于 2014-10-29 08:51:09

mon51 发表于 2014-10-28 16:32
//-----------------------------------------------------------------------------
//函数:void LCD_GPI ...

可能屏不一样,你的驱动我用不了,你有没有用emwin呢,要使显示反转过来有函数可以设置吗

yuwangwangyu 发表于 2014-11-5 13:51:18

czg1411 发表于 2014-10-17 09:20
LQFP176封装的有

你的GUI呢楼主可不厚道{:curse:}

kelena 发表于 2014-11-11 18:30:44

hilam 发表于 2014-10-21 16:41
哈哈,我用新唐N329做八寸屏,效果好,性价比更高

用这个芯片需要什么条件吗?

kutf 发表于 2014-11-11 20:40:27

fsmc初始化太麻烦,那些时序参数,一不小心就弄错,都是只能拷贝过来,

batou 发表于 2014-11-12 08:59:57

zj2003 发表于 2014-10-28 19:31
lpc1788+sdram+flash+emwin+7寸屏, 性能效果都是杠杠的。

有没有用上位机开发, 如ucguibuilder?

batou 发表于 2014-11-12 09:01:25

yuwangwangyu 发表于 2014-11-5 13:51
你的GUI呢楼主可不厚道

我的还有问题啊 尺寸 分辨率都还没对上

fenglove 发表于 2014-11-12 09:56:23

honami520 发表于 2014-10-21 11:08
并不是说要完全都会!有些了解过,觉得把握大的,当然要接!总不可能什么都会了,才去做事吧!
不过根据N ...

赞 一个 很有道理,

fenglove 发表于 2014-11-12 10:11:45

batou 发表于 2014-11-12 09:01
我的还有问题啊 尺寸 分辨率都还没对上

有没可能是 EMWIN初始化的时候LCD没有设置对?我也是参考着网上EMWIN教程搞的 lCD 不过是在F407上面 FMSC接口,

yuanshanhen 发表于 2014-11-12 10:30:02

为嘛不先买个屏幕试试呢

batou 发表于 2014-11-12 10:42:45

fenglove 发表于 2014-11-12 10:11
有没可能是 EMWIN初始化的时候LCD没有设置对?我也是参考着网上EMWIN教程搞的 lCD 不过是在F407上面 FMSC ...

我也一直在怀疑LTDC的行场同步跟前后沿参数的问题,我按手册上的配置然后也修改试了很多次,但是点还是没有对上,尤其刷新一屏时出现杂乱的颜色闪动,肿么办 呜呜~~~~(>_<)~~~~

tiger2023 发表于 2014-11-12 10:43:09

同意楼上的看法 可以自己动手去试一试

batou 发表于 2014-11-12 10:52:22

yuanshanhen 发表于 2014-11-12 10:30
为嘛不先买个屏幕试试呢

现在已经在试了,不过分辨率不对

batou 发表于 2014-11-12 11:02:29

tiger2023 发表于 2014-11-12 10:43
同意楼上的看法 可以自己动手去试一试

已经在试了,分辨率不对啊,你看得出来哪里的问题吗

smog 发表于 2014-11-13 11:13:31

顶一个,正准备研究这个

gyz1990 发表于 2014-11-13 11:21:11

好东西,跟踪研究进展

yuanshanhen 发表于 2014-11-13 12:56:26

慢慢调,别急,按说明一步一步来

heaijun 发表于 2014-11-13 20:06:58

也想用类似方案,不知道效果怎么样?

batou 发表于 2014-11-14 15:43:09

yuanshanhen 发表于 2014-11-13 12:56
慢慢调,别急,按说明一步一步来

我也想啊,可是。。你懂的 总有人逼着你急

batou 发表于 2014-11-14 15:47:29

heaijun 发表于 2014-11-13 20:06
也想用类似方案,不知道效果怎么样?

调通了的话效果肯定很好,杠杠滴

dgtg 发表于 2014-11-14 19:47:36

新唐N329价格多少????

mf_zou 发表于 2014-11-14 21:31:12

留个MARK,学习.

batou 发表于 2014-11-15 13:01:43

终于正常了,按我前面的配置就行,原来是硬件上面的问题,唉,坑死爹了,感谢各位坛友大大的热心帮助 非常感谢{:handshake:}

heitu103 发表于 2014-11-25 14:15:21

4.3寸480x272没有SDRAM可以搞不?

lushanlq 发表于 2014-11-25 18:26:45

800*480,RA8875驱动也可以呀

cao198810 发表于 2014-11-25 23:20:32

有分辨率之类的吗?可以算下么!

ffeige0303 发表于 2014-11-27 02:25:17

用2416的话80块钱CPU+nand+ddr 全搞定 就是不好焊接哎~~ 莫老大推荐的那个片子不错

heitu103 发表于 2015-4-29 16:42:12

batou 发表于 2014-10-28 14:33
你说的很对,现在可以刷屏了,跑emwin看了下效果不怎么理想,还有如图所示右下角的进度条没显示出来,我 ...

楼主是不是做了什么优化,我的429驱动480x272的4.3寸屏每秒打点数才19181000

fengyunyu 发表于 2015-4-30 07:30:20

实时性要求不高的话,买核心板,上linux可能更好些!

kinsno 发表于 2015-4-30 09:01:58

batou 发表于 2014-11-15 13:01
终于正常了,按我前面的配置就行,原来是硬件上面的问题,唉,坑死爹了,感谢各位坛友大大的热心帮助 非常 ...

硬件上什么问题呢?

你用的是144脚的吗?

batou 发表于 2015-5-4 17:35:41

heitu103 发表于 2014-11-25 14:15
4.3寸480x272没有SDRAM可以搞不?

不好意思,到现在才回复,假设RGB是565格式即每个像素2byte,则480x272需要的内存空间是480*272*2/1024=255K,而这款芯片内存也就这么大,所以就算可以也够呛的

batou 发表于 2015-5-4 17:38:34

kinsno 发表于 2015-4-30 09:01
硬件上什么问题呢?

你用的是144脚的吗?

是的,MCU跟SDRAM的走线尽量等长,还有时钟线要加个电容

batou 发表于 2015-5-4 17:41:59

heitu103 发表于 2015-4-29 16:42
楼主是不是做了什么优化,我的429驱动480x272的4.3寸屏每秒打点数才19181000

没有优化,我开始用的是全彩格式

interstellar_tr 发表于 2015-5-4 21:17:50

honami520 发表于 2014-10-16 18:37
用都没用过,也敢接!!!成功率稍微低了点。就算最后能成功,100%也会折腾不少时间的!双方都比较草率啊 ...

支持

说的有道理

kinsno 发表于 2015-5-4 22:55:26

batou 发表于 2015-5-4 17:38
是的,MCU跟SDRAM的走线尽量等长,还有时钟线要加个电容

我一直以为它也得象LPC1788一样搞一个208脚才能带得动呢;
SDRAM等长,如果在99SE里面还是不好搞的,如果在阿丽哥里面那是相当的好搞;看啥软件吧;
只是144脚,能同时接SDRAM和RGB565的TFT吗?
如果能同时接这两个器件,是否方便在不透露公司机密的前提下上个原理图参考一下;

shouqiang_zhang 发表于 2015-5-6 07:59:19

本帖最后由 shouqiang_zhang 于 2015-5-6 08:03 编辑

batou 发表于 2015-5-4 17:41
没有优化,我开始用的是全彩格式

我也想用439的LTDC驱动7寸, 准备画板了, 你用的效果怎么样? 可以介绍下吗? 有没有使用fsmc的方式快?

kinsno 发表于 2015-5-6 08:05:22

shouqiang_zhang 发表于 2015-5-6 07:59
我也想用439的LTDC驱动7寸, 准备画板了, 你用的效果怎么样? 可以介绍下吗? 有没有使用fsmc的方式快? ...

你的概念错了,一般大屏幕,都是RGB或LVDS接口,不能用FSMC,它不能和SDRAM或者NANDFLASH一样挂在总线上的;
如果你喜欢用FSMC可以用一个RA8875来转;

jiangkehong 发表于 2015-5-21 17:10:15

kinsno 发表于 2015-5-4 22:55
我一直以为它也得象LPC1788一样搞一个208脚才能带得动呢;
SDRAM等长,如果在99SE里面还是不好搞的,如果 ...

STM32F429Disc就是SDRAM+RGB屏的,大家都是参照那个来的吧

jiangkehong 发表于 2015-5-21 17:11:01

kinsno 发表于 2015-5-4 22:55
我一直以为它也得象LPC1788一样搞一个208脚才能带得动呢;
SDRAM等长,如果在99SE里面还是不好搞的,如果 ...

还有个工具STM32CUBE MX可以直接生成引脚分配图
页: [1] 2
查看完整版本: STM32F429驱动7寸屏