OpenEdv-¿ªÔ´µç×ÓÍø

 ÕÒ»ØÃÜÂë
 Á¢¼´×¢²á
ÕýµãÔ­×ÓÈ«Ì×STM32/Linux/FPGA¿ª·¢×ÊÁÏ£¬ÉÏǧ½²STM32ÊÓÆµ½Ì³ÌÃâ·ÑÏÂÔØ...
²é¿´: 3677|»Ø¸´: 3

ΪʲôһʹÄÜFSMCʱÖӾͻá³ö´í£¿£¿£¿

[¸´ÖÆÁ´½Ó]

21

Ö÷Ìâ

66

Ìû×Ó

0

¾«»ª

Öм¶»áÔ±

Rank: 3Rank: 3

»ý·Ö
273
½ðÇ®
273
×¢²áʱ¼ä
2017-7-19
ÔÚÏßʱ¼ä
89 Сʱ
·¢±íÓÚ 2018-2-9 00:27:02 | ÏÔʾȫ²¿Â¥²ã |ÔĶÁģʽ
1½ðÇ®
ÓÃFSMC×ÜÏßÇý¶¯ILI9341¡£debugʱÕû¸öÍ£Ö¹µôÁË£¬»¹µÃÊÖ¶¯¸´Î»²ÅÄܼÌÐøÉÕд´úÂëºÍdebug¡£PG¿ÚµÄʱÖÓÊÇClock Enabled, Reset Mode£¬ÆäËû¶¼ÊÇDisable¡£
Èç¹û°ÑRCC_AHBPeriphClockCmd(RCC_AHBPeriph_FSMC,ENABLE);ÆÁ±Îµô¾ÍÄÜ´ò¿ªIO¿ÚʱÖÓ£¬Ò²²»»áÓгö´íÌáʾ¡£

´úÂë»ù±¾ºÍÔ­×Ó¸çµÄÒ»Ñù¡£³õʼ»¯Ë³ÐòÊÇÏÈGPIOÔÙFSMC¡£
void GPIO_Configuration (void)
{
        GPIO_InitTypeDef GPIO_initstructure;// GPIO³õʼ»¯½á¹¹Ìå±äÁ¿
       
        RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOD | RCC_APB2Periph_GPIOE | RCC_APB2Periph_GPIOG | RCC_APB2Periph_GPIOB | RCC_APB2Periph_AFIO,ENABLE);//´ò¿ªB,D,E,G¿ÚµÄʱÖÓ,¸´ÓÃʱÖÓ

        /*±³¹â¿ØÖÆ,PB0*/
        GPIO_initstructure.GPIO_Pin = GPIO_Pin_0;//GPIO_Pin_0  
        GPIO_initstructure.GPIO_Speed = GPIO_Speed_50MHz;
        GPIO_initstructure.GPIO_Mode = GPIO_Mode_Out_PP;
       
        GPIO_Init(GPIOB,&GPIO_initstructure);
        GPIO_SetBits(GPIOB,GPIO_Pin_0);//´ò¿ª±³¹â
       
        /*²¿·ÖÊý¾Ý¿ÚºÍWR¡¢RDÐźŽţ¬PD¿Ú*/
        GPIO_initstructure.GPIO_Pin = GPIO_Pin_0 | GPIO_Pin_1 | GPIO_Pin_4 | GPIO_Pin_5 | GPIO_Pin_8 | GPIO_Pin_9 | GPIO_Pin_10 | GPIO_Pin_14 | GPIO_Pin_15;
        GPIO_initstructure.GPIO_Speed = GPIO_Speed_50MHz;
        GPIO_initstructure.GPIO_Mode = GPIO_Mode_AF_PP;//FSMCÓõ½¸´ÓÃģʽ
       
        GPIO_Init(GPIOD,&GPIO_initstructure);
       
        /*²¿·ÖÊý¾Ý¿Ú,PE¿Ú*/
        GPIO_initstructure.GPIO_Pin = GPIO_Pin_7 | GPIO_Pin_8 | GPIO_Pin_9 | GPIO_Pin_10 | GPIO_Pin_11 | GPIO_Pin_12 | GPIO_Pin_13 | GPIO_Pin_14 | GPIO_Pin_15;
        GPIO_initstructure.GPIO_Speed = GPIO_Speed_50MHz;
        GPIO_initstructure.GPIO_Mode = GPIO_Mode_AF_PP;//FSMCÓõ½¸´ÓÃģʽ
       
        GPIO_Init(GPIOE,&GPIO_initstructure);
       
        /*RS,CSÐźŽţ¬PG0,PG12*/
        GPIO_initstructure.GPIO_Pin = GPIO_Pin_0 | GPIO_Pin_12;
        GPIO_initstructure.GPIO_Speed = GPIO_Speed_50MHz;
        GPIO_initstructure.GPIO_Mode = GPIO_Mode_AF_PP;//FSMCÓõ½¸´ÓÃģʽ
       
        GPIO_Init(GPIOG,&GPIO_initstructure);
}


