因为以前用的MINI32板子,发现显示图片很慢,所以自己搞了一块用VCT6的板子。看下SDIO和FSMC是不是快点。结果现在不显示了,屏还是原来那个,确定是好的。
原理图如下:
初始化程序是这样的。
程序是这样的:
RCC->AHBENR|=1<<8; //ê1ÄüFSMCê±Öó
RCC->APB2ENR|=1<<5; //ê1ÄüPORTDê±Öó
RCC->APB2ENR|=1<<6; //ê1ÄüPORTEê±Öó
RCC->APB2ENR|=1<<4; //ê1ÄüPORTCê±Öó
GPIOC->CRH&=0XFF0FFFFF; //PC13 RST
GPIOC->CRH|=0X00300000;
//PORTD¸′óÃíÆíìêä3ö 0.1.4.5.7.8.9.10.11.14.15
GPIOD->CRH&=0X00FF0000;
GPIOD->CRH|=0XBB00BBBB;
GPIOD->CRL&=0X0F00FF00;
GPIOD->CRL|=0XB0BB00BB;
//PORTE¸′óÃíÆíìêä3ö 7.8.9.10.11.12.13.14.15
GPIOE->CRH&=0X00000000;
GPIOE->CRH|=0XBBBBBBBB;
GPIOE->CRL&=0X0FFFFFFF;
GPIOE->CRL|=0XB0000000;
rest=1;
delay_ms(5);
rest=0;
delay_ms(100); // delay 50 ms
rest=1;
delay_ms(100);
//¼Ä′æÆ÷Çåáã
//bank1óDNE1~4,ÿò»¸öóDò»¸öBCR+TCR£¬ËùòÔ×ü12°Ë¸ö¼Ä′æÆ÷¡£
//ÕaàïÎòÃÇê1óÃNE1 £¬ò2¾í¶Ôó|BTCR[0],[1]¡£
FSMC_Bank1->BTCR[0]=0X00000000;
FSMC_Bank1->BTCR[1]=0X00000000;
FSMC_Bank1E->BWTR[0]=0X00000000;
//2ù×÷BCR¼Ä′æÆ÷ ê1óÃòì2½Ä£ê½
FSMC_Bank1->BTCR[0]|=1<<12; //′æ′¢Æ÷D′ê1Äü
FSMC_Bank1->BTCR[0]|=1<<14; //¶áD′ê1óÃ2»í¬μÄê±Dò
FSMC_Bank1->BTCR[0]|=1<<4; //′æ′¢Æ÷êy¾Y¿í¶èÎa16bit
//2ù×÷BTR¼Ä′æÆ÷
//¶áê±Dò¿ØÖƼÄ′æÆ÷
FSMC_Bank1->BTCR[1]|=0<<28; //Ä£ê½A
FSMC_Bank1->BTCR[1]|=1<<0; //μØÖ·½¨á¢ê±¼ä£¨ADDSET£©Îa2¸öHCLK 1/36M=27ns(êμ¼ê>200ns)
//òòÎaòo¾§Çy¶ˉICμĶáêy¾YμÄê±oò£¬Ëù¶è2»Äü쫿죬óèÆä¶Ô1289Õa¸öIC¡£
FSMC_Bank1->BTCR[1]|=0XF<<8; //êy¾Y±£′æê±¼äÎa16¸öHCLK
//D′ê±Dò¿ØÖƼÄ′æÆ÷
FSMC_Bank1E->BWTR[0]|=0<<28; //Ä£ê½A
FSMC_Bank1E->BWTR[0]|=0<<0; //μØÖ·½¨á¢ê±¼ä£¨ADDSET£©Îa1¸öHCLK
//4¸öHCLK£¨HCLK=72M£©òòÎaòo¾§Çy¶ˉICμÄD′DÅoÅÂö¿í£¬×îéùò2μÃ50ns¡£72M/4=24M=55ns
FSMC_Bank1E->BWTR[0]|=3<<8; //êy¾Y±£′æê±¼äÎa4¸öHCLK
//ê1ÄüBANK1,Çøóò4
FSMC_Bank1->BTCR[0]|=1<<0; //ê1ÄüBANK1£¬Çøóò1
这个应该怎么改才能显示呢?先谢谢大家了!!!!
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
能读出ID,但是读出来的事9325,但事实上是9341.这一般是什么问题呢?
以前用MINI32的时候是正常的。读出来的是9341。
一周热门 更多>