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

news2025/2/22 7:48:17

一、芯片引脚介绍

1.芯片引脚

2.引脚描述

二、系统结构图

三、功能描述

1.时钟功能

2.频率输出 / 普通IO口

        FT/OUT引脚输出512HZ的方波或者高低电平

3.备用电源

4.涓流充电

5.振荡停止检测

四、程序代码

XJ8340.C

/*
 * XJ8340.c
 *
 *  Created on: 2024年8月29日
 *      Author: Administrator
 */



#include "softiic.h"
#include "XJ8340.h"
#include "usart.h"
#include <stdio.h>


//XJ8340的IIC读
uint8_t XJ8340ReadOneByte(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;
}



//XJ8340的IIC写
void XJ8340WriteOneByte(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();
}


//打印出XJ8340的时间
void printf_XJ8340TIMER(void)
{
	printf("北京时间 20%x", XJ8340ReadOneByte(XJ8340_Year_REG));
	printf("/%x", XJ8340ReadOneByte(XJ8340_Month_REG));
	printf("/%x", XJ8340ReadOneByte(XJ8340_Date_REG));
	printf("   %x  ", XJ8340ReadOneByte(XJ8340_Day_REG));
	printf(" %x", XJ8340ReadOneByte(XJ8340_HOURS_REG));
	printf(" :%x", XJ8340ReadOneByte(XJ8340_MINUTES_REG));
	printf(" :%x\r\n", XJ8340ReadOneByte(XJ8340_SECONDS_REG));
}


//XJ8340的IIC连续写
void XJ8340sequence_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();
}



//时间初始化结构体
XJ8340_Clock_Typedef XJ8340_Clock_init={
  .SEC=0x50,
  .MIN=0x59,
  .HOUR=0x18,
  .WEEK=0x01,
  .DAY=0x01,
  .MONTH=0x01,
  .YEAR=0x24
};
/***
功能:设定XJ8340的时间
输入:XJ8340_Clock_init的地址
返回:无
*****/
void SET_XJ8340TIMER(XJ8340_Clock_Typedef* clock)
{
	XJ8340sequence_write(XJ8340_SECONDS_REG,(uint8_t*)clock ,7);
}



void XJ8340_Output_512Hz (uint8_t  FT)
{
	uint8_t XJ8340_Control_data;
	XJ8340_Control_data=XJ8340ReadOneByte(XJ8340_Control_REG);

	if(FT==1)
	{
	  XJ8340WriteOneByte(XJ8340_Control_REG,XJ8340_OUTPUT_512HZ|XJ8340_Control_data);
	}
	else
	{
	  XJ8340WriteOneByte(XJ8340_Control_REG,XJ8340_Control_data & ~(1<<6));
	}

}

XJ8340.H

/*
 * XJ8340.h
 *
 *  Created on: 2024年8月29日
 *      Author: Administrator
 */

#ifndef INC_XJ8340_H_
#define INC_XJ8340_H_

// 时间寄存器地址
#define XJ8340_SECONDS_REG 0x00
#define XJ8340_MINUTES_REG 0x01
#define XJ8340_HOURS_REG 0x02
#define XJ8340_Day_REG 0x03
#define XJ8340_Date_REG 0x04
#define XJ8340_Month_REG 0x05
#define XJ8340_Year_REG 0x06
#define XJ8340_Control_REG 0x07

#define XJ8340_OUTPUT_512HZ 0x40
#define clear 0x00


//设置时间结构体
typedef struct{
  uint8_t SEC;
  uint8_t MIN;
  uint8_t HOUR;
  uint8_t WEEK;
  uint8_t DAY;
  uint8_t MONTH;
  uint8_t YEAR;
}XJ8340_Clock_Typedef;

extern XJ8340_Clock_Typedef XJ8340_Clock_init;

uint8_t XJ8340ReadOneByte(uint8_t ReadAddr);
void XJ8340WriteOneByte(uint8_t WriteAddr,uint8_t DataToWrite);
void XJ8340sequence_write(uint8_t WriteAddr,uint8_t* data,int length);
void printf_XJ8340TIMER(void);
void SET_XJ8340TIMER(XJ8340_Clock_Typedef* clock);
void XJ8340_Output_512Hz (uint8_t  FT);


