新聞中心

        EEPW首頁 > 模擬技術 > 設計應用 > 工程師STM32單片機學習基礎手記(4):用PWM實現熒火蟲燈(六)

        工程師STM32單片機學習基礎手記(4):用PWM實現熒火蟲燈(六)

        作者: 時間:2013-05-11 來源:網絡 收藏

        工程師STM32單片機學習基礎手記(4):用PWM實現熒火蟲燈(六)  
        工程師STM32單片機學習基礎手記(4):用PWM實現熒火蟲燈(六)



          DMA_InitStructure.DMA_Mode = DMA_Mode_Circular;

          DMA_InitStructure.DMA_Priority = DMA_Priority_High;

          DMA_InitStructure.DMA_M2M = DMA_M2M_Disable;

          以下是stm32f10x_dma.c中有關DMA的初始化設置代碼

          tmpreg |= DMA_InitStruct-》DMA_DIR | DMA_InitStruct-》DMA_Mode |

          DMA_InitStruct-》DMA_PeripheralInc | DMA_InitStruct-》DMA_MemoryInc |

          DMA_InitStruct-》DMA_PeripheralDataSize | DMA_InitStruct-》DMA_MemoryDataSize |

          DMA_InitStruct-》DMA_Priority | DMA_InitStruct-》DMA_M2M;

          /* Write to DMAy Channelx CCR */

          DMAy_Channelx-》CCR = tmpreg;

          /*--------------------------- DMAy Channelx CNDTR Configuration ---------------*/

          /* Write to DMAy Channelx CNDTR */

          DMAy_Channelx-》CNDTR = DMA_InitStruct-》DMA_BufferSize;

          工程師STM32單片機學習基礎手記(4):用PWM實現熒火蟲燈(六)


          /*--------------------------- DMAy Channelx CPAR Configuration ----------------*/

          /* Write to DMAy Channelx CPAR */

          DMAy_Channelx-》CPAR = DMA_InitStruct-》DMA_PeripheralBaseAddr;

          工程師STM32單片機學習基礎手記(4):用PWM實現熒火蟲燈(六)

          /*--------------------------- DMAy Channelx CMAR Configuration ----------------*/

          /* Write to DMAy Channelx CMAR */

          DMAy_Channelx-》CMAR = DMA_InitStruct-》DMA_MemoryBaseAddr;

          //內存地址送入CMAR寄存器

          工程師STM32單片機學習基礎手記(4):用PWM實現熒火蟲燈(六)


          說明:這個圖從PDF截下來,圖中那個DMA_CPARx寫錯了,應該是DMA_CMARx

          ------------------------------------------------------------------------------------------

          再來看一個DMA的例子

          /* DMA1 Channel5 configuration ----------------------------------------------*/

          DMA_DeInit(DMA1_Channel5);

          DMA_InitStructure.DMA_PeripheralBaseAddr = (uint32_t)TIM1_CCR1_Address;

          DMA_InitStructure.DMA_MemoryBaseAddr = (uint32_t)ADC1_DR_Address;

          DMA_InitStructure.DMA_DIR = DMA_DIR_PeripheralDST;

          DMA_InitStructure.DMA_BufferSize = 1;

          DMA_InitStructure.DMA_PeripheralInc = DMA_PeripheralInc_Disable;

          DMA_InitStructure.DMA_MemoryInc = DMA_MemoryInc_Disable;

          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_Channel5, DMA_InitStructure);

          /* Enable DMA1 Channel5 */

          DMA_Cmd(DMA1_Channel5, ENABLE);

          還有一些目前暫時還沒有去搞清楚的,比如中斷處理等,等到需要時再看吧。

        pwm相關文章:pwm原理




        關鍵詞: STM32 單片機 PWM

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 申扎县| 罗田县| 孝义市| 龙游县| 芦溪县| 南开区| 安化县| 内丘县| 嘉鱼县| 鸡西市| 南召县| 渝北区| 万盛区| 麻阳| 卢氏县| 无为县| 怀宁县| 马山县| 吉水县| 文水县| 中江县| 新野县| 万州区| 伊金霍洛旗| 香港| 天全县| 四川省| 壶关县| 昭觉县| 武夷山市| 冀州市| 鹤峰县| 榆林市| 舒兰市| 新密市| 惠水县| 广西| 林西县| 丹东市| 余干县| 剑河县|