// static u16 id,id2;
RCC->AHB1ENR|=0XF<<3; //ê1ÄüPD,PE,PF,PGê±Öó
RCC->AHB1ENR|=1<<1; //ê1ÄüPBê±Öó
RCC->AHB3ENR|=1<<0; //ê1ÄüFSMCê±Öó
// GPIO_Set(GPIOB,PIN15,GPIO_MODE_OUT,GPIO_OTYPE_PP,GPIO_SPEED_50M,GPIO_PUPD_PU); //PB15 íÆíìêä3ö,¿ØÖƱ31a
GPIO_Set(GPIOD,(3<<0)|(3<<4)|(7<<8)|(3<<14),GPIO_MODE_AF,GPIO_OTYPE_PP,GPIO_SPEED_100M,GPIO_PUPD_PU); //PD0,1,4,5,8,9,10,14,15 AF OUT
GPIO_Set(GPIOE,(0X1FF<<7),GPIO_MODE_AF,GPIO_OTYPE_PP,GPIO_SPEED_100M,GPIO_PUPD_PU); //PE7~15,AF OUT
GPIO_Set(GPIOD,PIN11,GPIO_MODE_AF,GPIO_OTYPE_PP,GPIO_SPEED_100M,GPIO_PUPD_PU); //PD11,FSMC_A16
GPIO_Set(GPIOD,PIN7,GPIO_MODE_AF,GPIO_OTYPE_PP,GPIO_SPEED_100M,GPIO_PUPD_PU); //PD7,FSMC_NE1
GPIO_Set(GPIOG,PIN8,GPIO_MODE_OUT,GPIO_OTYPE_PP,GPIO_SPEED_100M,GPIO_PUPD_PU); //PG8
// GPIO_Set(GPIOF,PIN12,GPIO_MODE_AF,GPIO_OTYPE_PP,GPIO_SPEED_100M,GPIO_PUPD_PU); //PF12,FSMC_A6
// GPIO_Set(GPIOG,PIN12,GPIO_MODE_AF,GPIO_OTYPE_PP,GPIO_SPEED_100M,GPIO_PUPD_PU); //PG12,FSMC_NE4
GPIO_AF_Set(GPIOD,0,12); //PD0,AF12
GPIO_AF_Set(GPIOD,1,12); //PD1,AF12
GPIO_AF_Set(GPIOD,4,12); //PD4,AF12
GPIO_AF_Set(GPIOD,5,12); //PD5,AF12
GPIO_AF_Set(GPIOD,8,12); //PD8,AF12
GPIO_AF_Set(GPIOD,9,12); //PD9,AF12
GPIO_AF_Set(GPIOD,10,12); //PD10,AF12
GPIO_AF_Set(GPIOD,14,12); //PD14,AF12
GPIO_AF_Set(GPIOD,15,12); //PD15,AF12
GPIO_AF_Set(GPIOE,7,12); //PE7,AF12
GPIO_AF_Set(GPIOE,8,12); //PE8,AF12
GPIO_AF_Set(GPIOE,9,12); //PE9,AF12
GPIO_AF_Set(GPIOE,10,12); //PE10,AF12
GPIO_AF_Set(GPIOE,11,12); //PE11,AF12
GPIO_AF_Set(GPIOE,12,12); //PE12,AF12
GPIO_AF_Set(GPIOE,13,12); //PE13,AF12
GPIO_AF_Set(GPIOE,14,12); //PE14,AF12
GPIO_AF_Set(GPIOE,15,12); //PE15,AF12
// GPIO_AF_Set(GPIOF,12,12); //PF12,AF12
// GPIO_AF_Set(GPIOG,12,12); //PG12,AF12
GPIO_AF_Set(GPIOD,7,12); //PD7,AF12
GPIO_AF_Set(GPIOD,11,12); //PD11,AF12
//¼Ä′æÆ÷Çåáã
//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ò1
FSMC_Bank1->BTCR[0]|=1<<4; //′æ′¢Æ÷êy¾Y¿í¶èÎa16bit
FSMC_Bank1->BTCR[0]|=0<<2; //
//2ù×÷BTR¼Ä′æÆ÷
//¶áê±Dò¿ØÖƼÄ′æÆ÷
FSMC_Bank1->BTCR[1]|=0<<28; //Ä£ê½A
FSMC_Bank1->BTCR[1]|=15<<0; //μØÖ·½¨á¢ê±¼ä(ADDSET)Îa15¸öHCLK 1/168M=6ns*15=90ns
//òòÎaòo¾§Çy¶ˉICμĶáêy¾YμÄê±oò£¬Ëù¶è2»Äüì«¿ì,óèÆäêǸö±eÆæYaD¾Æ¬¡£
FSMC_Bank1->BTCR[1]|=4<<8; //êy¾Y±£′æê±¼ä(DATAST)Îa60¸öHCLK =6*60=360ns 0
//D′ê±Dò¿ØÖƼÄ′æÆ÷
FSMC_Bank1E->BWTR[0]|=0<<28; //Ä£ê½A
FSMC_Bank1E->BWTR[0]|=15<<0; //μØÖ·½¨á¢ê±¼ä(ADDSET)Îa9¸öHCLK=54ns
//9¸öHCLK£¨HCLK=168M£©,Ä3D©òo¾§Çy¶ˉICμÄD′DÅoÅÂö¿í£¬×îéùò2μÃ50ns¡£
FSMC_Bank1E->BWTR[0]|=9<<8; //êy¾Y±£′æê±¼ä(DATAST)Îa6ns*9¸öHCLK=54ns 6
//ê1ÄüBANK1,Çøóò4
FSMC_Bank1->BTCR[0]|=1<<0; //ê1ÄüBANK1£¬Çøóò1
|