?? ds3231.h
字號:
#ifndef __D3231_H__
#define __D3231_H__
/*****************************************************************************
** 宏定義
******************************************************************************/
#define DS3231_SLAVE_ADDR 0xD0
//DS3231的寄存器(開始)地址
#define DS3231_REG_BEGIN_ADDR 0x00
#define DS3231_TIME_BEGIN_ADDR 0x00
#define DS3231_ALARM1_BEGIN_ADDR 0x07
#define DS3231_ALARM2_BEGIN_ADDR 0x0B
#define DS3231_CTRL_ADDR 0x0E
#define DS3231_CTRL_STATUS_ADDR 0x0F
#define DS3231_OFFSET_ADDR 0x10
#define DS3231_TEMP_BEGIN_ADDR 0x11
#define DS3231_SUBA_EN_0 0x00
#define DS3231_SUBA_EN_1 0x01
#define DS3231_SUBA_EN_2 0x02
#define I2C_PORT_0 0x00
#define I2C_PORT_1 0x01
#define I2C_PORT_2 0x02
/*****************************************************************************
** 結構定義
******************************************************************************/
/*****************************************************************************
DS3231BUFtag結構中的各個變量的位置不可更改
因為位置是與DS3231中的寄存器順序一一對應的
******************************************************************************/
typedef struct{
BYTE cTimeSecond; //[00]
BYTE cTimeMinute; //[01]
BYTE cTimeHour; //[02]
BYTE cTimeDay; //[03]
BYTE cTimeDate; //[04]
BYTE cTimeMonth; //[05]
BYTE cTimeYear; //[06]
BYTE cAlarm1Second; //[07]
BYTE cAlarm1Minute; //[08]
BYTE cAlarm1Hour; //[09]
BYTE cAlarm1DayDate; //[0A]
BYTE cAlarm2Minute; //[0B]
BYTE cAlarm2Hour; //[0C]
BYTE cAlarm2DayDate; //[0D]
BYTE cCtlReg; //[0E]
BYTE cCtlStatusReg; //[0F]
BYTE cOffsetReg; //[10]
BYTE cMSBofTemp; //[11]
BYTE cLSBofTemp; //[12]
BYTE cFlag1; //reserved
BYTE cFlag2; //reserved
}DS3231BUFtag;
typedef struct{
BYTE cSecond; //[00]
BYTE cMinute; //[01]
BYTE cHour; //[02]
BYTE cDay; //[03]
BYTE cDate; //[04]
BYTE cMonth; //[05]
BYTE cYear; //[06]
}DS3231_TIMEtag;
typedef struct{
BYTE cSecond; //[07]
BYTE cMinute; //[08]
BYTE cHour; //[09]
BYTE cDayDate; //[0A]
}DS3231_ALARM1tag;
typedef struct{
BYTE cMinute; //[0B]
BYTE cHour; //[0C]
BYTE cDayDate; //[0D]
}DS3231_ALARM2tag;
typedef struct{
BYTE cTempMSB; //[11]
BYTE cTempLSB; //[12]
}DS3231_TEMPtag;
/******************************************************************************
* 功能: 經過I2C接口發送1串字節的數據
* 輸入: cPort 端口號
cSlaAddr 從機地址
cSuba 子地址
pData 數據源指針
cNum 數據個數
* 輸出:
TRUE 發送成功
FALSE 發送失敗
******************************************************************************/
BOOL I2CSendStr(BYTE cPort, BYTE cSlaAddr, BYTE cSubaEn, BYTE cSuba, BYTE *pData, BYTE cNum);
/******************************************************************************
* 功能: 向無地址器件讀取1字節的數據
* 輸入: cPort 端口號
cSlaAddr 從機地址
cSuba 子地址
pData 數據源指針
cNum 數據個數
* 輸出:
TRUE 發送成功
FALSE 發送失敗
******************************************************************************/
BOOL I2CRecvByte(BYTE cPort, BYTE cSlaAddr, BYTE CSubaEn, BYTE cSuba, BYTE* pData);
#endif
/*****************************************************************************
** 文件結束
******************************************************************************/
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -