43#define EE_PAGE_ADDR_UNIT 256
45#define EE_SIZE AT24C08
46#define I2C_SLAVE_ADDR (0x50)
48#define AT24XX_SR1_ADDR (0x50)
74 gpio_cfg.
Pin = SCL_PIN;
77 gpio_cfg.
Pin = SDA_PIN;
83 SDA_OUT_HIGH(SDA_PIN);
84 SCL_OUT_HIGH(SCL_PIN);
97 SCL_OUT_HIGH(SCL_PIN);
99 SDA_OUT_HIGH(SDA_PIN);
105 uint8_t ucErrTime = 0;
109 SCL_OUT_HIGH(SCL_PIN);
112 while (SDA_INPUT_VAL(SDA_PIN)) {
114 if (ucErrTime > 250) {
119 SCL_OUT_LOW(SCL_PIN);
126 SCL_OUT_LOW(SCL_PIN);
127 SDA_OUT_LOW(SDA_PIN);
129 SCL_OUT_HIGH(SCL_PIN);
131 SCL_OUT_LOW(SCL_PIN);
136 SCL_OUT_LOW(SCL_PIN);
137 SDA_OUT_HIGH(SDA_PIN);
139 SCL_OUT_HIGH(SCL_PIN);
141 SCL_OUT_LOW(SCL_PIN);
147 SCL_OUT_LOW(SCL_PIN);
148 for (t = 0; t < 8; t++) {
149 if ((txd & 0x80) >> 7) {
150 SDA_OUT_HIGH(SDA_PIN);
152 SDA_OUT_LOW(SDA_PIN);
156 SCL_OUT_HIGH(SCL_PIN);
158 SCL_OUT_LOW(SCL_PIN);
165 unsigned char i, receive = 0;
167 for (i = 0; i < 8; i++) {
168 SCL_OUT_LOW(SCL_PIN);
170 SCL_OUT_HIGH(SCL_PIN);
172 if (SDA_INPUT_VAL(SDA_PIN)) {
189 if (EE_SIZE > AT24C16) {
211 if (EE_SIZE > AT24C16) {
GPIO_FUN_SEL_TypeDef FunSel
void xc_gpio_init(GPIO_InitCfg_t *init_cfg)
xc_gpio_init
void i2c_send_byte(uint8_t txd)
uint8_t i2c_read_byte(unsigned char ack)
void at24cxx_read_nbytes(uint16_t addr, uint8_t *buff, uint32_t num)
void at24cxx_write_byte(uint16_t addr, uint8_t data)
uint8_t at24cxx_read_byte(uint16_t addr)
void at24cxx_write_nbytes(uint16_t addr, uint8_t *buff, uint32_t num)
uint8_t i2c_wait_ack(void)
void i2c_software_init(void)
void delay_ms(uint32_t nms)
void delay_us(uint32_t nus)