void FSMC_Configuration(void)
{
        FSMC_NORSRAMInitTypeDef FSMC_NORSRAMinitstructure;//NORSRAMƬѡ¿ØÖƼĴæÆ÷ÅäÖýṹÌå
        FSMC_NORSRAMTimingInitTypeDef readwriteTiming; //¶ÁʱÐò¼Ä´æÆ÷ÅäÖýṹÌå
        FSMC_NORSRAMTimingInitTypeDef writeTiming;    //дʱÐò¼Ä´æÆ÷ÅäÖýṹÌå
       
        RCC_AHBPeriphClockCmd(RCC_AHBPeriph_FSMC,ENABLE);//´ò¿ªFSMCʱÖÓ
       
        /*¶ÁʱÐòÅäÖÃ*/
        readwriteTiming.FSMC_AddressSetupTime = 1;//ADDSETµØÖ·½¨Á¢(±£³Ö)ʱ¼äΪ1+1¸öHCLK£¬Æäʵ¾ÍÊÇLCDµÄRD±£³Ö¸ßµçƽµÄʱ¼ä
        readwriteTiming.FSMC_AddressHoldTime = 0; //ADDHLDµØÖ·±£³Öʱ¼ä£¬AģʽδʹÓõ½£¬¸ø0¼´¿É
        readwriteTiming.FSMC_DataSetupTime = 15;  //DATASTÊý¾Ý½¨Á¢(±£³Ö)ʱ¼äΪ15+1¸öHCLK£¬Æäʵ¾ÍÊÇRD±£³ÖµÍµçƽµÄʱ¼ä
        readwriteTiming.FSMC_BusTurnAroundDuration = 0;
        readwriteTiming.FSMC_CLKDivision = 0;  //ʱÖÓ²»·Ö¸î
        readwriteTiming.FSMC_DataLatency = 0;
        readwriteTiming.FSMC_AccessMode = FSMC_AccessMode_A;//·ÃÎÊģʽ£¬Ê¹ÓÃģʽA
       
        /*дʱÐòÅäÖÃ*/
        writeTiming.FSMC_AddressSetupTime = 2; //ADDSETµØÖ·½¨Á¢(±£³Ö)ʱ¼äΪ2+1¸öHCLK£¬WR±£³Ö¸ßµçƽµÄʱ¼ä
        writeTiming.FSMC_AddressHoldTime = 0;  //AģʽδʹÓõ½
        writeTiming.FSMC_AddressSetupTime = 5; //DATASTÊý¾Ý½¨Á¢(±£³Ö)ʱ¼äΪ5+1¸öHCLK£¬WR±£³ÖµÍµçƽµÄʱ¼ä
        writeTiming.FSMC_BusTurnAroundDuration = 0;
        writeTiming.FSMC_CLKDivision = 0;  //ʱÖÓ²»·Ö¸î
        writeTiming.FSMC_DataLatency = 0;
        writeTiming.FSMC_AccessMode = FSMC_AccessMode_A;//·ÃÎÊģʽ£¬Ê¹ÓÃģʽA
       
        /*Ƭѡ¿ØÖƼĴæÆ÷ÅäÖÃ*/
        FSMC_NORSRAMinitstructure.FSMC_Bank = FSMC_Bank1_NORSRAM4;//ʹÓÃBank1µÄsector4£¬¼´NE4
        FSMC_NORSRAMinitstructure.FSMC_DataAddressMux = FSMC_DataAddressMux_Disable;//Êý¾ÝµØÖ·¸´Óùصô
        FSMC_NORSRAMinitstructure.FSMC_MemoryType = FSMC_MemoryType_SRAM;//°ÑLCDµ±×÷SRAMÀ´²Ù×÷
        FSMC_NORSRAMinitstructure.FSMC_MemoryDataWidth = FSMC_MemoryDataWidth_16b;//LCDʹÓÃ16λÊý¾Ý£¬ËùÒÔÕâÀïÑ¡Ôñ16λ
        FSMC_NORSRAMinitstructure.FSMC_BurstAccessMode = FSMC_BurstAccessMode_Disable;//¹Ø±ÕÍ»·¢·ÃÎÊģʽ
        FSMC_NORSRAMinitstructure.FSMC_WaitSignalPolarity = FSMC_WaitSignalPolarity_Low;//µÈ´ýÐźÅÓÅÏȼ¶£¬ÔÚÍ»·¢·ÃÎÊģʽϲÅÓÐЧ
        FSMC_NORSRAMinitstructure.FSMC_AsynchronousWait=FSMC_AsynchronousWait_Disable;
        FSMC_NORSRAMinitstructure.FSMC_WrapMode = FSMC_WrapMode_Disable;
        FSMC_NORSRAMinitstructure.FSMC_WaitSignalActive = FSMC_WaitSignalActive_BeforeWaitState;
        FSMC_NORSRAMinitstructure.FSMC_WriteOperation = FSMC_WriteOperation_Enable; //д²Ù×÷ʹÄÜ
        FSMC_NORSRAMinitstructure.FSMC_WaitSignal = FSMC_WaitSignal_Disable;
        FSMC_NORSRAMinitstructure.FSMC_ExtendedMode = FSMC_ExtendedMode_Enable;//À©Õ¹Ä£Ê½£¬¼´¶ÁºÍдʹÓò»Í¬µÄʱÐò
        FSMC_NORSRAMinitstructure.FSMC_WriteBurst = FSMC_WriteBurst_Disable;
       
        FSMC_NORSRAMinitstructure.FSMC_ReadWriteTimingStruct = &readwriteTiming;//¶ÁʱÐò
        FSMC_NORSRAMinitstructure.FSMC_WriteTimingStruct = &writeTiming;//дʱÐò
       
        FSMC_NORSRAMInit(&FSMC_NORSRAMinitstructure);//³õʼ»¯FSMCÅäÖÃ
        FSMC_NORSRAMCmd(FSMC_Bank1_NORSRAM4,ENABLE);//ʹÄÜbank1
}


