关于武汉芯景科技有限公司的实时时钟芯片XJ8339开发指南(兼容DS1339)

本文主要是介绍关于武汉芯景科技有限公司的实时时钟芯片XJ8339开发指南(兼容DS1339),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一、芯片引脚介绍

1.芯片引脚

2.引脚描述

二、系统结构图

三、功能描述

1.时钟功能

2.闹钟功能(两个闹钟)

3.振荡器停止控制

4.频率输出(1HZ、1.096KHZ、8.192KHZ、32.768KHZ)

5.振荡器停止检测

6.闹钟中断标志

7.涓流充电

8.备用电源供电

四、程序代码

XJ8339.C

/** XJ8339.c**  Created on: 2024年8月28日*      Author: Administrator*/#include "softiic.h"
#include "XJ8339.h"
#include "usart.h"
#include <stdio.h>//XJXJ8339的IIC读
uint8_t XJ8339ReadOneByte(uint8_t ReadAddr)
{uint8_t temp=0;bsp_analog_i2c_start();bsp_analog_i2c_send_byte(0XD0);bsp_analog_i2c_wait_ack();bsp_analog_i2c_send_byte(ReadAddr);bsp_analog_i2c_wait_ack();bsp_analog_i2c_start();bsp_analog_i2c_send_byte(0XD1);bsp_analog_i2c_wait_ack();temp= bsp_analog_i2c_read_byte();bsp_analog_i2c_nack();bsp_analog_i2c_stop();return temp;
}//XJ8339的IIC写
void XJ8339WriteOneByte(uint8_t WriteAddr,uint8_t DataToWrite)
{bsp_analog_i2c_start();bsp_analog_i2c_send_byte(0xD0);bsp_analog_i2c_wait_ack();bsp_analog_i2c_send_byte(WriteAddr);bsp_analog_i2c_wait_ack();bsp_analog_i2c_send_byte(DataToWrite);bsp_analog_i2c_wait_ack();bsp_analog_i2c_stop();
}//打印出XJ8339的时间
void printf_XJ8339TIMER(void)
{printf("北京时间 20%x", XJ8339ReadOneByte(XJ8339_Year_REG));printf("/%x", XJ8339ReadOneByte(XJ8339_Month_REG));printf("/%x", XJ8339ReadOneByte(XJ8339_Date_REG));printf("   %x  ", XJ8339ReadOneByte(XJ8339_Day_REG));printf(" %x", XJ8339ReadOneByte(XJ8339_HOURS_REG));printf(" :%x", XJ8339ReadOneByte(XJ8339_MINUTES_REG));printf(" :%x\r\n", XJ8339ReadOneByte(XJ8339_SECONDS_REG));
}//XJ8339的IIC连续写
void XJ8339sequence_write(uint8_t WriteAddr,uint8_t* data,int length)
{bsp_analog_i2c_start();bsp_analog_i2c_send_byte(0XD0);bsp_analog_i2c_wait_ack();bsp_analog_i2c_send_byte(WriteAddr);bsp_analog_i2c_wait_ack();for (int i = 0; i < length; i++){bsp_analog_i2c_send_byte(*(data+i));bsp_analog_i2c_wait_ack();}bsp_analog_i2c_nack();bsp_analog_i2c_stop();
}//时间初始化结构体
XJ8339_Clock_Typedef XJ8339_Clock_init={.SEC=0x50,.MIN=0x59,.HOUR=0x18,.WEEK=0x01,.DAY=0x01,.MONTH=0x01,.YEAR=0x24
};/***
功能:设定XJ8339的时间
输入:XJ8339_Clock_init的地址
返回:无
*****/
void SET_XJ8339TIMER(XJ8339_Clock_Typedef* clock)
{XJ8339sequence_write(XJ8339_SECONDS_REG,(uint8_t*)clock ,7);
}

XJ8339.H

/** XJ8339.h**  Created on: 2024年8月28日*      Author: Administrator*/#ifndef INC_XJ8339_H_
#define INC_XJ8339_H_// 时间寄存器地址
#define XJ8339_SECONDS_REG 0x00
#define XJ8339_MINUTES_REG 0x01
#define XJ8339_HOURS_REG 0x02
#define XJ8339_Day_REG 0x03
#define XJ8339_Date_REG 0x04
#define XJ8339_Month_REG 0x05
#define XJ8339_Year_REG 0x06
#define XJ8339_Control_REG 0x07//设置时间结构体
typedef struct{uint8_t SEC;uint8_t MIN;uint8_t HOUR;uint8_t WEEK;uint8_t DAY;uint8_t MONTH;uint8_t YEAR;
}XJ8339_Clock_Typedef;extern XJ8339_Clock_Typedef XJ8339_Clock_init;uint8_t XJ8339ReadOneByte(uint8_t ReadAddr);
void XJ8339WriteOneByte(uint8_t WriteAddr,uint8_t DataToWrite);
void XJ8339sequence_write(uint8_t WriteAddr,uint8_t* data,int length);
void printf_XJ8339TIMER(void);
void SET_XJ8339TIMER(XJ8339_Clock_Typedef* clock);#endif /* INC_XJ8339_H_ */