#endif /* INC_XJ8340_H_ */

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

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

相关文章

萤石开放平台 播放报错4012,URL过期或无效

当你在尝试打开直播地址时&#xff0c;如果遇到了报错提示“4012&#xff0c;URL过期或无效&#xff0c;请检查URL的有效性”。 这通常表示直播地址中的UUID&#xff08;一个独特的识别码&#xff09;可能存在问题&#xff0c;例如过期或无权限访问。以下是一些排查及解决该问题…

【ACM独立出版 | 厦大主办】第五届计算机科学与管理科技国际学术会议(ICCSMT 2024,10月18-20)

第五届计算机科学与管理科技国际学术会议(ICCSMT 2024) 定于2024年10月18-20日在中国厦门举行。 会议旨在为从事“计算机科学”与“管理科技”研究的专家学者、工程技术人员、技术研发人员提供一个共享科研成果和前沿技术&#xff0c;了解学术发展趋势&#xff0c;拓宽研究思路…

Pandas 绘图的强大之处:后端

轻松通过 Pandas 创建交互式图形。欢迎来到雲闪世界。 添加图片注释&#xff0c;不超过 140 字&#xff08;可选&#xff09; 1.背景 Python 有大量的可视化包&#xff0c;其中最有名的三个是&#xff1a;Matplotlib&#xff08;和 seaborn&#xff09;、Plotly和Hvplot。这三…

虚幻5|技能栏UI优化(2)——优化技能UI并实现技能栏的拖拽操作

这篇文章里&#xff0c;前情提要&#xff0c;文章里的序列变量应命名为序号&#xff0c;我命名错了&#xff0c;虽然不差&#xff0c;但为了后面更好的理解 一.刷新技能栏&#xff0c;用于刷新上一章文章的初始化技能栏 1.打开技能栏格子&#xff0c;打开图表&#xff0c;添加…

用AI工具制作高质量PPT的完整教程

其实使用AI或者ChatGPT写PPT的方式有很多种 下面主要说明两种方式&#xff0c;建议第二种方式 接下来我会用最简单的语言&#xff0c;一步一步说明&#xff0c;保证你能在五分钟内做完你想要的PPT 具体方法和工具&#xff0c;都在里面 1、手动生成 让ChatGPT帮你生成大纲和…

Leetcode面试经典150题-36.有效数独

解法都在代码里&#xff0c;不懂就留言或者私信&#xff0c;比第一题稍微难点 class Solution {public static boolean isValidSudoku(char[][] board) {/**rowExists[i][j]代表第i行是否存在数据j1*/boolean[][] rowExists new boolean[9][9];/**rowExists[i][j]代表第i列是…

纵向合并单元格——table

将list数据处理成tableDate格式&#xff0c;id重复的数据&#xff0c;只有第一项有num字段&#xff08;num是重复的个数&#xff09;渲染表格&#xff0c;纵向合并第1、2、6列&#xff0c;id相同的合并 <template><div><el-table:data"tableData":sp…

力扣刷题--137. 只出现一次的数字 II【中等】

题目描述&#x1f357; 给你一个整数数组 nums &#xff0c;除某个元素仅出现 一次 外&#xff0c;其余每个元素都恰出现 三次 。请你找出并返回那个只出现了一次的元素。 你必须设计并实现线性时间复杂度的算法且使用常数级空间来解决此问题。 示例 1&#xff1a; 输入&am…

knime一行代码都不用写,就可以清洗数据,详细文字

knime数据清洗案例 最终效果 解决办法&#xff1a; 图文并茂的解决办法见我公众号&#xff1a;链接: knime一行代码都不用写&#xff0c;就可以清洗数据,详细步骤如下 具体使用的节点说明如下&#xff1a; 1、使用Excel Reader结节&#xff0c;将数据导入进来。 2.使用…

科技馆可视化系统:全新互动体验

通过图扑科技馆可视化平台&#xff0c;参观者可以体验互动式展示和虚拟现实展览&#xff0c;深入理解科学现象和技术创新&#xff0c;增强学习的趣味性和参与感。

