Board logo

标题: STM32 的并口总线的所有接口类型解决方法(3) [打印本页]

作者: yuyang911220    时间: 2014-8-18 17:07     标题: STM32 的并口总线的所有接口类型解决方法(3)

// 2.2. 其他设置,burst模式禁用,burst mode disable: Paras. valid only when accessing Flash memories in burst mode      
        FSMC_NORSRAMInitStructure.FSMC_WriteBurst            = FSMC_WriteBurst_Enable;          //在同步模式下支持Write burst,但读时无效; 异步模式下设0,禁用,表示在异步模式下写操作总是容许的
        FSMC_NORSRAMInitStructure.FSMC_AsynchronousWait      = FSMC_AsynchronousWait_Disable;   //异步操作时是否采用NWAIT信号来进行数据准备的延时
        FSMC_NORSRAMInitStructure.FSMC_ExtendedMode          = FSMC_ExtendedMode_Disable;       //是否支持扩展模式A,B,C,D,根据需要来设定
        FSMC_NORSRAMInitStructure.FSMC_WaitSignal            = FSMC_WaitSignal_Enable;          //在burst模式下,是否插入NWAIT等待延时信号 ,同步必须插
        FSMC_NORSRAMInitStructure.FSMC_WriteOperation        = FSMC_WriteOperation_Enable;      //是否支持写操作
        FSMC_NORSRAMInitStructure.FSMC_WaitSignalActive      = FSMC_WaitSignalActive_DuringWaitState; // 延时等待信号在FSMC_WaitSignalPolarity时表示正在等待,不是之前一个时钟周期类在等待
        FSMC_NORSRAMInitStructure.FSMC_WrapMode              = FSMC_WrapMode_Disable;           //对总线宽度不一致时使用
        FSMC_NORSRAMInitStructure.FSMC_WaitSignalPolarity    = FSMC_WaitSignalPolarity_Low;    //异步操作若开启延时,此表示延迟等待的电平,非此电平表示延时结束,for NOR Flash(PSRAM) WAITEN、WAITCFG、WAITPOL


        // 2.3 延时时间设置,根据芯片来设计,同步模式,下列前三个不用设置
        FSMC_NORSRAMTimingRead.FSMC_AddressSetupTime         = 10;  //地址建立时间的持续时间, 异步使用
        FSMC_NORSRAMTimingRead.FSMC_AddressHoldTime          = 5;   //地址的建立后的保持时间, 异步使用
        FSMC_NORSRAMTimingRead.FSMC_DataSetupTime            = 10;  //数据建立时间的持续时间,异步复用中使用
        FSMC_NORSRAMTimingRead.FSMC_BusTurnAroundDuration    = 2;   //总线周转时间?!,         复用模式使用
        FSMC_NORSRAMTimingRead.FSMC_CLKDivision              = 3;   //定义输出时钟分频,      同步使用, 0x0 to get CLK = HCLK(个别芯片不支持),0x1 to get CLK = 2 × HCLK,... , 0x0f;    ==2,clk == 40M,==3,clk == 30M
        FSMC_NORSRAMTimingRead.FSMC_DataLatency              = 0;   //内存时钟周期数,        同步使用,  DataLatency = 1 for NOR Flash; DataLatency = 0 for PSRAM
        FSMC_NORSRAMTimingRead.FSMC_AccessMode               = FSMC_AccessMode_A;//Specifies the asynchronous access mode  


        memcpy((u8 *)&FSMC_NORSRAMTimingWrite, (u8 *)&FSMC_NORSRAMTimingRead, sizeof(FSMC_NORSRAMTimingInitTypeDef));
    }
    else if((FSMC_TYPE_MUX_ASYN == uchBusType) || (FSMC_TYPE_NOMUX_ASYN == uchBusType))
    { //异步复用模式,   异步非复用   
        // 2.1 总线类型        
        if(FSMC_TYPE_MUX_ASYN == uchBusType)
        {
            FSMC_NORSRAMInitStructure.FSMC_DataAddressMux    = FSMC_DataAddressMux_Enable;
        }
        else
        {
            FSMC_NORSRAMInitStructure.FSMC_DataAddressMux    = FSMC_DataAddressMux_Disable;
        }
        FSMC_NORSRAMInitStructure.FSMC_BurstAccessMode       = FSMC_BurstAccessMode_Disable;   //同步模式下使用,for NOR Flash(PSRAM)





欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) Powered by Discuz! 7.0.0