找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 5434|回復(fù): 4
收起左側(cè)

stm32源程序:ds18b20內(nèi)部ID序列號(hào)獲取

[復(fù)制鏈接]
ID:279523 發(fā)表于 2018-3-7 15:35 | 顯示全部樓層 |閱讀模式
使用stm32單片機(jī),通過串口助手可獲取ds18b20的內(nèi)部序列號(hào)

單片機(jī)源程序如下:
  1. #include "led.h"
  2. #include "delay.h"
  3. #include "sys.h"
  4. #include "usart.h"         
  5. #include "ds18b20.h"

  6. //MAXNUM在ds18b20.h中定義
  7. u8 ID_Buff[MAXNUM][8];

  8. int main(void)
  9. {         
  10.         u8 i,j,num;                           
  11.         short Temp;               

  12.         delay_init();                     //延時(shí)函數(shù)初始化        
  13.         DS18B20_Init();                  
  14.         NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//設(shè)置中斷優(yōu)先級(jí)分組為組2:2位搶占優(yōu)先級(jí),2位響應(yīng)優(yōu)先級(jí)
  15.         uart_init(115200);                 //串口初始化為 115200
  16.         LED_Init();
  17.         printf("start system ...\r\n\r\n");
  18.          
  19.          
  20.           num = DS18B20_SearchROM(ID_Buff,MAXNUM);  
  21.     printf("總線上掛載的DS18B20數(shù)量為: %d\r\n",MAXNUM);  
  22.     printf("搜索到的DS18B20數(shù)量為: %d\r\n",num);  
  23.   
  24.       
  25.     for(i = 0;i < num;i ++)  
  26.     {  
  27.         printf("\r\n DS18B20 No%d ID: ",i);  
  28.         for(j = 0;j < 8;j ++)  
  29.         {  
  30.             printf("%02X ",ID_Buff[i][j]);  
  31.         }  
  32.     }  
  33.   
  34.     i = 0;  
  35.     while(1)  
  36.     {  
  37.         LED1 = ~LED1;                        
  38.         delay_ms(1000);  
  39.         Temp = DS18B20_ReadDesignateTemper(ID_Buff[i ++]);  
  40.         printf("\r\n 第%d個(gè)DS18B20溫度為:%.2f ℃",i,Temp/100.0);  
  41.         if(i == num)  
  42.         {  
  43.             i = 0;  
  44.             printf("\r\n");  
  45.         }
  46.                 }                                
  47. }

復(fù)制代碼

所有資料51hei提供下載:
ds18B20內(nèi)部ID獲取.zip (361.67 KB, 下載次數(shù): 137)


回復(fù)

使用道具 舉報(bào)

ID:340210 發(fā)表于 2018-6-18 23:08 | 顯示全部樓層
為啥該程序用于多通道溫度顯示時(shí),從第二個(gè)通道開始就只能顯示一個(gè)傳感器的序列號(hào)和讀取對(duì)應(yīng)的溫度值而已
回復(fù)

使用道具 舉報(bào)

ID:388992 發(fā)表于 2019-4-11 09:36 | 顯示全部樓層
謝謝樓主分享!目前想嘗試多個(gè)DS18B20一起工作。
回復(fù)

使用道具 舉報(bào)

ID:252765 發(fā)表于 2020-1-31 21:39 | 顯示全部樓層
謝謝樓主分享!
回復(fù)

使用道具 舉報(bào)

ID:91165 發(fā)表于 2020-2-25 18:56 | 顯示全部樓層
開始學(xué)32 正需要,謝謝樓主
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

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