29#define DS18B20_DQ_PULLUP() GPIO_SetPullUp(GPIO_Port_3, GPIO_Pin_5, HAL_State_ON)
30#define DS18B20_DQ_INPUT() GPIO_P3_SetMode(GPIO_Pin_5, GPIO_Mode_Input_HIP)
31#define DS18B20_DQ_OUTPUT() GPIO_P3_SetMode(GPIO_Pin_5, GPIO_Mode_InOut_OD)
32#define DS18B20_DQ_LOW() DS18B20_DQ=RESET
33#define DS18B20_DQ_HIGH() DS18B20_DQ=SET
36#define ONEWIRE_CMD_RSCRATCHPAD 0xBE
37#define ONEWIRE_CMD_WSCRATCHPAD 0x4E
38#define ONEWIRE_CMD_CPYSCRATCHPAD 0x48
39#define ONEWIRE_CMD_RECEEPROM 0xB8
40#define ONEWIRE_CMD_RPWRSUPPLY 0xB4
41#define ONEWIRE_CMD_SEARCHROM 0xF0
42#define ONEWIRE_CMD_READROM 0x33
43#define ONEWIRE_CMD_MATCHROM 0x55
44#define ONEWIRE_CMD_SKIPROM 0xCC
46#define DS18B20_FAMILY_CODE 0x28
47#define DS18B20_CMD_ALARMSEARCH 0xEC
50#define DS18B20_CMD_CONVERTTEMP 0x44
51#define DS18B20_DECIMAL_STEPS_12BIT 0.0625
52#define DS18B20_DECIMAL_STEPS_11BIT 0.125
53#define DS18B20_DECIMAL_STEPS_10BIT 0.25
54#define DS18B20_DECIMAL_STEPS_9BIT 0.5
57#define DS18B20_RESOLUTION_R1 6
58#define DS18B20_RESOLUTION_R0 5
void DS18B20_WriteByte(uint8_t byte)
Write one byte to DS18B20.
void DS18B20_ReadScratchpadFromAddr(const uint8_t *addr, uint8_t *buf)
Read SRAM scratchpad from selected slave.
uint8_t DS18B20_Crc(uint8_t *addr, uint8_t len)
8-bit CRC calculation
uint8_t DS18B20_ReadByte(void)
Read one byte from DS18B20.
__BIT DS18B20_ReadBit(void)
Read one bit from DS18B20.
void DS18B20_StartAll(void)
Start conversion on all slaves.
void DS18B20_WriteBit(__BIT b)
Write one bit to DS18B20.
@ DS18B20_Resolution_11bits
@ DS18B20_Resolution_9bits
@ DS18B20_Resolution_10bits
@ DS18B20_Resolution_12bits
void DS18B20_ReadRom(uint8_t *buf)
Read 64-bit ROM: 8-bit family code "0x28", unique 48-bit serial number, 8-bit CRC.
void DS18B20_ReadScratchpad(uint8_t *buf)
Read SRAM scratchpad.
void DS18B20_Init(void)
Initialize DS18B20.
void DS18B20_Select(const uint8_t *addr)
Select a slave on the bus.
uint8_t DS18B20_Search(uint8_t *buff, uint8_t *stack, uint8_t split_point)
Perform one ROM search.
__BIT DS18B20_AllDone(void)
If read bit is low, then device is not finished yet with calculation temperature.
__BIT DS18B20_Reset(void)
Reset DS18B20.
void DS18B20_Start(const uint8_t *addr)
Start conversion on selected slave.