#ifndef __1W_EC20 #define __1W_EC20 #include "one_wire.h" #include #define DS28EC20_FAMILY_CODE 0x43 #define CMD_WRITE_SCRATCHPAD 0x0F #define CMD_READ_SCRATCHPAD 0xAA #define CMD_COPY_SCRATCHPAD 0x55 #define CMD_READ_MEMORY 0xF0 #define CMD_EXTENDED_READ_MEMORY 0xA5 #define REG_MEMORY_BLOCK_LOCK 0xA1E #define REG_REGISTER_PAGE_LOCK 0xA1F #define WRITE_PROTECTION 0x55 #define EPROM_MODE 0xAA #define PAGE_SIZE 0x20 #define NUM_OF_PAGES 0x50 #define MEM_SIZE (PAGE_SIZE * NUM_OF_PAGES) typedef struct _onewire_ec20_{ uint8_t buffer_rx[32]; uint8_t buffer_tx[32]; uint8_t real_size; uint8_t ROM[8]; }OneWire_EC20_typeDef; uint8_t DS28EC20_init(void* GPIOx, uint16_t GPIO_Pin); void DS28EC20_readMem(uint16_t,uint8_t); uint8_t DS28EC20_writeMem(uint16_t ,uint8_t); uint32_t DS28EC20_readData4B(uint16_t); uint16_t DS28EC20_readData2B(uint16_t address); uint8_t DS28EC20_readData1B(uint16_t address); uint8_t DS28EC20_writeData(uint8_t*, uint16_t, uint8_t); uint8_t DS28EC20_getId(uint8_t*); uint32_t DS28EC20_getCapacity(void); #endif