新聞中心

        EEPW首頁 > 模擬技術(shù) > 設(shè)計應(yīng)用 > 工程師STM32單片機學(xué)習(xí)基礎(chǔ)手記(4):用PWM實現(xiàn)熒火蟲燈(六)

        工程師STM32單片機學(xué)習(xí)基礎(chǔ)手記(4):用PWM實現(xiàn)熒火蟲燈(六)

        作者: 時間:2013-05-11 來源:網(wǎng)絡(luò) 收藏

        工程師STM32單片機學(xué)習(xí)基礎(chǔ)手記(4):用PWM實現(xiàn)熒火蟲燈(六)  
        工程師STM32單片機學(xué)習(xí)基礎(chǔ)手記(4):用PWM實現(xiàn)熒火蟲燈(六)



          DMA_InitStructure.DMA_Mode = DMA_Mode_Circular;

          DMA_InitStructure.DMA_Priority = DMA_Priority_High;

          DMA_InitStructure.DMA_M2M = DMA_M2M_Disable;

          以下是stm32f10x_dma.c中有關(guān)DMA的初始化設(shè)置代碼

          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單片機學(xué)習(xí)基礎(chǔ)手記(4):用PWM實現(xiàn)熒火蟲燈(六)


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

          /* Write to DMAy Channelx CPAR */

          DMAy_Channelx-》CPAR = DMA_InitStruct-》DMA_PeripheralBaseAddr;

          工程師STM32單片機學(xué)習(xí)基礎(chǔ)手記(4):用PWM實現(xiàn)熒火蟲燈(六)

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

          /* Write to DMAy Channelx CMAR */

          DMAy_Channelx-》CMAR = DMA_InitStruct-》DMA_MemoryBaseAddr;

          //內(nèi)存地址送入CMAR寄存器

          工程師STM32單片機學(xué)習(xí)基礎(chǔ)手記(4):用PWM實現(xiàn)熒火蟲燈(六)


          說明:這個圖從PDF截下來,圖中那個DMA_CPARx寫錯了,應(yīng)該是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相關(guān)文章:pwm原理




        關(guān)鍵詞: STM32 單片機 PWM

        評論


        相關(guān)推薦

        技術(shù)專區(qū)

        關(guān)閉
        主站蜘蛛池模板: 扶沟县| 伊金霍洛旗| 常宁市| 鄂托克旗| 兰坪| 乐都县| 厦门市| 台东县| 安福县| 江油市| 腾冲县| 登封市| 江陵县| 灌云县| 苏尼特右旗| 徐闻县| 郧西县| 扬州市| 河北省| 巍山| 措勤县| 西畴县| 茌平县| 三明市| 治多县| 尉犁县| 上蔡县| 陵川县| 石屏县| 阜阳市| 静宁县| 重庆市| 宿州市| 噶尔县| 娄烦县| 苍溪县| 剑河县| 太保市| 南皮县| 苏州市| 新乡市|