DS1302.h 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. #ifndef __DS1302_H__
  2. #define __DS1302_H__
  3. #include "stm32f7xx_hal.h"
  4. #include "Data_deal.h"
  5. //IO方向设置
  6. //#define DS1302_IO_IN() {GPIOC->CRL&=0X0FFFFFFF;GPIOC->CRL|=((unsigned int)8<<28);}
  7. //#define DS1302_IO_OUT() {GPIOC->CRL&=0X0FFFFFFF;GPIOC->CRL|=((unsigned int)3<<28);}
  8. //IO操作函数
  9. //#define DS1302_DATA_OUT PCout(7) //数据端口 Pc7
  10. //#define DS1302_DATA_IN PCin(7) //数据端口 Pc7
  11. #define DS1302_SCK GPIO_PIN_9
  12. #define DS1302_RST GPIO_PIN_1
  13. #define DS1302_DATA GPIO_PIN_0
  14. //#define DS1302_SCK PCout(8)
  15. //#define DS1302_RST PCout(6)
  16. #define DS1302_RST_1 HAL_GPIO_WritePin(GPIOE, DS1302_RST, GPIO_PIN_SET)
  17. #define DS1302_RST_0 HAL_GPIO_WritePin(GPIOE, DS1302_RST, GPIO_PIN_RESET)
  18. #define DS1302_SCK_1 HAL_GPIO_WritePin(GPIOB, DS1302_SCK, GPIO_PIN_SET)
  19. #define DS1302_SCK_0 HAL_GPIO_WritePin(GPIOB, DS1302_SCK, GPIO_PIN_RESET)
  20. #define DS1302_DATA_OUT_1 HAL_GPIO_WritePin(GPIOE, DS1302_DATA, GPIO_PIN_SET)
  21. #define DS1302_DATA_OUT_0 HAL_GPIO_WritePin(GPIOE, DS1302_DATA, GPIO_PIN_RESET)
  22. #define DS1302_DATA_IN() HAL_GPIO_ReadPin(GPIOE, DS1302_DATA)
  23. //DS1302地址定义
  24. #define ds1302_sec_add 0x80 //秒数据地址
  25. #define ds1302_min_add 0x82 //分数据地址
  26. #define ds1302_hr_add 0x84 //时数据地址
  27. #define ds1302_date_add 0x86 //日数据地址
  28. #define ds1302_month_add 0x88 //月数据地址
  29. #define ds1302_day_add 0x8a //星期数据地址
  30. #define ds1302_year_add 0x8c //年数据地址
  31. #define ds1302_control_add 0x8e //控制数据地址
  32. #define ds1302_charger_add 0x90
  33. #define ds1302_clkburst_add 0xbe
  34. extern uint8_t time_buf[7];
  35. extern char tableDS1302[7];
  36. void DS1302_IO_IN(void);
  37. void DS1302_IO_OUT(void);
  38. void ds1302_Init(void);
  39. void ds1302_Write_Byte(uint8_t addr, uint8_t data);
  40. uint8_t ds1302_Read_Byte(uint8_t addr);
  41. void ds1302_Write_Time(uint8_t *Time_buf);
  42. void ds1302_Read_Time(void);
  43. void ds1302_Get_Time(uint8_t *time);
  44. void delay_us(uint32_t us);
  45. //新增函数 李伟修改
  46. void Set_IO_INPUT(void);
  47. void Set_IO_OUT(void);
  48. void ds1302_writeV2(unsigned char time_tx);
  49. void ds1302_initV2(void);
  50. void DS1302_get_all(void);
  51. void ds1302_SynTime(SDateTime * datetime);
  52. #endif