<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

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

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

          作者: 時(shí)間:2016-11-24 來源:網(wǎng)絡(luò) 收藏
          今天使用到的外設(shè)比較多,有DMA,TIM1,ADC。使用ADC1的通道24即PF1采集電位器的電壓,由DMA1的通道0傳輸?shù)紹uffer。同時(shí)由DMA1的通道2將Buffer傳輸?shù)絋IM1外設(shè)上,也就是TIM1_CCR1H寄存器,能夠改變PWM波的占空比。我們將PWM輸出端連接到板上LED3上,這樣就實(shí)現(xiàn)了用電位器調(diào)節(jié)LED3的亮度的作用。我們轉(zhuǎn)了這么大彎,但能夠?qū)W到很多,下面是代碼:
          void main(void)
          {
          //1使能時(shí)鐘
          /* 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)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();