永发信息网

单片机LM35温度传感器接AD转换的运算公式问题

答案:1  悬赏:40  手机版
解决时间 2021-11-30 16:53
  • 提问者网友:溺爱和你
  • 2021-11-29 17:51
单片机LM35温度传感器接AD转换的运算公式问题
最佳答案
  • 五星知识达人网友:神也偏爱
  • 2021-11-29 18:07
无特殊声明的话20*P0是按照无符号字符型临时计算的,因此很可能发生溢出。

20.0相当于强制转换为float型,自然可以保证“正确”地算出温度(但是计算效率是十分地低下)。追问为什么会溢出?是P0的范围只有只有0到255的吗?还是按照定义的变量wd来看的,我用无符号整形定义变量,结果也是一样的,求指教
我可以追加分数的,谢谢追答你光定义wd的类型是没有用的。wd = 20*P0/51这句话在编译之后大致相当于:
临时变量A = 20*P0
临时变量B = 临时变量A / 51
wd = 临时变量B
而C51的默认数据类型是unsigned char型。解决的方法是强制提升类型,例如
wd = (unsigned int)20*P0/51;

具体你还需要好好看看C语言的书,关于数据类型隐式转换的相关说明。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