DS1302.h 2.0 KB

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