资源简介
采用DS3231实时时钟模块该芯片与单片机通过IIC串行通信,传递速度比较快。自带有电池,不需要外部晶振,完整的时钟日历功能包括秒、分、时、星期、日期、月和年计时,并提供有效期到2100年的闰年补偿,两个日历闹钟。还有集成了温度传感器,成本低。
代码片段和文件信息
#include “24cxx.h“
#include “SysTick.h“
/*******************************************************************************
* 函 数 名 : AT24CXX_Init
* 函数功能 : AT24CXX初始化
* 输 入 : 无
* 输 出 : 无
*******************************************************************************/
void AT24CXX_Init(void)
{
IIC_Init();//IIC初始化
}
/*******************************************************************************
* 函 数 名 : AT24CXX_ReadOneByte
* 函数功能 : 在AT24CXX指定地址读出一个数据
* 输 入 : ReadAddr:开始读数的地址
* 输 出 : 读到的数据
*******************************************************************************/
u8 AT24CXX_ReadOneByte(u16 ReadAddr)
{
u8 temp=0;
IIC_Start();
if(EE_TYPE>AT24C16)
{
IIC_Send_Byte(0XA0); //发送写命令
IIC_Wait_Ack();
IIC_Send_Byte(ReadAddr>>8);//发送高地址
}
else
{
IIC_Send_Byte(0XA0+((ReadAddr/256)<<1)); //发送器件地址0XA0写数据
}
IIC_Wait_Ack();
IIC_Send_Byte(ReadAddr%256); //发送低地址
IIC_Wait_Ack();
IIC_Start();
IIC_Send_Byte(0XA1); //进入接收模式
IIC_Wait_Ack();
temp=IIC_Read_Byte(0);
IIC_Stop();//产生一个停止条件
return temp;
}
/*******************************************************************************
* 函 数 名 : AT24CXX_WriteOneByte
* 函数功能 : 在AT24CXX指定地址写入一个数据
* 输 入 : WriteAddr :写入数据的目的地址
DataToWrite:要写入的数据
* 输 出 : 无
*******************************************************************************/
void AT24CXX_WriteOneByte(u16 WriteAddru8 DataToWrite)
{
IIC_Start();
if(EE_TYPE>AT24C16)
{
IIC_Send_Byte(0XA0); //发送写命令
IIC_Wait_Ack();
IIC_Send_Byte(WriteAddr>>8);//发送高地址
}
else
{
IIC_Send_Byte(0XA0+((WriteAddr/256)<<1)); //发送器件地址0XA0写数据
}
IIC_Wait_Ack();
IIC_Send_Byte(WriteAddr%256); //发送低地址
IIC_Wait_Ack();
IIC_Send_Byte(DataToWrite); //发送字节
IIC_Wait_Ack();
IIC_Stop();//产生一个停止条件
delay_ms(10);
}
/*******************************************************************************
* 函 数 名 : AT24CXX_WriteLenByte
* 函数功能 : 在AT24CXX里面的指定地址开始写入长度为Len的数据
用于写入16bit或者32bit的数据
* 输 入 : WriteAddr :写入数据的目的地址
DataToWrite:要写入的数据
Len :要写入数据的长度24
* 输 出 : 无
*******************************************************************************/
void AT24CXX_WriteLenByte(u16 WriteAddru32 DataToWriteu8 Len)
{
u8 t;
for(t=0;t {
AT24CXX_WriteOneByte(WriteAddr+t(DataToWrite>>(8*t))&0xff);
}
}
/*******************************************************************************
* 函 数 名 : AT24CXX_ReadLenByte
* 函数功能 : 在AT24CXX里面的指定地址开始读出长度为Len的数据
用于读出16bit或者32bit的数据
* 输 入 : ReadAddr :开始读出的地址
Len :要读出数据的长度24
* 输 出 :
- 上一篇:基于Labview二维平台导轨运动
- 下一篇:影视.txt
相关资源
- oled的代码
- STM32控制步进电机
- STM32F103RBT6 STM32最小系统 PCB文件+电路
- 基于stm32的i2c通信
- stm32DSP 库FFT
- STM32 DS1302驱动代码
- stm32频率计测量总结
- STM32-基于SD卡的FATFS文件系统
- STM32的CAN实验程序
- STM32-I2C程序例程
-
Jli
nk_ARM-OB_STM32固件(V8) - pca9685+stm32f103c8t6
- stm32f103c8t6+mpu9250读取九轴原始数据
- 基于stm32的图片显示
- 基于STM32的智能扫地机器人避障系统设
- STM32超声波测距程序
- STM32F103C8T6引脚图
- STM32F407VET6原理图
- AltiumDesigner官方STM32封装库(F0~F4 L1)
- 基于STM32F1的6位QS-30辉光钟设计原理图
- STM32L4xx_通过UART写FLASH_IAP更新程序_L
- SPWM波形产生数组生成工具
- STM32F207的串口_IAPBootloader程序
- TIM PWM.zip
- 基于STM32的酒精检测仪
- STM32 OLED打点划线画圆 OLED电子罗盘 程
- STM32+DAC+ADC语音录制与播放
- STM32F103驱动三个超声波模块,串口屏
- 基于STM32F103的24m02芯片驱动代码
- 基于STM32的DAC7562模块驱动代码
评论
共有 条评论