以前使用51的时候可以定义外部接口地址,方便已寻址的方式访问外部器件,在STM32中,FSMC功能类似,方便搭载多种外部芯片,如使用FSMC模拟8080并口,interl模式并口等。
FSMC工作模式较多,以复用模式为例来说明:
复用模式可以很方便模拟8080并口,以及驱动Intel模式并口器件,配置好引脚后,需要根据驱动芯片手册确定读写时序,如果时序太大或太小,都会导致读写数据不正确。
以下是100pin STM32F103MCU FSMC初始化程序:
FSMC_NORSRAMInitTypeDef FSMC_NORSRAMInitStructure;
FSMC_NORSRAMTimingInitTypeDef pr;
GPIO_InitTypeDef GPIO_InitStructure;
RCC_AHBPeriphClockCmd(RCC_AHBPeriph_FSMC, ENABLE);//使能FSMC时钟 必须
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOD | RCC_APB2Periph_GPIOE | RCC_APB2Periph_AFIO, ENABLE);//使能引脚时钟,并使能复用功能时钟
//PORT 初始化
GPIO_InitStructure