*/u8DS18B20_CheckDevice(void)//包含了复位脉冲、检测存在脉冲{DS18B20_OUTPUT_MODE();//初始化为输出模式DS18B20_OUT=0;//产生复位脉冲DelayUs(750);//产生750us的低电平DS18B20_OUT=1;//释放总线DelayUs(15);//等待DS18B20回应if(DS18B20_CleckAck())//检测存在脉冲{return1;}return0;}/* 函数功能: 检...
u8 DS18B20_CheckDevice(void) //包含了复位脉冲、检测存在脉冲 { DS18B20_OUTPUT_MODE();//初始化为输出模式 DS18B20_OUT=0; //产生复位脉冲 DelayUs(750); //产生750us的低电平 DS18B20_OUT=1; //释放总线 DelayUs(15); //等待DS18B20回应 if(DS18B20_CleckAck())//检测存在脉冲 { return 1; } ret...
void DS18B20WriteByte(unsigned char Dat) { unsigned char i; for(i=8;i>0;i--) { ResetDQ(); //在15u内送数到数据线上,DS18B20在15-60u读数 Delay_us(5); //5us if(Dat & 0x01) SetDQ(); else ResetDQ(); Delay_us(65); //65us SetDQ(); Delay_us(2); //连续两位间应大于1us...
*/voidDS18B20_WriteByte(u8 cmd){u8 i;DS18B20_OUTPUT_MODE();//初始化为输出模式for(i=0;i<8;i++){DS18B20_OUT=0;//产生写时间间隙(写开始)DelayUs(2);DS18B20_OUT=cmd&0x01;//发送实际的数据位DelayUs(60);//等待写完成DS18B20_OUT=1;//释放总线,准备下一次发送cmd>>=1;//继续发送下一位数...
DS18B20温度显示效果 第一部分:DS18B20温度模块驱动代码[头文件](DS18B20.h) #ifndef__DS18B20_H__#define__DS18B20_H__#include"stm32f10x.h"#defineSkipROM 0xCC//跳过ROM#defineSearchROM 0xF0//搜索ROM#defineReadROM 0x33//读ROM#defineMatchROM 0x55//匹配ROM#defineAlarmROM 0xEC//告警ROM#defineStar...
STM32编程方式:寄存器开发 (方便程序移植到其他单片机) 温度传感器:DS1820 DS18B20是一个数字温度传感器,采用的是单总线时序与主机通信,只需要一根线就可以完成温度数据读取; DS18B20内置了64位产品序列号,方便识别身份,在一根线上可以挂接多个DS18B20传感器,通过64位身份验证,可以分别读取来至不同传感器采集的温度信息。
DS18B20是一款单总线可编程分辨率的数字温度计,详细内容可见中英文datasheet,笔者不在赘述。 很早就接触到的温度传感器,也相信每一个曾学习过嵌入式开发的人都用过,笔者在STM32F4上自码DS18B20驱动,有些小小心得: DS18B20的控制流程 根据DS18B20的通信协议,DS18B20只能作为从机,而单片机系统作为主机,单片机控制DS18B20完成...
STM32编程方式: 寄存器开发 (方便程序移植到其他单片机) 温度传感器: DS1820 DS18B20是一个数字温度传感器,采用的是单总线时序与主机通信,只需要一根线就可以完成温度数据读取; DS18B20内置了64位产品序列号,方便识别身份,在一根线上可以挂接多个DS18B20传感器,通过64位身份验证,可以分别读取来至不同传感器采集的温度信...
DS18b20驱动程序---*/#ifndef__DS18B20_H#define__DS18B20_Htypedefenum{FAILED=0,PASSED=!FAILED}TestStatus;#defineDQ_GPIOGPIOD#defineDQ_GPIO_PinGPIO_Pin_5//REGISTERCOMMANDS#defineREGISTER_9_BITS0x1F#defineREGISTER_10_BITS0x3F#defineREGISTER_