20240909-DXSPX-emb/RTCGet(可以跑的版本)/Src/Usr/Driver/usr_drv_rtc_i2c.h
2024-09-11 17:03:46 +08:00

57 lines
1.8 KiB
C

#ifndef _USR_DRV_RTC_I2C_H_
#define _USR_DRV_RTC_I2C_H_
#include <stdbool.h>
#include <stdint.h>
#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