[[ファームウェア関数一覧>ファームウェア関数一覧#o079713f]] *DMA_Init [#m28fce09] #contents **ヘッダ宣言 [#b002f90c] **関数プロトタイプ [#uaf5b1db] void DMA_Init(DMA_Channel_TypeDef* DMAy_Channelx,DMA_InitTypeDef* DMA_InitStruct) **動作 [#w28627a5] -DMA周辺回路レジスタの設定を行います。&br; **引数 [#tce83423] -DMAy_Channelx&br; #include(Macro/DMAy_Channelx,notitle) -DMA_InitStruct&br; '''stm32f10x_dma.h'''ファイルで定義される'''DMA_InitTypeDef'''型の構造体です。 typedef struct { uint32_t DMA_PeripheralBaseAddr; uint32_t DMA_MemoryBaseAddr; uint32_t DMA_DIR; uint32_t DMA_BufferSize; uint32_t DMA_PeripheralInc; uint32_t DMA_MemoryInc; uint32_t DMA_PeripheralDataSize; uint32_t DMA_MemoryDataSize; uint32_t DMA_Mode; uint32_t DMA_Priority; uint32_t DMA_M2M; } DMA_InitTypeDef; --DMA_PeripheralBaseAddr&br; このメンバは、DMAy Channelx用周辺回路のベースアドレスを定義するのに使用されます。&br; &br; --DMA_MemoryBaseAddr&br; このメンバは、DMAy Channelxのメモリ側ベースアドレスを定義するのに使用されます。&br; &br; --DMA_DIR&br; データ転送方向。ペリフェラルが転送先か転送元かを決定します。&br; &br; #include(Macro/DMA_DIR,notitle) &br; --DMA_BufferSize&br; このメンバはバッファサイズの定義のために使われます。転送するデータ数はバイト数ではありません。&br; &br; --DMA_PeripheralInc&br; ペリフェラル側のアドレスを転送毎にインクリメントするかどうかを指定します。&br; &br; #include(Macro/DMA_PeripheralInc,notitle) &br; --DMA_MemoryInc&br; メモリ側のアドレスを転送毎にインクリメントするかどうかを指定します。&br; &br; #include(Macro/DMA_MemoryInc,notitle) &br; --DMA_PeripheralDataSize&br; メモリ側のデータサイズを指定します。&br; &br; #include(Macro/DMA_PeripheralDataSize,notitle) &br; --DMA_MemoryDataSize&br; メモリ側のデータサイズを指定します。&br; &br; #include(Macro/DMA_MemoryDataSize,notitle) &br; --DMA_Mode&br; DMAの動作モードを指定します。通常モードかサーキュラーモード(転送が終わったらアドレスが最初に戻って、転送が自動で再開する)が選択出来ます。&br; &br; #include(Macro/DMA_Mode,notitle) &br; --DMA_Priority&br; DMA転送のソフトウェア優先度を指定します。これが同じチャネルが競合した場合、ハードウェア優先度(チャネル番号の小さい方が高優先度)が使われます。&br; &br; #include(Macro/DMA_Priority,notitle) &br; --DMA_M2M&br; メモリ間転送モードの設定をします。通常はペリフェラル-メモリ間の転送です。&br &br メモリ間転送モードの設定をします。通常はペリフェラル-メモリ間の転送です。&br; &br; #include(Macro/DMA_M2M,notitle) &br; **戻り値 [#h5a02d90] -無し **出力値 [#ra219bb3] -無し **呼び出し関数 [#pd1724c0] -無し **サンプル [#t2b1c7ea] /* Initialize the DMA1 Channel1 according to the DMA_InitStructure members */ DMA_InitTypeDef DMA_InitStructure; DMA_InitStructure.DMA_PeripheralBaseAddr = 0x40005400; DMA_InitStructure.DMA_MemoryBaseAddr = 0x20000100; DMA_InitStructure.DMA_DIR = DMA_DIR_PeripheralSRC; DMA_InitStructure.DMA_BufferSize = 256; DMA_InitStructure.DMA_PeripheralInc = DMA_PeripheralInc_Disable; DMA_InitStructure.DMA_MemoryInc = DMA_MemoryInc_Enable; DMA_InitStructure.DMA_PeripheralDataSize = DMA_PeripheralDataSize_HalfWord; DMA_InitStructure.DMA_MemoryDataSize = DMA_MemoryDataSize_HalfWord; DMA_InitStructure.DMA_Mode = DMA_Mode_Normal; DMA_InitStructure.DMA_Priority = DMA_Priority_Medium; DMA_InitStructure.DMA_M2M = DMA_M2M_Disable; DMA_Init(DMA1_Channel1, &DMA_InitStructure); **参照 [#y37b1531] -