×î¼Ñ´ð°¸

²é¿´ÍêÕûÄÚÈÝ[Çë¿´2#Â¥]

×Ô¼º½â¾öÁË¡£Ð´Ê±ÐòµÄµÚÈýÐÐд´íÁË¡£µÍ¼¶´íÎ󡣡£¡£¡£
ÕýµãÔ­×ÓÂß¼­·ÖÎöÒÇDL16¾¢±¬ÉÏÊÐ
»Ø¸´

ʹÓõÀ¾ß ¾Ù±¨

21

Ö÷Ìâ

66

Ìû×Ó

0

¾«»ª

Öм¶»áÔ±

Rank: 3Rank: 3

»ý·Ö
273
½ðÇ®
273
×¢²áʱ¼ä
2017-7-19
ÔÚÏßʱ¼ä
89 Сʱ
 Â¥Ö÷| ·¢±íÓÚ 2018-2-9 00:27:03 | ÏÔʾȫ²¿Â¥²ã
×Ô¼º½â¾öÁË¡£Ð´Ê±ÐòµÄµÚÈýÐÐд´íÁË¡£µÍ¼¶´íÎ󡣡£¡£¡£
»Ø¸´

ʹÓõÀ¾ß ¾Ù±¨

21

Ö÷Ìâ

66

Ìû×Ó

0

¾«»ª

Öм¶»áÔ±

Rank: 3Rank: 3

»ý·Ö
273
½ðÇ®
273
×¢²áʱ¼ä
2017-7-19
ÔÚÏßʱ¼ä
89 Сʱ
 Â¥Ö÷| ·¢±íÓÚ 2018-2-10 20:36:05 | ÏÔʾȫ²¿Â¥²ã
²âÁËÏÂÖ¡ÂÊ£¬ÓÐ53Ö¡ÒÔÉÏ£¬²»¹ý¸Ð¾õ»¹ÊÇʱ²»Ê±ÄÜ¿´µ½Ë¢ÆÁµÄ¹ý³Ì
»Ø¸´

ʹÓõÀ¾ß ¾Ù±¨

0

Ö÷Ìâ

2

Ìû×Ó

0

¾«»ª

ÐÂÊÖÈëÃÅ

»ý·Ö
14
½ðÇ®
14
×¢²áʱ¼ä
2018-8-22
ÔÚÏßʱ¼ä
5 Сʱ
·¢±íÓÚ 2020-2-10 21:22:32 | ÏÔʾȫ²¿Â¥²ã
Â¥Ö÷ºÃ£¬ÎÒÒ²Åöµ½Ò»ÑùµÄÎÊÌ⣬Ұ»ðµÄ³ÌÐò£¬Ö»Òª¿ªÆôFSMCʱÖÓ£¬Ö÷´Ó¶¨Ê±Æ÷¾ÍÒì³£ÁË£¬Ê²Ã´Ô­Òò
»Ø¸´

ʹÓõÀ¾ß ¾Ù±¨

ÄúÐèÒªµÇ¼ºó²Å¿ÉÒÔ»ØÌû µÇ¼ | Á¢¼´×¢²á

±¾°æ»ý·Ö¹æÔò



¹Ø±Õ

Ô­×Ӹ缫Á¦ÍƼöÉÏÒ»Ìõ /2 ÏÂÒ»Ìõ

ÕýµãÔ­×Ó¹«ÖÚºÅ

QQ|ÊÖ»ú°æ|OpenEdv-¿ªÔ´µç×ÓÍø ( ÔÁICP±¸12000418ºÅ-1 )

GMT+8, 2025-5-20 08:19

Powered by OpenEdv-¿ªÔ´µç×ÓÍø

© 2001-2030 OpenEdv-¿ªÔ´µç×ÓÍø

¿ìËٻظ´ ·µ»Ø¶¥²¿ ·µ»ØÁбí