HarmonyOS(52) 使用安全控件SaveButton保存图片

SaveButton使用简介 前言SaveButton简介约束与限制 实现点击事件全部源码 参考资料&#xff1a; 前言 在HarmonyOS(50) 截图保存功能实现一文中简单介绍了截图保存功能&#xff0c;本篇博文介绍一个更简单的保存图片控件SaveButton. SaveButton简介 SaveButton允许用户通过点…

全球财经动态:科技巨头风云再起,市场趋势显分化

一、美股大盘与债市动向 昨夜美股市场呈现分化格局&#xff0c;中概股表现强劲&#xff0c;而科技龙头英伟达却遭遇重挫。道指微涨&#xff0c;纳指小幅收跌&#xff0c;标普500指数则基本持平。美债收益率攀升&#xff0c;十年期国债收益率触及3.863%&#xff0c;市场避险情绪…

JavaWeb学习——原理篇学习

一、SpringBoot配置优先级 首先我们先知道三种SpringBoot支持的配置文件: 而当在一个Spring项目中&#xff0c;如果同时存在这三个配置文件&#xff0c;那么执行的优先级顺序应是&#xff1a; properties > yml > yaml 。 补充&#xff1a;属性配置 另外我们可以通过打包…

把http网站变成https

网站建设好后默认是HTTP网站&#xff0c;会被浏览器直接标注为不安全站点&#xff0c;甚至搜索引擎上也排名也不是那么出色。 HTTP协议是浏览网站和在线资源的基本协议。由于HTTP的连接未加密&#xff0c;因此往往不安全。HTTPS是默认HTTP协议的安全扩展。 访问HTTPS网站时&…

FFmpeg开发笔记(五十三)移动端的国产直播录制工具EasyPusher

EasyPusher是一款国产的RTSP直播录制推流客户端工具&#xff0c;它支持Windows、Linux、Android、iOS等操作系统。EasyPusher采用RTSP推流协议&#xff0c;其中安卓版EasyPusher的Github托管地址为https://github.com/EasyDarwin/EasyPusher-Android。 不过EasyPusher有好几年没…

DAG路径搜索优化性能提高百倍

问题描述&#xff1a; 从一个DAG图中给定的起点 begin_line 寻找一条路径到达给定的终点 end_line。 图的拓扑关系由 top 这个映射&#xff08;map<int64, vector<int64>>&#xff09;表示&#xff0c;每条边都有一个或多个邻接的后继。begin_line 和 end_line 都…

javax.imageio.IIOException: Not a JPEG file: starts with 0xff 0xd9

目录 问题描述&#xff1a; 解决思路&#xff1a; 问题出现的原因&#xff1a; 解决方法&#xff1a; 问题描述&#xff1a; 最近在用java做一个上传图像识别文字的功能&#xff0c;上传图像后报错。 接口返回&#xff1a; {"code": 500,"success":…

滚动懒加载升级版:添加滚动回收策略

在之前的1.0版本的基础上&#xff0c;添加滚动回收策略&#xff0c;保持页面只保留固定数量的数据&#xff0c;优化渲染 否则一直往数组里push内容&#xff0c;当数组长度过大&#xff0c;可能页面会崩溃&#xff08;本需求是日志列表&#xff0c;由于日志数据可能会非常庞大&…

C++入门基础知识41——【关于C++ 运算符——杂项运算符】

成长路上不孤单&#x1f60a;【14后&#xff0c;C爱好者&#xff0c;持续分享所学&#xff0c;如有需要欢迎收藏转发&#x1f60a;&#x1f60a;&#x1f60a;&#x1f60a;&#x1f60a;&#x1f60a;&#x1f60a;&#xff01;&#xff01;&#xff01;&#xff01;&#xff…

URP custompasscustom render objects

https://dbbh666.blog.csdn.net/article/details/141296728?spm1001.2014.3001.5502 上一次 custom render pass的时候&#xff0c;直接是quad的渲染&#xff0c;如果想把任意对象绘制到FBO怎么写呢 参考这两个高手的文章&#xff0c;总结一下 https://www.bilibili.com/read…