中易网

在STM32F103ZET6的处理器上,设置ADC1的采样频率为1KHz,采样精度为12位,对电压进行数据采集

答案:1  悬赏:70  
解决时间 2021-04-28 01:37
  • 提问者网友:依靠
  • 2021-04-27 17:21
使用IAR或者Keil软件写一段程序实现以下功能: 在STM32F103ZET6的处理器上,设置ADC1的采样频率为1KHz,采样精度为12位,对电压进行数据采集
最佳答案
  • 二级知识专家网友:蜜罐小熊
  • 2021-04-27 17:35
芯片:STM32F103
库函数版本:3.5
平台:KEIL 4.72

ADC1初始化部分

ADC_InitTypeDef ADC_USER;
RCC_ADCCLKConfig(RCC_PCLK2_Div6);
ADC_USER.ADC_Mode = ADC_Mode_Independent;
ADC_USER.ADC_ScanConvMode = DISABLE;
ADC_USER.ADC_ContinuousConvMode = DISABLE;
ADC_USER.ADC_ExternalTrigConv = ADC_ExternalTrigConv_None;
ADC_USER.ADC_DataAlign = ADC_DataAlign_Right;
ADC_USER.ADC_NbrOfChannel = 1;
ADC_Init(ADC1, &ADC_USER);

ADC_RegularChannelConfig(ADC1, ADC_Channel_0, 1, ADC_SampleTime_239Cycles5);
ADC_Cmd(ADC1, ENABLE);

ADC_ResetCalibration(ADC1);
while(ADC_GetResetCalibrationStatus(ADC1));
ADC_StartCalibration(ADC1);
while(ADC_GetCalibrationStatus(ADC1));
ADC_SoftwareStartConvCmd(ADC1, ENABLE);

//主程序调用ADC部分
ADC_SoftwareStartConvCmd(ADC1, ENABLE);
delay_us(200);
while(!ADC_GetFlagStatus(ADC1, ADC_FLAG_EOC));
num = ADC_GetConversionValue(ADC1); //返回值就是采集的数据
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息!
大家都在看
推荐信息