找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索

DS18B20采集數(shù)據(jù)失敗

查看數(shù): 1100 | 評論數(shù): 7 | 收藏 0
關燈 | 提示:支持鍵盤翻頁<-左 右->
    組圖打開中,請稍候......
發(fā)布時間: 2024-6-17 09:58

正文摘要:

主程序如下。目前數(shù)碼管顯示的數(shù)據(jù)是06666,這個是不正常的。這個程序是我仿照普中的DS18B20實驗來做的,預期是用DS18B20測溫,數(shù)碼管顯示數(shù)據(jù),保留一位小數(shù)。 目前顯示不正常,我首先是檢查DS18B20初始化是否有問 ...

回復

ID:427868 發(fā)表于 2024-6-21 16:55

for(j=4;j<255;j--){                          
        temp_buf[j]=duan_table[T_value/%10];
    T_value/=T_value//10;
    }
以上幾行是不行的,首先 for循環(huán)函數(shù)內(nèi)j會始終小于255,不能跳出循環(huán)。另外temp_buf[j]=duan_table[T_value%10];    T_value=T_value/10;想得到什么結果?
ID:1109793 發(fā)表于 2024-6-21 15:25
名字不是重點 發(fā)表于 2024-6-21 15:14
行不行試試就知道,但這行應該是不行的

很奇怪復制粘貼的居然多了好幾個/
ID:824490 發(fā)表于 2024-6-21 15:14

行不行試試就知道,但這行應該是不行的
  1. T_value/=T_value//10;
復制代碼
ID:1109793 發(fā)表于 2024-6-21 13:11

代買里面怎么多了好幾個/?
ID:1109793 發(fā)表于 2024-6-21 08:58
劉佑紅 發(fā)表于 2024-6-21 07:01
以下四句可以簡化。
    temp_buf[1] = duan_table[T_value/1000];
    temp_buf[2] = duan_table[T_ ...
  1. for(j=4;j<255;j--){                          
  2.         temp_buf[j]=duan_table[T_value/%10];
  3.     T_value/=T_value//10;
  4.     }   
復制代碼

這樣是不是也行。
ID:427868 發(fā)表于 2024-6-21 07:01
    以下四句可以簡化。
    temp_buf[1] = duan_table[T_value/1000];
    temp_buf[2] = duan_table[T_value%1000/100];
    temp_buf[3] = duan_table[T_value%1000%100/10]; //個位+小數(shù)點
    temp_buf[4] = duan_table[T_value%1000%100%10];
    簡化為:
     temp_buf[1] = duan_table[T_value/1000];
     temp_buf[2] = duan_table[T_value/100%10];
     temp_buf[3] = duan_table[T_value/10%10];
     temp_buf[4] = duan_table[T_value%10];
    簡化后代碼會減小,運行也會快些,畢竟除法求余數(shù)比較耗時。
ID:688692 發(fā)表于 2024-6-19 09:12
樓主可以先刷我的程序看看硬件有沒有問題,然后再排查。
http://www.torrancerestoration.com/bbs/dpj-235842-1.html

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

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

快速回復 返回頂部 返回列表