<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                DMA比較好用,也比較簡單,今天在做多通道ADC“連續”“掃描”采樣時,對DMA有了更深一點的認識,今天給大家分享下: ~~~ #define ADC1_DR_Address ? ?((uint32_t)0x4001244C) unsigned short Buff[3]; ...... DMA_DeInit(DMA1_Channel1); DMA_InitStructure.DMA_PeripheralBaseAddr = (uint32_t)ADC1_DR_Address; DMA_InitStructure.DMA_MemoryBaseAddr = (uint32_t)Buff; DMA_InitStructure.DMA_DIR = DMA_DIR_PeripheralSRC; DMA_InitStructure.DMA_BufferSize = 3; 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_Circular;*** DMA_InitStructure.DMA_Priority = DMA_Priority_High; **DMA_InitStructure.DMA_M2M = DMA_M2M_Disable;** DMA_Init(DMA1_Channel1, &DMA_InitStructure); DMA_Cmd(DMA1_Channel1, ENABLE); ~~~ 初始化時,要先用DMA_DeInit將DMA的通道初始化成缺省值。 外設地址設置,內存基地址設置,設置外設的傳輸屬性(輸入/輸出),這些都容易理解; ~~~ DMA_InitStructure.DMA_DIR = DMA_DIR_PeripheralSRC; #define DMA_DIR_PeripheralDST ? ? ? ? ? ? ?((uint32_t)0x00000010) #define DMA_DIR_PeripheralSRC ? ? ? ? ? ? ?((uint32_t)0x00000000) ~~~ 這里是設置誰為數據傳輸源; DMA_InitStructure.DMA_BufferSize = 3; 如果是獲取一組數值,像ADC,USART,我們可以用一個緩沖區,如果不用,像ADC數據更新快的,馬上就被刷新了。我這里的DMA_Buffersize 是 Buff的大小; ~~~ DMA_InitStructure.DMA_PeripheralInc = DMA_PeripheralInc_Disable; DMA_InitStructure.DMA_MemoryInc = DMA_MemoryInc_Enable; #define DMA_PeripheralInc_Enable ? ? ? ? ? ((uint32_t)0x00000040) #define DMA_PeripheralInc_Disable ? ? ? ? ?((uint32_t)0x00000000) #define DMA_MemoryInc_Enable ? ? ? ? ? ? ? ((uint32_t)0x00000080) #define DMA_MemoryInc_Disable ? ? ? ? ? ? ?((uint32_t)0x00000000) ~~~ 這個根據需要進行設置; ~~~ DMA_InitStructure.DMA_PeripheralDataSize = DMA_PeripheralDataSize_HalfWord; DMA_InitStructure.DMA_MemoryDataSize = DMA_MemoryDataSize_HalfWord; #define DMA_PeripheralDataSize_Byte ? ? ? ?((uint32_t)0x00000000) #define DMA_PeripheralDataSize_HalfWord ? ?((uint32_t)0x00000100) #define DMA_PeripheralDataSize_Word ? ? ? ?((uint32_t)0x00000200) #define DMA_MemoryDataSize_Byte ? ? ? ? ? ?((uint32_t)0x00000000) #define DMA_MemoryDataSize_HalfWord ? ? ? ?((uint32_t)0x00000400) #define DMA_MemoryDataSize_Word ? ? ? ? ? ?((uint32_t)0x00000800) ~~~ 這個設置獲取數據的大小; ~~~ *DMA_InitStructure.DMA_Mode = DMA_Mode_Circular;* #define DMA_Mode_Circular ? ? ? ? ? ? ? ? ?((uint32_t)0x00000020) #define DMA_Mode_Normal ? ? ? ? ? ? ? ? ? ?((uint32_t)0x00000000) ~~~ 這個要強調下,像我這里,要不斷更新Buff[0],Buff[1],Buff[2],我上面設置的緩沖區正好也是3,我們可以用Circular屬性來設置!他就不停的刷新這段地址! 他還有一種屬性是Normal,這種屬性一般用在Point 2 Point時使用; ~~~ DMA_InitStructure.DMA_Priority = DMA_Priority_High; #define DMA_Priority_VeryHigh ? ? ? ? ? ? ?((uint32_t)0x00003000) #define DMA_Priority_High ? ? ? ? ? ? ? ? ?((uint32_t)0x00002000) #define DMA_Priority_Medium ? ? ? ? ? ? ? ?((uint32_t)0x00001000) #define DMA_Priority_Low ? ? ? ? ? ? ? ? ? ((uint32_t)0x00000000) ~~~ 因為DMA有多路,所以我們要規定先傳哪路數據,所以我們就要規定一個優先級; ~~~ DMA_InitStructure.DMA_M2M = DMA_M2M_Disable; #define DMA_M2M_Enable ? ? ? ? ? ? ? ? ? ? ((uint32_t)0x00004000) #define DMA_M2M_Disable ? ? ? ? ? ? ? ? ? ?((uint32_t)0x00000000) ~~~ 這個是設置是不是Memary to Memary的!
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看