这篇关于关于武汉芯景科技有限公司的实时时钟芯片XJ8339开发指南(兼容DS1339)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1118680

相关文章

JDK21对虚拟线程的几种用法实践指南

《JDK21对虚拟线程的几种用法实践指南》虚拟线程是Java中的一种轻量级线程,由JVM管理,特别适合于I/O密集型任务,:本文主要介绍JDK21对虚拟线程的几种用法,文中通过代码介绍的非常详细,... 目录一、参考官方文档二、什么是虚拟线程三、几种用法1、Thread.ofVirtual().start(

从基础到高级详解Go语言中错误处理的实践指南

《从基础到高级详解Go语言中错误处理的实践指南》Go语言采用了一种独特而明确的错误处理哲学,与其他主流编程语言形成鲜明对比,本文将为大家详细介绍Go语言中错误处理详细方法,希望对大家有所帮助... 目录1 Go 错误处理哲学与核心机制1.1 错误接口设计1.2 错误与异常的区别2 错误创建与检查2.1 基础

一文详解Python如何开发游戏

《一文详解Python如何开发游戏》Python是一种非常流行的编程语言,也可以用来开发游戏模组,:本文主要介绍Python如何开发游戏的相关资料,文中通过代码介绍的非常详细,需要的朋友可以参考下... 目录一、python简介二、Python 开发 2D 游戏的优劣势优势缺点三、Python 开发 3D

基于Python开发Windows自动更新控制工具

《基于Python开发Windows自动更新控制工具》在当今数字化时代,操作系统更新已成为计算机维护的重要组成部分,本文介绍一款基于Python和PyQt5的Windows自动更新控制工具,有需要的可... 目录设计原理与技术实现系统架构概述数学建模工具界面完整代码实现技术深度分析多层级控制理论服务层控制注

使用Java填充Word模板的操作指南

《使用Java填充Word模板的操作指南》本文介绍了Java填充Word模板的实现方法,包括文本、列表和复选框的填充,首先通过Word域功能设置模板变量,然后使用poi-tl、aspose-words... 目录前言一、设置word模板普通字段列表字段复选框二、代码1. 引入POM2. 模板放入项目3.代码

macOS彻底卸载Python的超完整指南(推荐!)

《macOS彻底卸载Python的超完整指南(推荐!)》随着python解释器的不断更新升级和项目开发需要,有时候会需要升级或者降级系统中的python的版本,系统中留存的Pytho版本如果没有卸载干... 目录MACOS 彻底卸载 python 的完整指南重要警告卸载前检查卸载方法(按安装方式)1. 卸载

Java中的分布式系统开发基于 Zookeeper 与 Dubbo 的应用案例解析

《Java中的分布式系统开发基于Zookeeper与Dubbo的应用案例解析》本文将通过实际案例,带你走进基于Zookeeper与Dubbo的分布式系统开发,本文通过实例代码给大家介绍的非常详... 目录Java 中的分布式系统开发基于 Zookeeper 与 Dubbo 的应用案例一、分布式系统中的挑战二

C++中处理文本数据char与string的终极对比指南

《C++中处理文本数据char与string的终极对比指南》在C++编程中char和string是两种用于处理字符数据的类型,但它们在使用方式和功能上有显著的不同,:本文主要介绍C++中处理文本数... 目录1. 基本定义与本质2. 内存管理3. 操作与功能4. 性能特点5. 使用场景6. 相互转换核心区别

Python动态处理文件编码的完整指南

《Python动态处理文件编码的完整指南》在Python文件处理的高级应用中,我们经常会遇到需要动态处理文件编码的场景,本文将深入探讨Python中动态处理文件编码的技术,有需要的小伙伴可以了解下... 目录引言一、理解python的文件编码体系1.1 Python的IO层次结构1.2 编码问题的常见场景二

Oracle Scheduler任务故障诊断方法实战指南

《OracleScheduler任务故障诊断方法实战指南》Oracle数据库作为企业级应用中最常用的关系型数据库管理系统之一,偶尔会遇到各种故障和问题,:本文主要介绍OracleSchedul... 目录前言一、故障场景:当定时任务突然“消失”二、基础环境诊断:搭建“全局视角”1. 数据库实例与PDB状态2