ds1302.h 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. #ifndef __DS1302_H
  2. #define __DS1302_H
  3. #include "stm32f10x.h"
  4. #include "delay.h"
  5. extern u8 ascii_time[7]; //保存ascii格式数据
  6. extern u8 bcd_time[7]; //保存bcd码数据
  7. typedef struct DS1302DATA
  8. {
  9. u8 year; //年
  10. u8 month; //月
  11. u8 day; //日
  12. u8 hour; //时
  13. u8 min; //分
  14. u8 sec; //秒
  15. u8 week; //周
  16. }DS1302DATA;
  17. extern struct DS1302DATA ds1302Data;
  18. #define DS1302_RST PAout(12)
  19. #define DS1302_CLK PBout(14)
  20. #define DS1302_DATIN GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_15)//读SDA数据// PBin(8)
  21. #define DS1302_DATOUT PBout(15)
  22. //#define DS1302_DAT_INPUT() {GPIOD->CRH &= 0XFFFF0FFF;GPIOD->CRH|=8<<12;}
  23. //#define DS1302_DAT_OUTPUT() {GPIOD->CRH &= 0XFFFF0FFF;GPIOD->CRH|=3<<12;}
  24. //PB8
  25. //芯片寄存器地址定义 定义的写地址,读需要+1
  26. #define DS1302_SEC_REG 0x80 //秒数据地址
  27. #define DS1302_MIN_REG 0x82 //分数据地址
  28. #define DS1302_HR_REG 0x84 //时数据地址
  29. #define DS1302_DATE_REG 0x86 //日数据地址
  30. #define DS1302_MONTH_REG 0x88 //月数据地址
  31. #define DS1302_DAY_REG 0x8a //星期几数据地址
  32. #define DS1302_YEAR_REG 0x8c //年数据地址
  33. #define DS1302_CONTROL_REG 0x8e //写保护寄存器地址
  34. #define DS1302_CHARGER_REG 0x90 //涓流充电寄存器
  35. #define DS1302_CLKBURST_REG 0xbe //脉冲串寄存器
  36. #define DS1302_RAM_BASE 0X30 //RAM基础地址
  37. #define CLOCKSTOP 0X80
  38. #define CLOCKSTART 0X00
  39. void Ds1302_Gpio_Init(void);
  40. void Ds1302_Write_Time_All(u8 start);
  41. void Ds1302_Readtime(void);
  42. #endif