RX8025_driver
先上gitee地址
使用记得点小心心
介绍
RX8025 RTC 时钟芯片驱动
平台相关代码只有两行
使用说明
- 实现static int rx8025_i2c_mem_write(uint8_t reg_addr, uint8_t *data, uint8_t length)和static int rx8025_i2c_mem_read(uint8_t reg_addr, uint8_t *data, uint8_t length)函数。
这里使用软件I2C。
/**
* @description: rx8025 IIC通讯接口,写操作
* @param {uint8_t} reg_addr 目标寄存器地址
* @param {uint8_t} *data 数据存储地址
* @param {uint8_t} length 读取数据长度
* @return {int}
*/
static int rx8025_i2c_mem_write(uint8_t reg_addr, uint8_t *data, uint8_t length)
{
return sw_i2c_mem_write(&i2c_interface, RX8025_IIC_ADDR, reg_addr, data, length);
}
/**
* @description: rx8025 IIC通讯接口,读操作
* @param {uint8_t} reg_addr 目标寄存器地址
* @param {uint8_t} *data 数据存储地址
* @param {uint8_t} length 读取数据长度
* @return {int}
*/
static int rx8025_i2c_mem_read(uint8_t reg_addr, uint8_t *data, uint8_t length)
{
return sw_i2c_mem_read(&i2c_interface, RX8025_IIC_ADDR, reg_addr, data, length);
}
- 使用int rx8025_set_time(struct tm *time_struct);函数设置时间。
#inclulde <time.h>
struct tm test_time = {
.tm_sec = 55,
.tm_min = 59,
.tm_hour = 23,
.tm_mday = 31,
.tm_mon = 12 - 1,
.tm_wday = 0,
.tm_year = 2099 - 1900
};
at_rtc_set_time(&test_time);
- 使用int rx8025_get_time(struct tm *time_struct);获取时间。
struct tm test_read_time = {0};
at_rtc_get_time(&test_read_time);
6.打印时间
time_t time_sec;
time_sec = mktime(&test_read_time);
printf("%s\r\n", ctime(&time_sec));
//或者
char buff[50] = {0};
strftime(buff, 80, "%Y-%m-%d %H:%M:%S", &test_read_time);
printf("%s\r\n", buff);
7.最终效果