初级会员

- 积分
- 54
- 金钱
- 54
- 注册时间
- 2016-11-24
- 在线时间
- 13 小时
|

楼主 |
发表于 2016-11-24 12:03:08
|
显示全部楼层
这是 初始化函数
//*************************************************************
// FSMC CY7C024AV Init.
//*************************************************************
void FSMCCY7C024AVInit(void)
{
FSMC_NORSRAMInitTypeDef FSMC_NORSRAMInitStructure;
FSMC_NORSRAMTimingInitTypeDef p;
//#if 0
GPIO_InitTypeDef GPIO_InitStructure;
/*FSMC×üÏßê1óÃμÄGPIO×éê±Öóê1Äü*/
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOD | RCC_APB2Periph_GPIOG | RCC_APB2Periph_GPIOE |
RCC_APB2Periph_GPIOF, ENABLE);
/*FSMCêy¾YÏßFSMC_D[0:15]3õê¼»ˉ£¬íÆíì¸′óÃêä3ö*/
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0 | GPIO_Pin_1 | GPIO_Pin_8 | GPIO_Pin_9 |
GPIO_Pin_10 | GPIO_Pin_14 | GPIO_Pin_15;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOD, &GPIO_InitStructure);
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_Init(GPIOE, &GPIO_InitStructure);
/*FSMCμØÖ·ÏßFSMC_A[0:17]3õê¼»ˉ£¬íÆíì¸′óÃêä3ö*/
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0 | GPIO_Pin_1 | GPIO_Pin_2 | GPIO_Pin_3 |
GPIO_Pin_4 | GPIO_Pin_5 | GPIO_Pin_12 | GPIO_Pin_13 |
GPIO_Pin_14 | GPIO_Pin_15;
GPIO_Init(GPIOF, &GPIO_InitStructure);
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0 | GPIO_Pin_1 | GPIO_Pin_2 | GPIO_Pin_3 |
GPIO_Pin_4 | GPIO_Pin_5;
GPIO_Init(GPIOG, &GPIO_InitStructure);
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_11 | GPIO_Pin_12 | GPIO_Pin_13;
GPIO_Init(GPIOD, &GPIO_InitStructure);
/*FSMC NOEoíNWE3õêÔ»ˉ£¬íÆíì¸′óÃêä3ö*/
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_4 |GPIO_Pin_5;
GPIO_Init(GPIOD, &GPIO_InitStructure);
/*FSMC NE33õêÔ»ˉ£¬íÆíì¸′óÃêä3ö*/
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10;
GPIO_Init(GPIOG, &GPIO_InitStructure);
/*FSMC NBL0oíNBL13õêÔ»ˉ£¬íÆíì¸′óÃêä3ö*/
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0 | GPIO_Pin_1;
GPIO_Init(GPIOE, &GPIO_InitStructure);
//#endif
/*--------------FSMC ×üÏß ′æ′¢Æ÷2ÎêyÅäÖÃ------------------------------*/
p.FSMC_AddressSetupTime = 3;//3 //μØÖ·½¨á¢ê±¼ä
p.FSMC_AddressHoldTime = 10;//10 //μØÖ·±£3Öê±¼ä
p.FSMC_DataSetupTime = 4;//4 //êy¾Y½¨á¢ê±¼ä
p.FSMC_BusTurnAroundDuration = 0; //×üÏ߻ָ′ê±¼ä
p.FSMC_CLKDivision = 1;//1 // ê±Öó·ÖÆμòò×ó
p.FSMC_DataLatency = 0; //êy¾Y2úéúê±¼ä
p.FSMC_AccessMode = FSMC_AccessMode_A; //FSMC NOR¿ØÖÆÆ÷ê±Dò
/*--------------FSMC ×üÏß 2ÎêyÅäÖÃ------------------------------*/
FSMC_NORSRAMInitStructure.FSMC_Bank = FSMC_Bank1_NORSRAM3; //ê1óÃáËFSMCμÄBANK1μÄ×ó°å¿é3
FSMC_NORSRAMInitStructure.FSMC_DataAddressMux = FSMC_DataAddressMux_Disable;//½ûÖ1μØÖ·êy¾YÏ߸′óÃ
FSMC_NORSRAMInitStructure.FSMC_MemoryType = FSMC_MemoryType_SRAM; //′æ′¢Æ÷ààDíÎaSRAM
FSMC_NORSRAMInitStructure.FSMC_MemoryDataWidth = FSMC_MemoryDataWidth_16b; //′æ′¢Æ÷êy¾Y¿í¶èÎa16λ
//FSMC_NORSRAMInitStructure.FSMC_MemoryDataWidth = FSMC_MemoryDataWidth_8b;
FSMC_NORSRAMInitStructure.FSMC_BurstAccessMode = FSMC_BurstAccessMode_Disable; //1رÕí»·¢Ä£ê½·ÃÎê
//μè′yDÅoÅóÅÏè¼¶£¬Ö»óDÔúê1Äüí»·¢·ÃÎêÄ£ê½2ÅóDD§
FSMC_NORSRAMInitStructure.FSMC_WaitSignalPolarity = FSMC_WaitSignalPolarity_Low;
//1رÕWrapped burst access mode£¬Ö»óDÔúê1Äüí»·¢·ÃÎêÄ£ê½2ÅóDD§
FSMC_NORSRAMInitStructure.FSMC_WrapMode = FSMC_WrapMode_Disable;
//μè′yDÅoÅéèÖã¬Ö»óDÔúê1Äüí»·¢·ÃÎêÄ£ê½2ÅóDD§
FSMC_NORSRAMInitStructure.FSMC_WaitSignalActive = FSMC_WaitSignalActive_BeforeWaitState;
FSMC_NORSRAMInitStructure.FSMC_WriteOperation = FSMC_WriteOperation_Enable; //ê1ÄüÕa¸öBANKμÄD′2ù×÷
//ê1Äü/1رÕμè′yDÅÏ¢éèÖã¬Ö»Ôúê1Äüí»·¢·ÃÎêÄ£ê½2ÅóDD§
FSMC_NORSRAMInitStructure.FSMC_WaitSignal = FSMC_WaitSignal_Disable;
FSMC_NORSRAMInitStructure.FSMC_ExtendedMode = FSMC_ExtendedMode_Disable; //1رÕExtend Mode
FSMC_NORSRAMInitStructure.FSMC_WriteBurst = FSMC_WriteBurst_Disable; //1رÕWrite Burst Mode
FSMC_NORSRAMInitStructure.FSMC_ReadWriteTimingStruct = &p; //¶á2ù×÷ê±Dò2Îêy
FSMC_NORSRAMInitStructure.FSMC_WriteTimingStruct = &p; //D′2ù×÷ê±Dò2Îêy
FSMC_NORSRAMInit(&FSMC_NORSRAMInitStructure);
/*--------------ê1ÄüBANK1μÄ×ó°å¿é3------------------------------*/
FSMC_NORSRAMCmd(FSMC_Bank1_NORSRAM3, ENABLE);
}
|
|