学习目标

  1. 掌握移植方法
  2. 掌握测试方法

    学习内容

    需求

    开发板中的PCF8563的RTC时钟设置和读取。
    214.png215.png

    开发流程

  3. 移植驱动

  4. 修改I2C实现
  5. 测试功能

    移植驱动

  6. PCF8563.hPCF8563.c拷贝到Hardwarepcf8563目录中。

  7. Hardware/pcf8563目录添加到include path
  8. keil中,将PCF8563.hPCF8563.c添加到Hardwaregroup中。

    修改I2C实现

  9. 修改include

    1. #include "config.h"
    2. #include "I2C.h"

    ```c

    include “gd32f4xx.h”

    include “Soft_I2C0.h”

ifndef u8

define u8 uint8_t

endif

ifndef u16

define u16 uint16_t

endif

  1. 2. 读写操作修改
  2. ```c
  3. // I2C写操作
  4. #define I2C_WRITE(a, r, p, n) I2C_WriteNbyte(a, r, p, n)
  5. // I2C读操作
  6. #define I2C_READ(a, r, p, n) I2C_ReadNbyte(a, r, p, n)
  1. // I2C写操作
  2. #define I2C_WRITE(a, r, p, n) SoftI2C_write(a, r, p, n)
  3. // I2C读操作
  4. #define I2C_READ(a, r, p, n) SoftI2C_read(a, r, p, n)

测试功能

  1. 初始化 ```c

    include “SoftI2C.h”

    include “PCF8563.h”

SoftI2C_init(); PCF8563_init();

  1. 2. 设置时间
  2. ```c
  3. Clock_t c;
  4. c.year = 2023;
  5. c.month = 8;
  6. c.day = 14;
  7. c.week = 5;
  8. c.hour = 23;
  9. c.minute = 59;
  10. c.second = 55;
  11. PCF8563_set_clock(c);
  1. 读取时间

    1. PCF8563_get_clock(&c);
    2. printf("%d-%d-%d %d %d:%d:%d\r\n", c.year, c.month, c.day, c.week, c.hour, c.minute, c.second);

    练习题

  2. 实现PCF8563的移植