- MounRiver Studio Ⅱ 默认是不开启浮点计算的,所以有些浮点功能不能用,碰到问题是
while (1) {
DelayMs (100);
tmp = Read_Temperature (0);
sprintf (tempBuffer, "temp:%.2f\r\n", tmp); // 格式化温度值到字符串。使用%f要开启相应的浮点运算,不然容易报错
UART0_SendString (tempBuffer, strlen (tempBuffer)); // 发送温度字符串
}
如果不开完整的浮点运算,这个
sprintf (tempBuffer, “temp:%.2f\r\n”, tmp);
输出的只会是“temp:”,而没有后面数据。
解决方式是勾选 Use float with nano printf(-u_printf_float)
2.遇到的第二个问题是,测量的电压值不准,原因是没有照CH592F手册给的公式计算,公式如下:
大致的流程就是先设置衰减度,然后根据相应公式计算
ADC_ExtSingleChSampInit (SampleFreq_3_2, ADC_PGA_1_2);//ADC_PGA_1_2是-6dB
voltage = ((float)adc_value / ADC_MAX-1)* VREF ;//然后更加相应公式计算,ADC_MAX是1024,VREF是1.05