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

相关推荐
Wallace Zhang3 小时前
STM32F103_Bootloader程序开发11 - 实现 App 安全跳转至 Bootloader
stm32·嵌入式硬件·安全
GodKK老神灭4 小时前
STM32 CCR寄存器
stm32·单片机·嵌入式硬件
杰克逊的日记9 天前
MCU编程
单片机·嵌入式硬件
Python小老六9 天前
单片机测ntc热敏电阻的几种方法(软件)
数据库·单片机·嵌入式硬件
HX科技10 天前
STM32给FPGA的外挂FLASH进行升级
stm32·嵌入式硬件·fpga开发·flash·fpga升级
Suagrhaha10 天前
驱动入门的进一步深入
linux·嵌入式硬件·驱动
国科安芯10 天前
基于ASP4644多通道降压技术在电力监测系统中集成应用与发展前景
嵌入式硬件·硬件架构·硬件工程
Li Zi10 天前
STM32 ADC(DMA)双缓冲采集+串口USART(DMA)直接传输12位原始数据到上位机显示并保存WAV格式音频文件 收藏住绝对实用!!!
经验分享·stm32·单片机·嵌入式硬件
进击的程序汪10 天前
触摸屏(典型 I2C + Input 子系统设备)从设备树解析到触摸事件上报
linux·网络·嵌入式硬件
damo王10 天前
Zephyr 系统深入解析:SoC 支持包结构与中断调度器调优实践
单片机·嵌入式硬件·zephyr