STM32 的并口总线的所有接口类型解决方法
STM32的并口总线支持NOR, SRAM, PSRAM,NAND接口,本文以PSRAM为例实现并口的同步非复用, 异步复用和异步非复用操作!以STM32F207IG(176脚)系列为例,步骤如下:
1. 初始化并口的各个引脚
//Add[0-25] : F0-F5(6); F12-F15(4); G0-G5(6); D11-D13(3); E3-E6(4); E2(1); G13-G14(2)
//Data[0-15]: D14-D15(2);D0-1(2);E7-15(9);D8-10(3)
//FSMC_NIORD: F6 NC for PC CARD
//FSMC_NREG : F7 NC for PC CARD
//FSMC_NIOWR: F8 NC for PC CARD
//FSMC_CD : F9 NC for PC CARD
//FSMC_INTR : F10 NC for PC CARD
//FSMC_INT2 : G6 NC for COMMON
//FSMC_INT3 : G7 NC for COMMON
//FSMC_CLK : D3 for NOR/PSRAM
//FSMC_NOE : D4 for COMMON
//FSMC_NWE : D5 for COMMON
//FSMC_NWAIT: D6 for COMMON
//FSMC_NE1 : D7 FSMC_NCE2 for NOR/PSRAM for NAND
//FSMC_NE2 : G9 FSMC_NCE3 for NOR/PSRAM for NAND
//FSMC_NE3 : G10 NC for NOR/PSRAM
//FSMC_NCE4 : G11 NC for NOR/PSRAM
//FSMC_NE4 : G12 NC for NOR/PSRAM
//FSMC_NL : B7 for NOR/PSRAM
//FSMC_NBL0 : E0 for NOR/PSRAM
//FSMC_NBL1 : E1 for NOR/PSRAM
void FsmcInit(void)
{
u8 i=0;
// 1.
GPIO_InitTypeDef GPIO_InitStructure;
RCC_AHB3PeriphClockCmd(RCC_AHB3Periph_FSMC, ENABLE);
RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOB | RCC_AHB1Periph_GPIOD | RCC_AHB1Periph_GPIOE | RCC_AHB1Periph_GPIOF | RCC_AHB1Periph_GPIOG, ENABLE);
for(i=0; i
{
GPIO_PinAFConfig((GPIO_TypeDef *)GPIOx, GPIO_PinSourceX, GPIO_AF_FSMC);
}
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0 ;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF;
GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOD, &GPIO_InitStructure);