找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3541|回復: 1
收起左側

STM32 ADC控制電位計同步改變燈的亮度

[復制鏈接]
ID:266672 發(fā)表于 2017-12-25 18:21 | 顯示全部樓層 |閱讀模式
ADC__控制電位計同步改變燈的亮度


094500jik8zkdylt7bmi75.png
1. 開啟ADC時鐘和GPIO配置(模擬輸入模式)
2. 中斷的配置
3. PWM的配置
4. ADC配置
void adc_config()
{
    ADC_InitTypeDef ADC_InitStructure;
    ADC_DeInit(ADC1);
    RCC_APB2PeriphClockCmd(RCC_APB2Periph_ADC1, ENABLE);
    RCC_ADCCLKConfig(RCC_PCLK2_Div6);                   //RCC時鐘配置為72Mhz,分頻為12Mhz
        ADC_InitStructure.ADC_Mode = ADC_Mode_Independent;//獨立模式
    ADC_InitStructure.ADC_ScanConvMode = DISABLE;//掃描轉換關閉
    ADC_InitStructure.ADC_ContinuousConvMode = ENABLE;//連續(xù)轉換模式
    ADC_InitStructure.ADC_ExternalTrigConv = ADC_ExternalTrigConv_None;//不用外部事件啟動轉換
    ADC_InitStructure.ADC_DataAlign = ADC_DataAlign_Right; //數(shù)據(jù)對齊為右對齊
    ADC_InitStructure.ADC_NbrOfChannel = 1;//規(guī)則通道序列長度為1
    ADC_Init(ADC1, &ADC_InitStructure);
    ADC_RegularChannelConfig(ADC1, ADC_Channel_14, 1, ADC_SampleTime_28Cycles5);
   
   
    ADC_ITConfig(ADC1, ADC_IT_EOC, ENABLE);
   
    ADC_Cmd(ADC1, ENABLE);
    //復位指定的ADC1的校準寄存器
    ADC_ResetCalibration(ADC1);
    //獲取ADC1復位校準寄存器的狀態(tài),設置狀態(tài)則等待
    while(ADC_GetResetCalibrationStatus(ADC1))
    {
    }
    ADC_StartCalibration(ADC1);
    while(ADC_GetCalibrationStatus(ADC1))
    {
    }
    //配置ADC模塊需注意的是需要配置adc的啟動方式,這里配置為軟件啟動
    ADC_SoftwareStartConvCmd(ADC1, ENABLE);        
   
}
5. ADC中斷函數(shù)編寫,把ADC得到的值轉換設置給PWM的占空比,改變LED亮度
void ADC1_2_IRQHandler(void)
{
    u16 ADCConvertedValue;
        if(ADC_GetITStatus(ADC1,ADC_IT_EOC)!=RESET)//獲取ADC中斷狀態(tài)
        {
            ADC_ClearITPendingBit(ADC1, ADC_IT_EOC);//清楚中斷位
            ADCConvertedValue = ADC_GetConversionValue(ADC1);//取得ADC1掃描通道得到的值
            TIM_SetCompare4(TIM2,ADCConvertedValue*4096/0xfff);//重新設置PWM的比較捕獲值,即TIM_Pulse得值
        }

}
6.將PWM的引腳(我的是PA3)和LED0的PF6連起來,通過旋鈕即可控制LED0亮度

回復

使用道具 舉報

ID:586166 發(fā)表于 2019-7-24 18:17 | 顯示全部樓層
ADC中斷函數(shù)編寫可以寫在那些地方呢
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表