久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索

MCU將8位AD采集到的值轉換成實際值遇到的坑求解

查看數: 2498 | 評論數: 6 | 收藏 0
關燈 | 提示:支持鍵盤翻頁<-左 右->
    組圖打開中,請稍候......
發布時間: 2021-3-31 04:19

正文摘要:

MCU AD采集到的值dat從二進制轉換成10進制實際電壓值輸出中遇到了一些問題 采集到電壓值dat區間在0-255之間,實際參考位5V,講采集到的值做運算,輸出實際電壓值 1.unsigned char型的變量轉換成int型,為什么需要 ...

回復

ID:250416 發表于 2021-4-1 08:23
sdarling 發表于 2021-4-1 00:51
為什么uchar型的dat和500先運算,是以int型輸出而不是以char型嗎,是因為前邊變量temp的緣故?

uchar型dat和500運算是int型,因為500是int型常量
ID:886945 發表于 2021-4-1 00:51
張天師 發表于 2021-3-31 09:11
dat為0-255,那么500*dat最大值為127500。這里存在C語言運算類型轉換原則,,500*1.0就轉換為float運算,其 ...

為什么uchar型的dat和500先運算,是以int型輸出而不是以char型嗎,是因為前邊變量temp的緣故?
ID:886945 發表于 2021-4-1 00:49
liujunping11 發表于 2021-3-31 13:21
如果dat值為255,則temp11為500,遠遠大于255,8位無法表示,所以亂碼

temp是int型,而且你這里理解是錯了,不管怎么算 temp都是要大于255的,我現在有問題的是這個運算順序,1.0放在變量dat前邊還是放在dat后邊相乘,兩個結果是不一樣的
ID:712560 發表于 2021-3-31 13:21
如果dat值為255,則temp11為500,遠遠大于255,8位無法表示,所以亂碼

評分

參與人數 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎勵!

查看全部評分

ID:814525 發表于 2021-3-31 09:11
dat為0-255,那么500*dat最大值為127500。這里存在C語言運算類型轉換原則,,500*1.0就轉換為float運算,其類型是32位,500*1.0*dat其值不會溢出;而500*dat*1.0,就先以int類型運算再以浮點運算,而int運算時,有可能已經溢出了,結果就出錯。所以運算的類型及前后順序很重要,這就是稍不注意就出錯的原因

評分

參與人數 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎勵!

查看全部評分

ID:886945 發表于 2021-3-31 04:26
我看別人的程序,這個1.0放在變量后邊都沒問題,編譯器問題?看視屏里用的keil4,我用的keil5

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 欧美高清视频一区 | 在线视频h | 国产在线激情视频 | 日韩aⅴ片| 国产激情一区二区三区 | 99久久婷婷国产综合精品电影 | 久久久久一区 | 日本aaaa | 中文二区| 免费一区二区三区在线视频 | 欧美精品欧美精品系列 | 日韩一区二区福利视频 | 无毛av| 久久国产精品视频 | 97精品国产 | 国产99精品| 蜜桃臀av一区二区三区 | 久久小视频 | 色免费视频 | 国产三区av | 日韩精品在线一区二区 | 夜夜草| 中文字幕在线观 | 一区二区三区在线观看免费视频 | 国产探花在线精品一区二区 | 99在线精品视频 | 久久久久久av | 国产亚洲高清视频 | 国产成都精品91一区二区三 | 国产精品揄拍一区二区久久国内亚洲精 | 九九综合 | 日韩在线精品视频 | a级片网站 | 国产美女视频黄 | 在线视频日韩精品 | 国产乱码一二三区精品 | 日韩国产在线 | 精品一二 | 国产精品中文字幕一区二区三区 | 久久免费观看一级毛片 | 99久久国产综合精品麻豆 |