找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索

單片機(jī)串口 18B20 接收 時(shí)好時(shí)壞

查看數(shù): 2930 | 評論數(shù): 9 | 收藏 1
關(guān)燈 | 提示:支持鍵盤翻頁<-左 右->
    組圖打開中,請稍候......
發(fā)布時(shí)間: 2021-2-7 19:50

正文摘要:

開起pwm(開燈) 后 18B20 數(shù)值出錯 請各位大師幫我看看   O(∩_∩)O謝謝 程序如下 #include <reg51.h> #include <temp.h> #include <stdio.h>           ...

回復(fù)

ID:390416 發(fā)表于 2021-2-8 18:48
你這個代碼居然有死等幾百us  ,去看看我們 人人學(xué)會單片機(jī)的代碼
http://www.torrancerestoration.com/bbs/dpj-200968-1.html
ID:213173 發(fā)表于 2021-2-8 17:44
如果只是為了調(diào)燈的亮度,沒必要設(shè)置這么高頻率的PWM,中斷里運(yùn)行的語句越少越好。否則會破壞18b20讀寫時(shí)序而出錯。串口通訊也要把中斷方式改查詢方式為好。
ID:290576 發(fā)表于 2021-2-8 15:16
xhaity 發(fā)表于 2021-2-8 13:07
上傳一個ds18b20的crc校驗(yàn)程序,供參考。

文件錯誤
ID:290576 發(fā)表于 2021-2-8 15:15
justinchill 發(fā)表于 2021-2-8 08:43
有可能是你在Ds18b20ReadByte函數(shù)里總線釋放的時(shí)間有些短,適當(dāng)添加一點(diǎn)延時(shí)再試試,就是i++那里

加上兩個空指令后 直接就錯了
ID:373388 發(fā)表于 2021-2-8 13:07
上傳一個ds18b20的crc校驗(yàn)程序,供參考。 crc8.rar (1.03 KB, 下載次數(shù): 8)

ID:373388 發(fā)表于 2021-2-8 10:39
18b20在讀寫時(shí),時(shí)序比較嚴(yán)格,中斷以后基本上都會打亂時(shí)序,讀數(shù)錯誤,利用crc校驗(yàn), 驗(yàn)證數(shù)據(jù),如果數(shù)據(jù)不正確,重新讀數(shù);
ID:871393 發(fā)表于 2021-2-8 09:06
我用hx711時(shí), 發(fā)現(xiàn)負(fù)數(shù)的移位有可能得出錯誤結(jié)果(估計(jì)是編譯器有差異), 使用一般加減乘除試試
ID:115204 發(fā)表于 2021-2-8 08:43
有可能是你在Ds18b20ReadByte函數(shù)里總線釋放的時(shí)間有些短,適當(dāng)添加一點(diǎn)延時(shí)再試試,就是i++那里
ID:420836 發(fā)表于 2021-2-8 08:27
當(dāng)PWM開啟時(shí),定時(shí)器中斷會擾亂18B20的延遲。

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表