ADC1_CR1_bit.START = 1; //启动ADC //delay(500);
while(ADC1_SR_bit.EOC == 0); //等待转换结束
ADC1_SR_bit.EOC = 0; //清除中断标志
adc_tmp = ADC1_DRH;
*AD_Value = (unsigned int)((adc_tmp << 8) + ADC1_DRL); //高8位与低8位相加,凑成16位数据
ADC1_CR1_bit.START = 0;
这是怎么读取的啊,把数据给一个指针变量,不懂,ad转换的值是二进制数?,通过液晶屏显示怎么变成十进制数呢
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
void ADC_Data_Read(unsigned int *AD_Value)
{
ADC1_SQR4_bit.CHSEL_S0 = 1; //设置通道0序列
ADC1_CR1_bit.START = 1; //启动ADC
while(ADC1_SR_bit.EOC == 0); //等待转换结束
ADC1_SR_bit.EOC = 0; //清除中断标志
*AD_Value = ADC1_DRH; //先读取高8位
*AD_Value = (unsigned int)((*AD_Value << 8) + ADC1_DRL); //高8位与低8位相加,凑成16位数据
}
ADC_Data_Read(&ADCData);
这里 *AD_Value直接用个变量AD_Value也行吧调用该成ADC_Data_Read(AD_Value);
一周热门 更多>