使用stm32单片机,通过串口助手可获取ds18b20的内部序列号
单片机源程序如下:
- #include "led.h"
- #include "delay.h"
- #include "sys.h"
- #include "usart.h"
- #include "ds18b20.h"
- //MAXNUM在ds18b20.h中定义
- u8 ID_Buff[MAXNUM][8];
- int main(void)
- {
- u8 i,j,num;
- short Temp;
- delay_init(); //延时函数初始化
- DS18B20_Init();
- NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//设置中断优先级分组为组2:2位抢占优先级,2位响应优先级
- uart_init(115200); //串口初始化为 115200
- LED_Init();
- printf("start system ...\r\n\r\n");
-
-
- num = DS18B20_SearchROM(ID_Buff,MAXNUM);
- printf("总线上挂载的DS18B20数量为: %d\r\n",MAXNUM);
- printf("搜索到的DS18B20数量为: %d\r\n",num);
-
-
- for(i = 0;i < num;i ++)
- {
- printf("\r\n DS18B20 No%d ID: ",i);
- for(j = 0;j < 8;j ++)
- {
- printf("%02X ",ID_Buff[i][j]);
- }
- }
-
- i = 0;
- while(1)
- {
- LED1 = ~LED1;
- delay_ms(1000);
- Temp = DS18B20_ReadDesignateTemper(ID_Buff[i ++]);
- printf("\r\n 第%d个DS18B20温度为:%.2f ℃",i,Temp/100.0);
- if(i == num)
- {
- i = 0;
- printf("\r\n");
- }
- }
- }
复制代码
所有资料51hei提供下载:
ds18B20内部ID获取.zip
(361.67 KB, 下载次数: 137)
|