#ifndef _USR_DRV_RTC_I2C_H_ #define _USR_DRV_RTC_I2C_H_ #include #include #define USR_DRV_RTC_I2C_ADDRESS 0x68 #define USR_DRV_RTC_I2C_SECOND 0x00 #define USR_DRV_RTC_I2C_MINUTE 0x01 #define USR_DRV_RTC_I2C_HOUR 0x02 #define USR_DRV_RTC_I2C_DAY 0x03 #define USR_DRV_RTC_I2C_DATE 0x04 #define USR_DRV_RTC_I2C_MONTH 0x05 #define USR_DRV_RTC_I2C_YEAR 0x06 #define USR_DRV_RTC_I2C_CAL_CFG1 0x07 #define USR_DRV_RTC_I2C_TCH2 0x08 #define USR_DRV_RTC_I2C_CFG2 0x09 #define USR_DRV_RTC_I2C_SFKEY1 0x20 #define USR_DRV_RTC_I2C_SFKEY2 0x21 #define USR_DRV_RTC_I2C_SFR 0x22 typedef __packed struct { uint8_t ms; //毫秒 uint8_t second; //秒 uint8_t minute; //分钟 uint8_t hour; //小时 uint8_t date; //日 uint8_t month; //月 uint8_t year; //年 uint8_t dayOfWeek; // 星期几 } USR_DRV_RTC_I2C_TIME; int8_t usr_drv_rtc_i2c_init(uint8_t i2c_id, int32_t i2c_speed); int8_t usr_drv_rtc_i2c_get_time(USR_DRV_RTC_I2C_TIME *rtc_time); int8_t usr_drv_rtc_i2c_set_time(USR_DRV_RTC_I2C_TIME *rtc_time); int8_t usr_drv_rtc_i2c_read_second(uint8_t *second); int8_t usr_drv_rtc_i2c_read_minute(uint8_t *minute); int8_t usr_drv_rtc_i2c_read_hour(uint8_t *hour); int8_t usr_drv_rtc_i2c_read_date(uint8_t *date); int8_t usr_drv_rtc_i2c_read_month(uint8_t *month); int8_t usr_drv_rtc_i2c_read_year(uint8_t *year); int8_t usr_drv_rtc_i2c_set_second(uint8_t second); int8_t usr_drv_rtc_i2c_set_minute(uint8_t minute); int8_t usr_drv_rtc_i2c_set_hour(uint8_t hour); int8_t usr_drv_rtc_i2c_set_date(uint8_t date); int8_t usr_drv_rtc_i2c_set_mon(uint8_t mon); int8_t usr_drv_rtc_i2c_set_year(uint8_t year); int8_t usr_drv_rtc_i2c_trick_charge_mA(void); int8_t usr_drv_rtc_i2c_trick_charge_ua(void); int8_t usr_drv_rtc_i2c_enable_1hz_output(void); #endif