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

news2024/9/21 2:49:36

一、芯片引脚介绍

1.芯片引脚

2.引脚描述

二、系统结构图

三、功能描述

1.时钟功能

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

3.振荡器停止控制

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

5.振荡器停止检测

6.闹钟中断标志

四、程序代码

XJ8337.C

/*
 * XJ8337.c
 *
 *  Created on: 2024年8月28日
 *      Author: Administrator
 */


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



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



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


//打印出XJ8337的时间
void printf_XJ8337TIMER(void)
{
	printf("北京时间 20%x", XJ8337ReadOneByte(XJ8337_Year_REG));
	printf("/%x", XJ8337ReadOneByte(XJ8337_Month_REG));
	printf("/%x", XJ8337ReadOneByte(XJ8337_Date_REG));
	printf("   %x  ", XJ8337ReadOneByte(XJ8337_Day_REG));
	printf(" %x", XJ8337ReadOneByte(XJ8337_HOURS_REG));
	printf(" :%x", XJ8337ReadOneByte(XJ8337_MINUTES_REG));
	printf(" :%x\r\n", XJ8337ReadOneByte(XJ8337_SECONDS_REG));
}


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



//时间初始化结构体
XJ8337_Clock_Typedef XJ8337_Clock_init={
  .SEC=0x50,
  .MIN=0x59,
  .HOUR=0x18,
  .WEEK=0x01,
  .DAY=0x01,
  .MONTH=0x01,
  .YEAR=0x24
};

/***
功能:设定XJ8337的时间
输入:XJ8337_Clock_init的地址
返回:无
*****/
void SET_XJ8337TIMER(XJ8337_Clock_Typedef* clock)
{
	XJ8337sequence_write(XJ8337_SECONDS_REG,(uint8_t*)clock ,7);
}




XJ8337.H

/*
 * XJ8337.h
 *
 *  Created on: 2024年8月28日
 *      Author: Administrator
 */

#ifndef INC_XJ8337_H_
#define INC_XJ8337_H_



// 时间寄存器地址
#define XJ8337_SECONDS_REG 0x00
#define XJ8337_MINUTES_REG 0x01
#define XJ8337_HOURS_REG 0x02
#define XJ8337_Day_REG 0x03
#define XJ8337_Date_REG 0x04
#define XJ8337_Month_REG 0x05
#define XJ8337_Year_REG 0x06
#define XJ8337_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;
}XJ8337_Clock_Typedef;

extern XJ8337_Clock_Typedef XJ8337_Clock_init;

uint8_t XJ8337ReadOneByte(uint8_t ReadAddr);
void XJ8337WriteOneByte(uint8_t WriteAddr,uint8_t DataToWrite);
void XJ8337sequence_write(uint8_t WriteAddr,uint8_t* data,int length);
void printf_XJ8337TIMER(void);
void SET_XJ8337TIMER(XJ8337_Clock_Typedef* clock);





#endif /* INC_XJ8337_H_ */

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

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

相关文章

AI模型应该追求全能还是专精

目录 1.概述 2.AI模型的全面评估和比较 2.1. 精度 (Accuracy) 2.2. 速度 (Speed) 2.3. 鲁棒性 (Robustness) 2.4. 可扩展性 (Scalability) 2.5. 解释性/可解释性 (Interpretability) 2.6.应用场景分析 3.AI模型的专精化和可扩展性 3.1. 模型构架选择 3.2. 训练策略 …

sheng的学习笔记-AI-图半监督学习

AI目录&#xff1a;sheng的学习笔记-AI目录-CSDN博客 半监督学习&#xff1a;sheng的学习笔记-AI-半监督学习-CSDN博客 什么是图半监督学习 给定一个数据集&#xff0c;我们可将其映射为一个图&#xff0c;数据集中每个样本对应于图中一个结点&#xff0c;若两个样本之间的相…

mysql的组从复制

1.原理分析 三个线程 1.实际上主从同步的原理就是基于 binlog 进行数据同步的。在主从复制过程中&#xff0c;会基于 3 个线程来操作&#xff0c; 一个主库线程&#xff0c;两个从库线程。 2.二进制日志转储线程&#xff08; Binlog dump thread &#xff09;是一个主库线程…

神仙级的免费开源电子书阅读器,还支持听书功能,极空间部署『Koodo Reader』

神仙级的免费开源电子书阅读器&#xff0c;还支持听书功能&#xff0c;极空间部署『Koodo Reader』 哈喽小伙伴们好&#xff0c;我是Stark-C~ 前段时间不是给大家分享的电子书管理工具『TaleBook』嘛~&#xff0c;然后就有粉丝私信我有没有那种专门看电子书的阅读器&#xff…

Qt上传文件小记

最近由于公司上线了云平台&#xff0c;需要用Qt与云平台进行对接&#xff0c;故拾起了network模块。 众所周知Qt网络http相关的类QNetworkAccessManager发挥着举足轻重的作用。 普通的http&#xff1a;GET POST PUT DELETE已经耳熟能详&#xff0c;网上也有很多的文章有介绍到…

如何限制企业内部文件外发?告别文件泄露,七大招数限制企业内部文件外发!

如何限制企业内部文件外发&#xff0c;告别文件泄露&#xff01;文件一旦外泄&#xff0c;不仅可能泄露商业机密&#xff0c;还可能对企业的声誉和利益造成重大损害。 因此&#xff0c;如何有效限制企业内部文件外发&#xff0c;成为了每个企业必须面对和解决的问题。以下七大…

Vue 3 CLI TypeScript 项目搭建全攻略

