目录
文章目录
前言
目标
内容
需求
开发流程
移植驱动
修改I2C实现
测试功能
总结
前言
在现代嵌入式系统开发中,移植外设驱动并测试其功能是一项常见的任务。本次学习的目标是掌握移植方法和测试方法,以实现对开发板中的PCF8563实时时钟(RTC)的设置和读取功能。通过以下开发流程,我们将逐步完成移植驱动、修改I2C实现以及测试功能的过程。
目标
- 掌握移植方法
- 掌握测试方法
内容
需求
开发板中的PCF8563的RTC时钟设置和读取。
开发流程
- 移植驱动
- 修改I2C实现
- 测试功能
移植驱动
- 将
PCF8563.h
和PCF8563.c
拷贝到Hardware
的pcf8563
目录中。 - 将
Hardware/pcf8563
目录添加到include path
- 在
keil
中,将PCF8563.h
和PCF8563.c
添加到Hardware
group中。
修改I2C实现
- 修改include
#include "config.h"
#include "I2C.h"
#include "gd32f4xx.h"
#include "I2C_soft.h"
#ifndef u8
#define u8 uint8_t
#endif
#ifndef u16
#define u16 uint16_t
#endif
- 读写操作修改
// I2C写操作
#define I2C_WRITE(a, r, p, n) I2C_WriteNbyte(a, r, p, n)
// I2C读操作
#define I2C_READ(a, r, p, n) I2C_ReadNbyte(a, r, p, n)
// I2C写操作
#define I2C_WRITE(a, r, p, n) I2C_soft_write(a, r, p, n)
// I2C读操作
#define I2C_READ(a, r, p, n) I2C_soft_read(a, r, p, n)
测试功能
- 初始化
#include "SoftI2C.h"
#include "PCF8563.h"
SoftI2C_init();
PCF8563_init();
- 设置时间
Clock_t c;
c.year = 2023;
c.month = 8;
c.day = 14;
c.week = 5;
c.hour = 23;
c.minute = 59;
c.second = 55;
PCF8563_set_clock(c);
- 读取时间
PCF8563_get_clock(&c);
printf("%d-%d-%d %d %d:%d:%d\r\n", c.year, c.month, c.day, c.week, c.hour, c.minute, c.second);
总结
通过本次学习,我们成功地掌握了移植外设驱动和测试功能的方法。首先,我们将PCF8563驱动文件拷贝到适当的目录,并进行相关的配置和添加。接着,我们修改了I2C实现,以适配开发板的需求。最后,我们通过初始化、设置时间和读取时间等步骤,成功测试了PCF8563的功能。这一过程不仅加深了我们对嵌入式系统开发的理解,也提升了我们在实际项目中处理外设驱动的能力。