鸿蒙WIFI-IoT开发板RTC时钟模块功能实现

1. RTC时钟模块硬件准备   

RTC时钟模块

 RTC时钟模块在WiFiIoT套件上的连接

2. RTC时钟模块硬件介绍

RTC时钟模块使用I2C接口为I2C0,对应管脚连接说明:


SDA -----底板的TX ----- GPIO_13
SCL -----底板的RX ------ GPIO_14

3. RTC时钟模块功能软件实现

RTC时钟模块通过I2C协议进行通信。首先初始化I2C配置,需要调用两个函数,分别是:
hi_u32 hi_i2c_init(hi_i2c_idx id, hi_u32 baudrate);
hi_u32 hi_i2c_set_baudrate(hi_i2c_idx id, hi_u32 baudrate);
以下对这两个函数进行详细介绍:
l hi_u32 hi_i2c_init(hi_i2c_idx id, hi_u32 baudrate);
此函数为I2C初始化函数。

hi_i2c_idx id:I2C硬件设备选择,取值范围为hi_i2c_idx枚举类型,如下:

typedef enum {

    HI_I2C_IDX_0,

    HI_I2C_IDX_1,

} hi_i2c_idx;

hi_u32 baudrate:I2C通信波特率。
例如:RTC时钟模块与板子通过I2C0连接,通讯波特率为400K,故使用hi_i2c_init(HI_I2C_IDX_0, 400000);对其进行初始化。


l hi_u32 hi_i2c_set_baudrate(hi_i2c_idx id, hi_u32 baudrate);
此函数功能为配置相对应的I2C通讯波特率。


hi_i2c_idx id为I2C硬件设备选择,hi_u32 baudrate所需配置波特率。


例如:对RTC时钟模块配置I2C0为400K波特率,其函数实现为hi_i2c_set_baudrate (HI_I2C_IDX_0, 400000);

4.写数据。通过I2C传递设备地址和数据给从机。函数实现如下:

此处电源监控传感器的调用如下:

5.读数据。通过I2C的读函数读回时间数据。


l hi_u32 hi_i2c_read(hi_i2c_idx id, hi_u16 device_addr, const hi_i2c_data *i2c_data);

hi_i2c_idx id:I2C硬件设备选择,取值范围为hi_i2c_idx枚举类型,如下:

typedef enum {

    HI_I2C_IDX_0,

    HI_I2C_IDX_1,

} hi_i2c_idx;

hi_u16 device_addr:从机设备地址

const hi_i2c_data *i2c_data:I2C发送/接收数据描述符,发送的数据类型如下:

typedef struct {

    hi_u8*  send_buf;        /*CNcomment:数据发送指针CNend */

    hi_u32  send_len;        /* CNcomment:发送数据长度(单位:byte)CNend */

    hi_u8*  receive_buf;     /**< Data RX pointer. CNcomment:数据接收指针CNend */

    hi_u32  receive_len;     /*CNcomment:接收数据长度(单位:byte)CNend */

} hi_i2c_data;

例子中,RTC时钟模块读数据函数实现如下:

6.最后将读取到的年、月、日、时、分、秒、星期显示在oled屏上。以秒举例,编码如下:

END!

扫码关注我们

HarmonyOS社区

电子发烧友与华为官方共建

点击阅读原文,下载更多鸿蒙资料吧!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值