ファームウェア関数一覧

DMA_Init

ヘッダ宣言

関数プロトタイプ

void DMA_Init(DMA_Channel_TypeDef* DMAy_Channelx,DMA_InitTypeDef* DMA_InitStruct)

動作

  • DMA周辺回路レジスタの設定を行います。

引数

  • DMAy_Channelx
    DMAy_Channelx説明
    DMA1_Channel1DMA1 Channel1
    DMA1_Channel2DMA1 Channel2
    DMA1_Channel3DMA1 Channel3
    DMA1_Channel4DMA1 Channel4
    DMA1_Channel5DMA1 Channel5
    DMA1_Channel6DMA1 Channel6
    DMA1_Channel7DMA1 Channel7
    DMA2_Channel1DMA2 Channel1
    DMA2_Channel2DMA2 Channel2
    DMA2_Channel3DMA2 Channel3
    DMA2_Channel4DMA2 Channel4
    DMA2_Channel5DMA2 Channel5
  • DMA_InitStruct
    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
      このメンバは、DMAy Channelx用周辺回路のベースアドレスを定義するのに使用されます。

    • DMA_MemoryBaseAddr
      このメンバは、DMAy Channelxのメモリ側ベースアドレスを定義するのに使用されます。

    • DMA_DIR
      データ転送方向。ペリフェラルが転送先か転送元かを決定します。

      DMA_DIR説明
      DMA_DIR_PeripheralDSTペリフェラルが転送先
      DMA_DIR_PeripheralSRCペリフェラルが転送元

    • DMA_BufferSize
      このメンバはバッファサイズの定義のために使われます。転送するデータ数はバイト数ではありません。

    • DMA_PeripheralInc
      ペリフェラル側のアドレスを転送毎にインクリメントするかどうかを指定します。

      DMA_PeripheralInc説明
      DMA_PeripheralInc_Enableペリフェラルインクリメントモード有効
      DMA_PeripheralInc_Disableペリフェラルインクリメントモード無効

    • DMA_MemoryInc
      メモリ側のアドレスを転送毎にインクリメントするかどうかを指定します。

      DMA_MemoryInc説明
      DMA_MemoryInc_Enableメモリインクリメントモード有効
      DMA_MemoryInc_Disableメモリインクリメントモード無効

    • DMA_PeripheralDataSize
      メモリ側のデータサイズを指定します。

      #include(): Limit exceeded: Macro/DMA_PeripheralDataSize

    • DMA_MemoryDataSize
      メモリ側のデータサイズを指定します。

      #include(): Limit exceeded: Macro/DMA_MemoryDataSize

    • DMA_Mode
      DMAの動作モードを指定します。通常モードかサーキュラーモード(転送が終わったらアドレスが最初に戻って、転送が自動で再開する)が選択出来ます。

      #include(): Limit exceeded: Macro/DMA_Mode

    • DMA_Priority
      DMA転送のソフトウェア優先度を指定します。これが同じチャネルが競合した場合、ハードウェア優先度(チャネル番号の小さい方が高優先度)が使われます。

      #include(): Limit exceeded: Macro/DMA_Priority

    • DMA_M2M
      メモリ間転送モードの設定をします。通常はペリフェラル-メモリ間の転送です。

      #include(): Limit exceeded: Macro/DMA_M2M

戻り値

  • 無し

出力値

  • 無し

呼び出し関数

  • 無し

サンプル

/* 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);

参照


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2011-10-21 (金) 11:26:06