ARM32开发--IIC时钟案例

知不足而奋进 望远山而前行


目录

文章目录

前言

目标

内容

需求

开发流程

移植驱动

修改I2C实现

测试功能

总结


前言

在现代嵌入式系统开发中,移植外设驱动并测试其功能是一项常见的任务。本次学习的目标是掌握移植方法和测试方法,以实现对开发板中的PCF8563实时时钟(RTC)的设置和读取功能。通过以下开发流程,我们将逐步完成移植驱动、修改I2C实现以及测试功能的过程。


目标

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

内容

需求

开发板中的PCF8563的RTC时钟设置和读取。

开发流程

  1. 移植驱动
  2. 修改I2C实现
  3. 测试功能
移植驱动
  1. PCF8563.hPCF8563.c拷贝到Hardwarepcf8563目录中。
  2. Hardware/pcf8563目录添加到include path
  3. keil中,将PCF8563.hPCF8563.c添加到Hardwaregroup中。
修改I2C实现
  1. 修改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

  2. 读写操作修改

    // 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)

测试功能
  1. 初始化

    #include "SoftI2C.h"
    #include "PCF8563.h"

    SoftI2C_init();
    PCF8563_init();

  2. 设置时间

    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);

  3. 读取时间

    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的功能。这一过程不仅加深了我们对嵌入式系统开发的理解,也提升了我们在实际项目中处理外设驱动的能力。

相关推荐
Dr.kangder1 小时前
嵌入式面试总结(十九)——内存泄露
单片机·算法·面试·职场和发展·架构·硬件架构
萌新小白YXY2 小时前
SAE J1587/SAE J1708 协议笔记
笔记·单片机·嵌入式硬件
恒锐丰科技韩生3 小时前
率能 SS6635E|3.0~30V 直流双向 H 桥电机驱动 SOP8 玩具电子锁机器人分享
嵌入式硬件·硬件工程
嘉子的秃头日记3 小时前
机械革命“自动修复”无法修复你的电脑
stm32·单片机·电脑
恒锐丰科技林技术员3 小时前
高集成双通道 H 桥驱动芯片 SS6850H:低压直流电机驱动优选方案
嵌入式硬件·硬件工程
森旺电子3 小时前
电子负载使用介绍
单片机·嵌入式硬件
hsjiasb13 小时前
FreeRTOS学习(二十六)——动态内存管理heap_1到heap_5
stm32·单片机·学习·学习笔记·freertos
周洲083017 小时前
STM32 GPIO 外部中断深度解析:边沿触发 / 电平触发、NVIC 优先级配置、中断嵌套实战
stm32·单片机·嵌入式硬件
LCG元17 小时前
STM32F103 CAN 总线通信实战:标准库双机通信与过滤器配置精讲
stm32·单片机·嵌入式硬件
zlinear数据采集卡18 小时前
D223的PWM电机控制:6路独立脉冲+加减速算法深度解析
arm开发·stm32·嵌入式硬件·算法·fpga开发·架构