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
  1. 读写操作修改
// 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();
  1. 设置时间
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);
  1. 读取时间
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的功能。这一过程不仅加深了我们对嵌入式系统开发的理解,也提升了我们在实际项目中处理外设驱动的能力。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/707699.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

电容式传感器的基本原理

电容式传感器由电容量可变的电容器和测量电路组成,其变量间的转换原理如图5—2所示。 图5—2电容式传感器变量间的转换关系 由电学可知,两个平行金属极板组成的电容器,如果不考虑其边缘效应,其电容为 Se——两个极板介质的介电常…

chrome浏览器设置--disable-web-security解决跨域

在开发人员于后台进行接口测试的时候,老是遇到跨域问题,这时前端总是会让后台添加跨域请求头来允许跨域请求,今天介绍一个简单的方法跨过这一步操作的设置。 –disable-web-security参数,禁用同源策略,利于开发人员本…

ARMxy赋能温室环境自动化调控

智慧农业正以其独特的魅力描绘着未来的轮廓。作为这一变革的中坚力量,ARMxy工业计算机凭借其高性能、低功耗及高度灵活性,正逐步成为智能温室控制、精准灌溉及作物生长监测领域的核心引擎。 智能温室的智慧大脑 位于某地的现代农业园区,一座…

Springboot 开发之任务调度框架(一)Quartz 简介

一、引言 常见的定时任务框架有 Quartz、elastic-job、xxl-job等等,本文主要介绍 Spirng Boot 集成 Quartz 定时任务框架。 二、Quartz 简介 Quartz 是一个功能强大且灵活的开源作业调度库,广泛用于 Java 应用中。它允许开发者创建复杂的调度任务&…

Apache Doris 基础 -- 部分数据类型及操作

您还可以使用SHOW DATA TYPES;查看Doris支持的所有数据类型。 部分类型如下: Type nameNumber of bytesDescriptionSTRING/可变长度字符串,默认支持1048576字节(1Mb),最大精度限制为2147483643字节(2gb)。大小可以通过BE配置string_type_le…

硕思LOGO设计师软件最新版下载及详细安装教程

硕思Logo设计师是一款操作灵活简单,且功能强大的logo制作软件。它可以通过简单的点击就可以为网站、博客、论坛和邮件创建专业的logo、条幅、按钮、标题、图标和签名等。 该软件提供了很多精心设计的模板和丰富的资源,为更好的创建logo艺术作品&#xff…

CST Studio Suite 基础操作实验(稳恒电流的电场与磁场)

前言 前置的基础操作可见笔者之前一篇文章,在此不再赘述 因为整个实验要求都要用英文,有些不便更改部分的英文就没翻译了,见谅 CST Studio Suite 基础操作实验(静电场)-CSDN博客 核心步骤 无限长设置 假如是z轴上的…

算法体系-22 第二十二节:暴力递归到动态规划(四)

一 最小距离累加和 1.1 描述 给定一个二维数组matrix,一个人必须从左上角出发,最后到达右下角 沿途只可以向下或者向右走,沿途的数字都累加就是距离累加和 返回最小距离累加和 1.2 分析

【车载AI音视频电脑】200万像素迷你一体机

产品主要特点: -设备安装方便简洁,可通过3M胶直接将设备粘 贴到车前挡风玻璃上 -支持IE预览,手机,PAD实时预览, 支持电脑客 户端实时预览功能 -内置2路模拟高清, 每路均可达到200万像素。另 外可扩充2路1080P模拟…

什么是堡垒机?和跳板机是一个概念吗?

堡垒机,又称运维审计系统、跳板机,是一种位于内部网络与外部网络之间的安全防护设备,它充当了一个“中间人”的角色,所有对内部网络资源的远程访问都必须通过堡垒机进行。这一设计的核心目的,在于严格控制和记录所有进…

体验版小程序访问不到后端接口请求失败问题解决方案

文章目录 解决方案一:配置合法域名解决方案二:开发调试模式第一步:进入开发调试模式第二步:启用开发调试 注意事项结语 🎉欢迎来到Java面试技巧专栏~探索Java中的静态变量与实例变量 ☆* o(≧▽≦)o *☆嗨~我是IT陈寒&…

IT运维三大王牌怎么选?一文看懂向日葵IT精英、行业青春、行业版

信息时代,随着智能化设备的不断普及,IT设备的数量是在不断增长的,企业的IT运维压力也逐渐增大,无论是大型企业、中小腰部企业、甚至初创企业和工作室,一款相对专业的远程IT运维方案也慢慢变成了刚需。 虽说大家都有着…

深度解析 | “透明部落(APT36)”持续攻击印度政府、国防部门

概要 近日,黑莓发现了总部位于巴基斯坦的高级持续威胁组织 Transparent Tribe (透明部落,APT36),其目标是印度的政府、国防和航空航天部门。该活动从 2023 年底持续到 2024 年 4 月,并预计将持续下去。 在 "透明部落 "…

Python 显示笔记本电脑的电池状态和百分比

方法一: import psutil import psutil battery psutil.sensors_battery() if battery is None:print("No battery is found.")exit() print (battery) percentagebattery.percent print(f"Battery Percentage: {percentage}%")Battery的信息…

基于BP神经网络对鸢尾花数据集分类

目录 1. 作者介绍2. 关于理论方面的知识介绍2.1 BP神经网络原理2.2 BP神经网络结构 3. 关于实验过程的介绍,完整实验代码,测试结果3.1 鸢尾花数据集介绍3.2 代码演示3.3 结果演示 4. 问题与分析 1. 作者介绍 侯硕,男,西安工程大学…

【投稿优惠|权威主办】2024年能源、智能制造与材料科学国际学术会议(ICEIMMS 2024)

【投稿优惠|权威主办】2024年能源、智能制造与材料科学国际学术会议(ICEIMMS 2024) 2024 International Academic Conference on Energy, Intelligent Manufacturing, and Materials Science(ICEIMMS 2024) ▶会议简介 2024年能源…

充电宝哪个牌子好?揭秘无线磁吸充电宝哪个牌子性价比高!

大家是否曾经遇到过外出时手机电量告急,急需充电却苦于没有带充电器的情况?这时,满大街的共享充电宝就成了我们的救星。然而,在使用共享充电宝的过程中,我们也不得不面对一些现实问题。共享充电宝确实方便快捷&#xf…

LLM 大模型学习:数据预处理、模板设计以

在模型训练过程中,数据及数据处理是最为重要的工作之一。在当前模型训练流程趋于成熟的情况下,数据集的好坏,是决定了该次训练能否成功的最关键因素。 在上一篇中,我们提到了模型训练的基本原理是将文字转换索引再转换为对应的向…

element table 点击某一行中按钮加载

在Element UI中,实现表格(element-table)中的这种功能通常涉及到数据处理和状态管理。当你点击某一行的按钮时,其他行的按钮需要动态地切换为加载状态,这可以通过以下步骤实现: 1.表格组件:使用…

虹科免拆诊断案例 | 2014 款雪佛兰迈锐宝车驾驶人侧车窗开关无法控制其他车窗升降

故障现象  一辆2014款雪佛兰迈锐宝车,搭载LTD发动机,累计行驶里程约为12万km。车主反映,操作驾驶人侧车窗开关无法控制其他车窗升降,而操作其他车门上的车窗开关可以正常控制相应的车窗升降。 故障诊断  接车后试车&#xff0…