你的浏览器版本过低,可能导致网站不能正常访问!为了你能正常使用网站功能,请使用这些浏览器。
stm1024 发表于 2018-8-2 11:44 stdint.h,了解一下? 使用uint32_t试试?
sunwah 发表于 2018-8-2 10:02 额,或者你能不能告诉我,在IAR里面有没有办法定义出来一个32位整数变量?我怎么折腾,都是16位。 ...
查看全部评分
toofree 发表于 2018-8-2 14:49
早就试过了,sizeof的值也是4
评分
查看全部评分
void HandleADC()
{
char ADCBuff[20];
uint32_t Voltage;
unsigned long Temp;
//第一次读取的ADC值需要丢弃
ADC_Data_Read(&ADCData); //读取ADC的采样数值
ADC_Data_Read(&ADCData); //读取ADC的采样数值
Voltage = ADCData * 330L / 1024L;
Temp = (unsigned int)Voltage;
ADCBuff[5] = 0x0a;
ADCBuff[4] = 0x0d; //换行字符
ADCBuff[3] = Int2HexString(Temp % 100 % 10);
ADCBuff[2] = Int2HexString(Temp % 100 / 10);
ADCBuff[1] = '.';
ADCBuff[0] = Int2HexString(Temp / 100);
Uart1_SendString(ADCBuff,6); //向PC机发送ADC采样数值
}
谢谢你!按照你的做法,运算的时候330和1024后面加L,运算出来的结果就是正确的。