ARM32开发--IIC时钟案例

news2024/9/21 8:58:37

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


目录

文章目录

前言

目标

内容

需求

开发流程

移植驱动

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

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

热门开源大模型项目推荐

一:开源大模型热门项目推荐 NNI:由微软发布的开源AutoML工具包,支持神经网络超参数调整。最新版本对机器学习生命周期的各个环节做了全面支持,包括特征工程、神经网络架构搜索(NAS)、超参调优和模型压缩。适用于各种机器学习项目&…

三极管的厄利效应(early effect)

詹姆斯M厄利(James M. Early)发现的现象,厄利效应(英语:Early effect),又译厄尔利效应,也称基区宽度调制效应,是指当双极性晶体管(BJT)的集电极-射极电压VCE改…

DETR实现目标检测(二)-利用自己训练的模型进行预测

1、图片预测(CPU) 关于DETR模型训练自己的数据集参考上篇文章: DETR实现目标检测(一)-训练自己的数据集-CSDN博客 训练完成后的模型文件保存位置如下: 准备好要预测的图片: 然后直接调用模型进行预测,并设…

基于springboot实现入校申报审批系统项目【项目源码+论文说明】计算机毕业设计

基于springboot实现入校申报审批系统演示 摘要 传统办法管理信息首先需要花费的时间比较多,其次数据出错率比较高,而且对错误的数据进行更改也比较困难,最后,检索数据费事费力。因此,在计算机上安装入校申报审批系统软…

ChatGPT中文镜像网站分享

ChatGPT 是什么? ChatGPT 是 OpenAI 开发的一款基于生成预训练变换器(GPT)架构的大型语言模型。主要通过机器学习生成文本,能够执行包括问答、文章撰写、翻译等多种文本生成任务。截至 2023 年初,ChatGPT 的月活跃用户…

CV每日论文--2024.6.14

1、ICE-G: Image Conditional Editing of 3D Gaussian Splats 中文标题:ICE-G:3D 高斯斑点的图像条件编辑 简介:近年来,出现了许多技术来创建高质量的3D资产和场景。然而,当涉及到这些3D对象的编辑时,现有方法要么速度慢、要么牺牲质量,要么…

基于Python+OpenCV高速公路行驶车辆的速度检测系统

简介: 基于Python和OpenCV的高速公路行驶车辆的速度检测系统旨在实时监测高速公路上的车辆,并测量它们的速度。该系统可以用于交通监控、道路安全管理等领域,为相关部门提供重要的数据支持。 系统实现: 视频流输入:系…

Java项目中使用OpenCV检测人脸的应用

Java项目中使用OpenCV检测人脸的应用 一、准备工作 将下载好的opencv的jar包放在项目的根目录下&#xff0c;可以新建一个lib的文件夹&#xff0c;将其放在此处&#xff1b; 在pom文件中引入&#xff1a; <profiles><!-- 生产环境 --><profile><id>…

用智能插件(Fitten Code: Faster and Better AI Assistant)再次修改vue3 <script setup>留言板

<template><div><button class"openForm" click"openForm" v-if"!formVisible">编辑</button><button click"closeForm" v-if"formVisible">取消编辑</button><hr /><formv-i…

Java求职季 必备知识脑图 收藏起来 !!!

Java初中级知识脑图 面试超实用 1.Git 下载链接 导图下载地址 &#xff1a; https://mm.edrawsoft.cn/mobile-share/index.html?uuid31d00742157057-src&share_type1 2.JUC 下载链接 https://mm.edrawsoft.cn/mobile-share/index.html?uuid6c0be457444921-src&s…

自动控制:滑模控制(Sliding Mode Control, SMC)

自动控制&#xff1a;滑模控制(Sliding Mode Control, SMC) 滑模控制&#xff08;Sliding Mode Control, SMC&#xff09;是一种在处理非线性系统时非常有效的控制技术。它通过驱动系统状态达到并保持在特定的滑模面附近&#xff0c;来实现控制目标。本文将介绍滑模控制的基本…

MES系统助力制造业数字化转型

一、MES系统的定义和功能 MES&#xff08;Manufacturing Execution System&#xff09;即制造执行系统&#xff0c;是一种可层级化管理生产活动的软件系统。它可以实现对生产过程全面的监控、调度、控制和优化&#xff0c;提高生产的效率、质量和安全性。MES系统具有以下几个主…

工作手机安全管理平台建设方案

第一章 项目背景 移动互联网的时代&#xff0c;各个行业在在推进移动办公和掌上办公&#xff0c;通过智能手机、平板电脑等进行线上办公&#xff0c;这样能提高了企业人员的办公效率&#xff0c;从而为客户提供更及时的服务。 在移动办公提高了工作人员办公效率的同时&#xf…

这三款使用的视频、图片设计工具,提供工作效率

Videograp Videograp是一款专注于视频生成的工具&#xff0c;特别适合需要快速剪辑和编辑视频的用户。Videograp具备以下特点&#xff1a; 影音比例转换&#xff1a;Videograp支持调整视频的分辨率和比例&#xff0c;使其更适合不同的播放环境和设备。 AI快剪&#xff1a;该工…

牛客链表刷题(一)

目录 题目一&#xff1a;反转链表 代码&#xff1a; 题目二&#xff1a;链表内指定区间反转 代码&#xff1a; 题目一&#xff1a;反转链表 代码&#xff1a; import java.util.*;/** public class ListNode {* int val;* ListNode next null;* public ListNode(int …

Java多线程编程与并发处理

引言 在现代编程中&#xff0c;多线程和并发处理是提高程序运行效率和资源利用率的重要方法。Java提供了丰富的多线程编程支持&#xff0c;包括线程的创建与生命周期管理、线程同步与锁机制、并发库和高级并发工具等。本文将详细介绍这些内容&#xff0c;并通过表格进行总结和…

深度学习常见概念解释(三)——激活函数定义,作用与种类(附公式,求导,图像和代码)

激活函数 前言作用激活函数种类1. ReLU (Rectified Linear Unit)2. Leaky ReLU3. ELU (Exponential Linear Unit)4. Sigmoid5. Tanh6. Swish 结论 前言 在深度学习中&#xff0c;激活函数是神经网络中的一个关键组件&#xff0c;起着引入非线性因素的作用&#xff0c;从而增加…

HTML+CSS 动态卡片

效果演示 实现了一个带有动态背景和图片放大效果的卡片展示。卡片的背景是由两种颜色交替组成的斜线条纹&#xff0c;同时背景会以一定速度循环滚动。当鼠标悬停在卡片上时&#xff0c;卡片的图片会放大&#xff0c;并且卡片的背景会变为彩色。 Code HTML <!DOCTYPE html&…

Windows defender bypass | 免杀

官方文档 在制作免杀的过程中,翻找 Windows 官方对 Windows Defender 的介绍,发现有这样一个目录:Configure Microsoft Defender Antivirus exclusions on Windows Server(在 Windows server 中配置defender排除项)。 https://docs.microsoft.com/en-us/microsoft-365/se…

【复旦邱锡鹏教授《神经网络与深度学习公开课》笔记】线性分类模型损失函数对比

本节均以二分类问题为例进行展开&#xff0c;统一定义类别标签 y ∈ { 1 , − 1 } y\in\{1,-1\} y∈{1,−1}&#xff0c;则分类正确时 y f ( x ; w ) > 0 yf(x;w)>0 yf(x;w)>0&#xff0c;且值越大越正确&#xff1b;错误时 y f ( x ; w ) < 0 yf(x;w)<0 yf(x;…