引用: wulinwl 发表于 2017-4-20 16:07
C程序中用10或16进制表示的表达式都会由编译器转换成2进制码。xx=0xff一样可以分解,你就看成是xx=1111 1111,只是只有百、十、个位。只是分解成代表10进制数的符号用于显示,是符号不是数!再不明白就无语了。
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);
引用: wulinwl 发表于 2017-4-20 16:07
C程序中用10或16进制表示的表达式都会由编译器转换成2进制码。xx=0xff一样可以分解,你就看成是xx=1111 1111,只是只有百、十、个位。只是分解成代表10进制数的符号用于显示,是符号不是数!再不明白就无语了。
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);
举报