1.expression must be a modifiable lvalue
错误代码:
int R37=0;
R37 = HAL_ADC_GetValue(&hadc2);
报错原因:错误赋值
个人感觉原因:是不是变量命名上的问题,改成R_37就可以了
我还查看了返回值的类型,应该不是这个原因
有没有懂哥可以解释一下?!
2.single-precision operand implicitly converted to double-precis
错误代码
float R_37=0;
sprintf((char*)str," ADC: %.2fV",(R_37/4096)*3.3);
原因
float为单精度,输出时%.2f为双精度,存在隐藏的精度转换
改正:
网上说加f,我试了试好像不太行,最后我把类型改成double了(有没有后面加f成功的兄弟?)
double R_37=0;