/* ADC conversion flag */ while(ADC_GetFlagStatus(ADC1, ADC_IT_EOC) == 0); /* Clears the adc's pending flags */ ADC_ClearFlag(ADC1, ADC_IT_EOC); /* Get the sampling value of ADC PA0 channel 0 */ ADC_Channel_Samp_Value[0] = ADC1->ADDR0; /* Get the sampling value of ...
while(ADC_GetITStatus(ADCx, ADC_IT_EOC) == SET) resurt=ADC_GetConversionValue(ADCx); /* 清除中断标志 */ ADC_ClearITPendingBit(ADCx, ADC_IT_EOC); } 主函数 主函数负责接收转换的值,并将其转换为电压值,然后通过串口打印在计算机上,便于调试。 变量result是主函数中的全局变量,注意最后的结果应该...
ADC_RegularChannelConfig(ADC_x, ADC_CHANNEL, 1, ADC_SampleTime_55Cycles5); // 配置 ADC 通道转换顺序和采样时间 ADC_ITConfig(ADC_x, ADC_IT_EOC, ENABLE); // ADC 转换结束产生中断,在中断服务程序中读取转换值 } /*** Function: Driver_ADC_Cmd_ENABLE Description: 内部参考电压使能 Input: 无 Out...
ADC_DMACmd(ADC1, ENABLE);//开启DMA // ADC_ITConfig(ADC1,ADC_IT_EOC,ENABLE); ADC_Cmd(ADC1,ENABLE);//开启ADC //也可以开中断 DMA 但是ADC的EOC的标志位是要把通道转完了就产生中断 用DMA搬运好多了 ADC_ResetCalibration(ADC1);//初始化效准寄存器,ADC效验初始化 while(ADC_GetResetCalibrationSta...
ADC_ITConfig(ADC1,ADC_IT_EOC,ENABLE); //使能ADC中断 ADC_ExternalTrigConvCmd(ADC1, ENABLE);//...
ADC1转换完成中断服务程序(在stm32f10x_it.c中编辑): voidADC1_2_IRQHandler(void) {if(ADC_GetITStatus(ADC1,ADC_IT_EOC)) {/*重启DMA*/DMA_Cmd(DMA1_Channel1,DISABLE); DMA_SetCurrDataCounter(DMA1_Channel1,2);//设置还要转换的数据个数DMA_Cmd(DMA1_Channel1,ENABLE); ...
ADC_ITConfig(ADC2,ADC_IT_EOC|ADC_IT_AWD); 6.ADC_ResetCalibration函数的功能是重置指定的ADC的校准寄存器。 ADC_ReserCalibration(ADC1); 7.ADC_GetResetCalibrationSttaus函数的功能是获取ADC重置校准寄存器的状态。 FlagStatus Status Status =ADC_GetResetCalibrationSttaus(ADC2); ...
知道了ADC的转换通道后,如果ADC只使用一个通道来转换,那就很简单,但如果是使用多个通道进行转换就涉及到一个先后顺序了,毕竟规则转换通道只有一个数据寄存器。多个通道的使用顺序分为俩种情况:规则通道的转换顺序和注入通道的转换顺序。 规则通道转换顺序
extern__IOuint16_tADC_ConvertedValue;// 该变量在main.c文件定义,所以需添加extern关键字voidADC_IRQHandler(void){if(ADC_GetITStatus(ADC1,ADC_IT_EOC)==SET){ADC_ConvertedValue=ADC_GetConversionValue(ADC1);// 读取ADC的转换值}ADC_ClearITPendingBit(ADC1,ADC_IT_EOC);} ...
使能ADC1的转换结束中断: ADC_ITConfig(ADC1,ADC_IT_EOC,ENABLE); 配置ADC的NVIC: NVIC_Init();8-使能ADC ADC_Cmd(ADC1, ENABLE);9-开启软件转换:ADC_SoftwareStartConvCmd(ADC1);10-等待转换完成,读取ADC值 ADC_GetConversionValue(ADC1);11-中断服务程序 void ADC_IRQHandler(void); ...