一、前期准备 在搭建 Vue 3 CLI TypeScript 项目之前&#xff0c;我们需要做好一系列的准备工作。 首先&#xff0c;Node.js 是必不可少的运行环境。Vue 3 CLI 要求 Node.js 的版本至少为 8.9 以上。您可以从Node.js 官方网站下载最新的长期支持&#xff08;LTS&#xff09;版…

数字芯片设计验证经验分享系列文章(第四部分):将ASIC IP核移植到FPGA上——如何测试IP核的功能和考虑纯电路以外的其他因素

作者&#xff1a;Philipp Jacobsohn&#xff0c;SmartDV首席应用工程师 Sunil Kumar&#xff0c;SmartDV FPGA设计总监 本系列文章从数字芯片设计项目技术总监的角度出发&#xff0c;介绍了如何将芯片的产品定义与设计和验证规划进行结合&#xff0c;详细讲述了在FPGA上使用I…

Python中类型转换函数1

1 bool()函数 bool()函数的作用是将给定参数转换为布尔类型&#xff0c;指定参数是非零值&#xff0c;则转换为True&#xff0c;否则转换为False&#xff0c;如图1所示。 图1 bool()函数的使用方法1 如果bool()函数没有参数&#xff0c;则返回值是False&#xff0c;如图2所示…

如何查看 Kubernetes 的操作审计日志?

极狐GitLab 通过 Kubernetes Agent 对 Kubernetes 集群进行管理。整体的步骤为 Kubernetes Agent 的注册、安装。当然&#xff0c;也可以直接对 Agent 进行删除。不管是添加还是删除&#xff0c;后台都会有对应的审计日志&#xff0c;方便对 Kubernetes 集群的操作进行安全审计…

金九银十面试丨Python自动化测试的面试真题:

1.请解释一下Python自动化测试是什么以及为什么它重要&#xff1f; Python自动化测试是指使用Python编程语言进行测试过程中的自动化的过程。它通过编写测试脚本和自动化工具来模拟用户的行为&#xff0c;执行测试用例&#xff0c;并能够自动捕获测试结果和生成测试报告。Pyth…

Qt QLineEdit输入内容的格式限制(2)

设置QlineEdit控件不可编辑、密文输入、输入格式等小技巧 1. 设置不可编辑 setReadOnly(false);//文本不可编辑&#xff0c;但可以复制到剪切板 setEnabled(false);//整个控件被禁用&#xff0c;且会调用控件的禁用状态 setFocusPolicy(Qt::NoFocus);//无法获得焦点&#xff…

什么是密码学?

什么是密码学&#xff1f; 密码学是一种通过使用编码算法、哈希和签名来保护信息的实践。此信息可以处于静态&#xff08;例如硬盘驱动器上的文件&#xff09;、传输中&#xff08;例如两方或多方之间交换的电子通信&#xff09;或使用中&#xff08;在对数据进行计算时&#…

第二十五课,字符串操作函数(二)

一&#xff0c;字符串.replace(子串1, 子串2)&#xff1a;将字符串内的全部子串1&#xff0c;替换为子串2 在用电脑办公时&#xff0c;会出现这样的情景&#xff1a;一篇很长的文章中有一个人的名字全部被错写了&#xff0c;我们需要修改&#xff0c;但一个一个找错掉的名字修…

教师节素材大分享,海报设计不求人,素材多到根本用不完!

设计教师节海报时&#xff0c;设计师们最怕的就是时间不够用&#xff0c;灵感还卡壳。想做出有创意的设计&#xff0c;却总找不到合适的素材。而且&#xff0c;抠图、调色这些繁琐的步骤&#xff0c;特别耗时&#xff0c;让人头疼。还好最近找到一款国产设计软件&#xff0c;简…

SoftMaker Office Pro 2024:高效办公的全方位解决方案

SoftMaker Office Pro 2024是一款集高效、专业、全面于一体的办公软件套件&#xff0c;专为满足现代办公需求而设计。这款套件不仅包含了文字处理、电子表格、演示文稿等核心功能&#xff0c;还集成了项目管理、文档管理和客户管理等实用工具&#xff0c;为用户提供了全方位的办…

Leetcode 77. 组合 组合型回溯 C++实现

Leetcode 77. 组合 问题&#xff1a;给定两个整数 n 和 k&#xff0c;返回范围 [1, n] 中所有可能的 k 个数的组合。你可以按 任何顺序 返回答案。 算法&#xff1a; 创建二维返回数组 ans &#xff0c;和临时数组 path 。 进入 dfs 函数&#xff0c;d 代表还需要选 d 个数字…

Qt QComboBox下拉菜单显示提示信息

亲测有效 void MainWindow::initCOmboBox() {QStandardItemModel *model new QStandardItemModel(this);QStandardItem *item;item new QStandardItem("1.00");item->setToolTip("黏性土");model->appendRow(item);item new QStandardItem("…

《软件工程导论》(第6版)第1章 软件工程学概述 复习笔记

第1章 软件工程学概述 一、软件危机 1&#xff0e;软件危机的介绍 &#xff08;1&#xff09;概念 软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。这些问题绝不仅仅是不能运行的软件才具有的&#xff0c;实际上&#xff0c;几乎所有的软件都不同程度…

OpenAI GPT-3.5 “prompt“ argument not working

题意&#xff1a;"OpenAI GPT-3.5 的 prompt 参数不起作用" 问题背景&#xff1a; I am trying to make a flutter app with the openAI api that works like a chatbot, and I want to add a prompt so that the responses are more specialized, like in the open…