[[ファームウェア関数一覧>ファームウェア関数一覧#d399b80f]] *FSMC_NORSRAMInit [#i708d680] #contents **ヘッダ宣言 [#a28c7439] **関数プロトタイプ [#h22136ae] void FSMC_NORSRAMInit(FSMC_NORSRAMInitTypeDef* FSMC_NORSRAMInitStruct) **動作 [#a36d0725] -FSMC_NORSRAMInitStruct構造体で指定されたパラメータで、FSMC NOR/SRAM バンク・レジスタを初期化します。 **引数 [#gf89e1a1] -FSMC_NORSRAMInitStruct&br; '''stm32f10x_fsmc.h'''で定義されている構造体です。&br; --FSMC_NORSRAMTimingInitTypeDef typedef struct { uint32_t FSMC_AddSetupTime; uint32_t FSMC_AddHoldTime; uint32_t FSMC_DataSetupTime; uint32_t FSMC_BusTurnaroundDuration; uint32_t FSMC_CLKDivision; uint32_t FSMC_DataLatency; uint32_t FSMC_AccessMode; }FSMC_NORSRAMTimingInitTypeDef; &br; ---FSMC_AddSetupTime&br; アドレスのセットアップタイムを構成するためにHCLKサイクル数を定義します。このパラメタは0から0xFの間の値になるでしょう。これは同期NOR Flashメモリの場合は使用されません。&br; &br; ---FSMC_AddHoldTime&br; アドレスのホールドタイムを構成するためにHCLKサイクル数を定義します。このパラメタは0から0xFの間の値になるでしょう。これは同期NOR Flashメモリの場合は使用されません。&br; &br; ---FSMC_DataSetupTime&br; データのセットアップタイムを構成するためにHCLKサイクル数を定義します。このパラメタは0から0xFFの間の値になるでしょう。これはSRAM、ROM、非同期多重化NOR Flash メモリで使用されます。&br; &br; ---FSMC_BusTurnaroundDuration&br; バスターンアラウンドタイムを構成するためにHCLKサイクルの数を定義します。 このパラメタは0と0xFの間の値になるでしょう。これは多重化NOR Flashメモリに使用されるだけです。&br; &br; ---FSMC_CLKDivision&br; データセットアップタイムを構成するためにHCLKサイクルの数を定義します。 このパラメタは0と0xFの間の値になるでしょう。このパラメタは非同期なNOR Flash、SRAMまたはROMアクセスには使用されません。&br; &br; ---FSMC_DataLatency&br; 最初のデータを得る前にメモリに送信するクロックサイクルを定義します。 このパラメタの値は以下に示すようにメモリタイプに依存します。&br; 1.CRAMの場合は0。&br; 2.非同期NOR、SRAM、ROMの場合は無効です。&br; 3.バースト転送モードが有効な同期式NOR Flashの場合、このパラメタは0と0xFの間の値になるでしょう。&br; &br; ---FSMC_AccessMode&br; 非同期アクセスモードを以下の表から選択します。&br; &br; #include(Macro/FSMC_AccessMode,notitle) --FSMC_NORSRAMInitTypeDef typedef struct { uint32_t FSMC_Bank; uint32_t FSMC_DataAddressMux; uint32_t FSMC_MemoryType; uint32_t FSMC_MemoryDataWidth; uint32_t FSMC_BurstAccessMode; uint32_t FSMC_WaitSignalPolarity; uint32_t FSMC_WrapMode; uint32_t FSMC_WaitSignalActive; uint32_t FSMC_WriteOperation; uint32_t FSMC_WaitSignal; uint32_t FSMC_ExtendedMode; uint32_t FSMC_AsyncWait; uint32_t FSMC_WriteBurst; /* Timing Parameters for write and read access if the ExtendedMode is not used*/ FSMC_NORSRAMTimingInitTypeDef* FSMC_ReadWriteTimingStruct; /* Timing Parameters for write access if the ExtendedMode is used*/ FSMC_NORSRAMTimingInitTypeDef* FSMC_WriteTimingStruct; }FSMC_NORSRAMInitTypeDef; ---FSMC_Bank&br; 使用されるメモリバンクを指定します。&br; &br; #include(Macro/FSMC_Bank,notitle) &br; ---FSMC_DataAddressMux&br; アドレスとデータ値がデータバスの上で多重送信されるかどうか指定します。&br; &br; #include(Macro/FSMC_DataAddressMux,notitle) &br; ---FSMC_MemoryType&br; 対応するメモリバンクに付けられた外部記憶装置のタイプを指定します。&br; &br; #include(Macro/FSMC_MemoryType,notitle) &br; ---FSMC_MemoryDataWidth&br; 外部メモリのデータ幅を指定します。&br; &br; #include(Macro/FSMC_MemoryDataWidth,notitle) &br; ---FSMC_BurstAccessMode&br; 同期式Flashメモリでバーストアクセスが可能なメモリの場合、バーストアクセスを有効にするか指定します。&br; &br; #include(Macro/FSMC_BurstAccessMode,notitle) &br; ---FSMC_WaitSignalPolarity&br; Flashメモリがバースト・モードでアクセスしている場合のウェイト信号の極性を指定します。&br; &br; #include(Macro/FSMC_WaitSignalPolarity,notitle) &br; ---FSMC_WrapMode&br; Flashメモリがバースト・モードでアクセスしている場合、ラップド・バースト・アクセス・モードを有効にするか指定します。&br; &br; #include(Macro/FSMC_WrapMode,notitle) &br; ---FSMC_WaitSignalActive&br; バーストモードによるFlashメモリ・アクセスの場合にだけ有効な、ウエイト信号の極性を指定します。&br; &br; #include(Macro/FSMC_WaitSignalActive,notitle) &br; ---FSMC_WriteOperation&br; FSMCによって、指定しているバンクに書き込みが行われるかどうかを指定します。&br; &br; #include(Macro/FSMC_WriteOperation,notitle) &br; ---FSMC_WaitSignal&br; WAITn信号でwiat状態挿入を可能にするか、または無効にします。このパラメタはFlashメモリアクセスがバーストモードの時のみ意味を持ちます。&br; &br; #include(Macro/FSMC_WaitSignal,notitle) &br; ---FSMC_ExtendedMode&br; 拡張(Extended)モードを有効にするか、または無効にします。&br; &br; #include(Macro/FSMC_ExtendedMode,notitle) &br; ---FSMC_AsyncWait&br; 非同期プロトコルでのwait信号を有効にするか、または無効にします。&br; &br; #include(Macro/FSMC_AsyncWait,notitle) &br; ---FSMC_WriteBurst&br; 書き込みバースト命令を有効にするか、または無効にします。&br; &br; #include(Macro/FSMC_WriteBurst,notitle) &br; **戻り値 [#l60ceb1f] -無し **出力値 [#fc9129a7] -無し **呼び出し関数 [#d0ddb88b] -無し **サンプル [#a18540ec] /* Initialize the FSMC NOR memory according to the FSMC_NORSRAMInitStructure members */ FSMC_NORSRAMInitTypeDef FSMC_NORSRAMInitStructure; FSMC_NORSRAMTimingInitTypeDef* FSMC_NORSRAMTimingStructure; FSMC_NORSRAMTimingStructure.FSMC_AddSetupTime = 0x2; FSMC_NORSRAMTimingStructure.FSMC_AddHoldTime = 0x2; FSMC_NORSRAMTimingStructure.FSMC_DataSetupTime = 0x2; FSMC_NORSRAMTimingStructure.FSMC_BusTurnaroundDuration = 0x0; FSMC_NORSRAMTimingStructure.FSMC_CLKDivision = 0x0; FSMC_NORSRAMTimingStructure.FSMC_DataLatency = 0x0; FSMC_NORSRAMTimingStructure.FSMC_AccessMode = FSMC_AccessMode_A; FSMC_NORSRAMInitStructure.FSMC_Bank = FSMC_Bank1_NORSRAM1; FSMC_NORSRAMInitStructure.FSMC_DataAddressMux = FSMC_DataAddressMux_Disable; FSMC_NORSRAMInitStructure.FSMC_MemoryType = FSMC_MemoryType_NOR; FSMC_NORSRAMInitStructure.FSMC_MemoryDataWidth = FSMC_MemoryDataWidth_16b; FSMC_NORSRAMInitStructure.FSMC_BurstAccessMode = FSMC_BurstAccessMode_Disable; FSMC_NORSRAMInitStructure.FSMC_WaitSignalPolarity = FSMC_WaitSignalPolarity_Low; FSMC_NORSRAMInitStructure.FSMC_WrapMode = FSMC_WrapMode_Disable; FSMC_NORSRAMInitStructure.FSMC_WaitTiming = FSMC_WaitSignalActive_BeforeWaitState; FSMC_NORSRAMInitStructure.FSMC_WriteOperation = FSMC_WriteOperation_Enable; FSMC_NORSRAMInitStructure.FSMC_WaitSignal = FSMC_WaitSignal_Disable; FSMC_NORSRAMInitStructure.FSMC_ExtendedMode = FSMC_ExtendedMode_Disable ; FSMC_NORSRAMInitStructure.FSMC_AsyncWait = FSMC_AsyncWait_Disable; FSMC_NORSRAMInitStructure.FSMC_WriteBurst = FSMC_WriteBurst_Disable; FSMC_NORSRAMInitStructure.FSMC_ReadWriteTimingStructure = &FSMC_NORSRAMTimingStructure; FSMC_NORSRAMInit(&FSMC_NORSRAMInitStructure); **参照 [#ac9c1e31] -