1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/bg4uvr-ds3231

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Это зеркальный репозиторий, синхронизируется ежедневно с исходного репозитория.
Клонировать/Скачать
ds3231.h 3.3 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
bg4uvr Отправлено 5 лет назад 375fac1
/********************************************************************************
STM32F103C8T6模块 + DS3231 + 24C32)模块 + TM1637数码管模块 + OLED显示模块
《实时时钟 + 温度测量并保存,实时OLED显示温度曲线,数码管实际显示时钟》
的,实验程序……
2019.2.3完成 by bg4uvr~
********************************************************************************/
#ifndef __DS3231_H
#define __DS3231_H
#include "stm8s.h"
//DS3231硬件地址
#define DS3231_WRITE_ADD 0xD0 //
#define DS3231_READ_ADD 0xD1
//DS3231寄存器定义
#define SEC 0x00
#define MIN 0x01
#define HOUR 0x02
#define WEEK 0x03
#define DATE 0x04
#define MONTH 0x05
#define YEAR 0x06
#define AL1_SEC 0x07
#define AL1_MIN 0x08
#define AL1_HOUR 0x09
#define AL1_DAY_DATE 0x0A
#define AL2_MIN 0x0B
#define AL2_HOUR 0x0C
#define AL2_DAY_DATE 0x0D
#define CONTROL 0x0E
//0x0E控制位
#define EOSC (1<<7) //电池供电时,时钟是否运行,0:运行,1:停止,VCC时此位无效一直运行,初次上电时默认为0。
#define BBSQW (1<<6) //电池供电时,INT/SQW脚是否输出方波,0:高阻态,1:输出方波,初次上电为0。
#define CONV (1<<5) //置1强制测量温度(平时64秒自动测量一次)
#define RS2 (1<<4) //方波频率选择,RS2:RS1 00=1Hz, 01=1024Hz, 10=4096Hz, 11=8192Hz
#define RS1 (1<<3)
#define INTCN (1<<2) //“INT/SQW”脚功能设置,0输出方波,1为闹钟中断
#define A2IE (1<<1) //闹钟2使能
#define A1IE (1<<0) //闹钟1使能
#define CTL_STA 0x0F
//0x0F控制&状态位
#define OSF (1<<7) //时钟停止标志位。首次上电、VCC和BAT同时掉电、电池供电时EOSC置1、外部干扰等,可造成置位。置位状态需要人工清零。
#define EN32kHz (1<<3) //32K脚输出设置位,电源供电时,1输出32K,0高阻态。上电时此位为1,32K脚输出方波。
#define BSY (1<<2) //温度测量忙标志
#define A2F (1<<1) //闹钟2标志
#define A1F (1<<0) //闹钟1标志
#define AGING_OFFSET 0x10 //校准值,正值增加电容,负值减小电容,25度时每1LSB对频率大约影响0.1ppm。
#define TEMP_H 0x11 //温度整数位(有符号)
#define TEMP_L 0x12 //温度小数位(最左侧2位,所以分辨率为0.25度)
//DS3231寄存器结构体 ( 19Bytes )
typedef struct
{
uint8_t sec;
uint8_t min;
uint8_t hour;
uint8_t week;
uint8_t date;
uint8_t month;
uint8_t year;
// uint8_t al1_sec;
// uint8_t al1_min;
// uint8_t al1_hour;
// uint8_t al1_week;
// uint8_t al2_min;
// uint8_t al2_hour;
// uint8_t al2_week;
// uint8_t ctrl;
// uint8_t ctrl_sta;
// uint8_t offset;
uint8_t temp_h;
uint8_t temp_l;
}ds3231_info;
void DS3231_init(void); //DS3231初始化
void DS3231_Write(uint8_t Reg_add, uint8_t byte_cnt, uint8_t *buf); //DS3231写器件
void DS3231_Read(uint8_t Reg_add, uint8_t byte_cnt, uint8_t *buf); //DS3231读器件
extern inline uint8_t bcd2hex(uint8_t bcd_data); //BCD转HEX
extern inline uint8_t hex2bcd(uint8_t hex_data); //HEX转BCD
uint8_t max_date(uint8_t year,uint8_t month); //计算某年某月的天数
uint8_t week(uint8_t year, uint8_t month, uint8_t date);//根据日期计算星期
int8_t DS3231_Read_temp(void); //强制启动温度测量并读取
#endif

Комментарий ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://gitlife.ru/oschina-mirror/bg4uvr-ds3231.git
git@gitlife.ru:oschina-mirror/bg4uvr-ds3231.git
oschina-mirror
bg4uvr-ds3231
bg4uvr-ds3231
master