在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

<menu id="6qfwx"><li id="6qfwx"></li></menu>
    1. <menu id="6qfwx"><dl id="6qfwx"></dl></menu>

      <label id="6qfwx"><ol id="6qfwx"></ol></label><menu id="6qfwx"></menu><object id="6qfwx"><strike id="6qfwx"><noscript id="6qfwx"></noscript></strike></object>
        1. <center id="6qfwx"><dl id="6qfwx"></dl></center>

            新聞中心

            EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > STM8L探索套件學習筆記-綜合應(yīng)用(十八)

            STM8L探索套件學習筆記-綜合應(yīng)用(十八)

            作者: 時間:2016-11-24 來源:網(wǎng)絡(luò) 收藏
            今天使用到的外設(shè)比較多,有DMA,TIM1,ADC。使用ADC1的通道24即PF1采集電位器的電壓,由DMA1的通道0傳輸?shù)紹uffer。同時由DMA1的通道2將Buffer傳輸?shù)絋IM1外設(shè)上,也就是TIM1_CCR1H寄存器,能夠改變PWM波的占空比。我們將PWM輸出端連接到板上LED3上,這樣就實現(xiàn)了用電位器調(diào)節(jié)LED3的亮度的作用。我們轉(zhuǎn)了這么大彎,但能夠?qū)W到很多,下面是代碼:
            void main(void)
            {
            //1使能時鐘
            /* Enable ADC1 clock */
            CLK_PeripheralClockConfig(CLK_Peripheral_ADC1, ENABLE);

            /* Enable TIM1 clock */
            CLK_PeripheralClockConfig(CLK_Peripheral_TIM1, ENABLE);

            /* Enable DMA1 clock */
            CLK_PeripheralClockConfig(CLK_Peripheral_DMA1, ENABLE);
            //2設(shè)置ADC
            /* Initialise and configure ADC1 */
            ADC_Init(ADC1, ADC_ConversionMode_Continuous, ADC_Resolution_12Bit, ADC_Prescaler_2);
            ADC_SamplingTimeConfig(ADC1, ADC_Group_SlowChannels, ADC_SamplingTime_384Cycles);

            /* Enable ADC1 */
            ADC_Cmd(ADC1, ENABLE);

            /* Enable ADC1 Channels 24 */
            ADC_ChannelCmd(ADC1, ADC_Channel_24, ENABLE); /* connected to potentiometer */
            //3設(shè)置DMA通道0連接ADC1,通道2連接TIM1
            /* Connect ADC1 to DMA1 channel 0 */
            SYSCFG_REMAPDMAChannelConfig(REMAP_DMA1Channel_ADC1ToChannel0);
            DMA_Init(DMA1_Channel0,
            BUFFER_ADDRESS,
            ADC1_DR_ADDRESS,
            BUFFER_SIZE,
            DMA_DIR_PeripheralToMemory,
            DMA_Mode_Circular,
            DMA_MemoryIncMode_Inc,
            DMA_Priority_High,
            DMA_MemoryDataSize_HalfWord);

            /* Connect DMA1 channel 2 to TIM1 */
            DMA_Init(DMA1_Channel2,
            BUFFER_ADDRESS,
            TIM1_CCR1_ADDRESS,
            BUFFER_SIZE,
            DMA_DIR_MemoryToPeripheral,
            DMA_Mode_Circular,
            DMA_MemoryIncMode_Inc,
            DMA_Priority_High,
            DMA_MemoryDataSize_HalfWord);

            /* DMA1 Channel0 enable */
            DMA_Cmd(DMA1_Channel0, ENABLE);

            /* DMA1 Channel2 enable */
            DMA_Cmd(DMA1_Channel2, ENABLE);

            /* DMA1 enable */
            DMA_GlobalCmd(ENABLE);
            //4設(shè)置TIM1 CH1輸出PWM波
            /* configure TIM1 channel 1 as PWM Output */
            TIM1_OC1Init(TIM1_OCMode_PWM1,
            TIM1_OutputState_Enable,
            TIM1_OutputNState_Disable,
            0x7FF/* TIM1_Pulse */,
            TIM1_OCPolarity_Low,
            TIM1_OCNPolarity_Low,
            TIM1_OCIdleState_Reset,
            TIM1_OCNIdleState_Reset);

            /* Set TIM1 Autoreload value*/
            TIM1_SetAutoreload(0xFFF);
            //2M/4095=488.4HZ
            /* Enable TIM1 */
            TIM1_Cmd(ENABLE);

            //5 PD2 TIM1 CH1設(shè)置
            /* GPIO configuration: TIM1 channel 1 (PD2)*/
            GPIO_Init(GPIOD, GPIO_Pin_2 , GPIO_Mode_Out_PP_Low_Fast);

            //6使能
            /* Enable TIM1 Outputs*/
            TIM1_CtrlPWMOutputs(ENABLE);

            /* Enable ADC1 DMA requests*/
            ADC_DMACmd(ADC1, ENABLE);

            /* Enable TIM1 DMA requests*/
            TIM1_DMACmd(TIM1_DMASource_Update, ENABLE);

            /* Start ADC1 Conversion using Software trigger*/
            ADC_SoftwareStartConv(ADC1);

            while (1)
            {}
            }


            評論


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

            關(guān)閉