*/u8DS18B20_CheckDevice(void)//包含了复位脉冲、检测存在脉冲{DS18B20_OUTPUT_MODE();//初始化为输出模式DS18B20_OUT=0;//产生复位脉冲DelayUs(750);//产生750us的低电平DS18B20_OUT=1;//释放总线DelayUs(15);//等待DS18B20回应if(DS18B20_CleckAck())//检测存在脉冲{return1;}return0;}/* 函数功能: 检...
1、DS18B20驱动程序 //单片机只需要用一个普通的IO口和DS18B20的DQ引脚相连,然后控制这个IO口输出高低电平即可 //复位DS18B20 //作用:复位 void DS18B20_Rst(void) { DS18B20_IO_OUT(); //把单片机的IO口配置为输出 DS18B20_DQ_OUT=0; //拉低DQ delay_us(750); //拉低750us,这个时间是根据DS18B20本身的...
18B20 共有三种形态的存储器资源,它们分别是:ROM只读存储器,用于存放 DS18B20ID 编码,其前 8 位是单线系列编码(DS18B20 的编码是19H),后面 48 位是芯片唯一的序列号,最后 8 位是以上 56 的位的 CRC 码(冗余校验)。数据在出产时设置不由用户更改,DS18B20 一共有 64 位 ROM。 RAM 数据暂存器,用于内部计算...
*/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.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#defineStartConvert 0x44//开...
STM32CubeMX实现DS18B20 can通信 TO DO 1 CAN_FilterTypeDef 中的SlaveStartFilterBank 为从过滤器配置,用来选择从过滤器的寄存器号 当选择双CAN模式的时候,这个参数要跟CAN2的filternumber 一致。 //filternumber 是啥 2 can在发送的时候怎么决定是送到FIFO0还是FIFO1?
DS18B20驱动程序源代码如下: #include 《ds18b20.h》 #include “delay.h” #include “usart.h” //ds18b20初始化 void init_ds18b20( void ) { init_onewire_out(); GPIO_ResetBits(GPIOG,GPIO_Pin_9); delay_us(480); init_onewire_in(); ...
1、 DS18B20接口很简单,VCC、DQ、GND三个引脚,VCC采用外部供电3.3V,DQ需上拉电阻,当时按照参考资料上外接4.7K的上拉电阻,GPIO设置的OD无上拉,始终读不到ROM中的64位序列号,后面发送的转换指令更别想了,后来GPIO改成推挽输出时,诶,就能读到数据,推挽输出无非就是增大驱动能力,仔细看手册,其中有提到,DS18B20空闲...
void Init_Ds18b20(void) { GPIO_DQ_Out_Mode(); DQ_L; delay_us(500);//480-960us DQ_H; delay_us(1); GPIO_DQ_Input_Mode(); while(B20Read_SDA); delay_us(300); GPIO_DQ_Out_Mode(); } //读一个字节 u8 Read_One_Byte() { ...