AT24C128.h 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. #ifndef AT24C128_H
  2. #define AT24C128_H
  3. #include "stm32f10x.h"
  4. //IIC2
  5. //#define IIC_WP_PORT GPIOE
  6. //#define IIC_WP_PIN GPIO_Pin_15
  7. //#define IIC_SDA_PORT GPIOB
  8. //#define IIC_SDA_PIN GPIO_Pin_11
  9. //#define IIC_SCL_PORT GPIOB
  10. //#define IIC_SCL_PIN GPIO_Pin_10
  11. //https://blog.csdn.net/fireboyorhotboy/article/details/92645607
  12. //#define SDA_IN() {GPIOB->CRH&=0XFFFF0FFF;GPIOB->CRH|=(u32)8<<12;} //PB11输入模式,(11-8)*4=12
  13. //#define SDA_OUT() {GPIOB->CRH&=0XFFFF0FFF;GPIOB->CRH|=(u32)3<<12;} //PB11输出模式,(11-8)*4=12
  14. //#define IIC_SCL PBout(10) //SCL
  15. //#define IIC_SDA PBout(11) //SDA
  16. //#define READ_SDA PBin(11) //输入SDA
  17. //IIC1
  18. #define IIC_WP_PORT GPIOB
  19. #define IIC_WP_PIN GPIO_Pin_5
  20. #define IIC_SDA_PORT GPIOB
  21. #define IIC_SDA_PIN GPIO_Pin_7
  22. #define IIC_SCL_PORT GPIOB
  23. #define IIC_SCL_PIN GPIO_Pin_6
  24. #define SDA_IN() {GPIOB->CRL&=0X0FFFFFFF;GPIOB->CRL|=(u32)8<<28;} //PB7输入模式,(7-0)*4=28
  25. //#define SDA_OUT() {GPIOB->CRL&=0X0FFFFFFF;GPIOB->CRL|=(u32)3<<28;} //PB7输出模式,(7-0)*4=28 //推挽输出
  26. #define SDA_OUT() {GPIOB->CRL&=0X0FFFFFFF;GPIOB->CRL|=(u32)7<<28;} //PB7输出模式,(7-0)*4=28 //开漏输出
  27. #define IIC_SCL PBout(6) //SCL
  28. #define IIC_SDA PBout(7) //SDA
  29. #define READ_SDA PBin(7) //输入SDA
  30. ////////////////////////////////////////////////////////////////////////////////////////////
  31. #define HIGH 1
  32. #define LOW 0
  33. #define PinInput 1
  34. #define PinOutput 0
  35. //写保护,低电平关闭,可以写入;高电平打开,不能写入
  36. #define IIC_WRITE_PROTECT_ENABLE() {GPIO_SetBits(IIC_WP_PORT, IIC_WP_PIN);}
  37. #define IIC_WRITE_PROTECT_DISABLE() {GPIO_ResetBits(IIC_WP_PORT, IIC_WP_PIN);}
  38. #define E_DELAY 2 // 两个EEPROM命令之间的间隔
  39. extern u8 iic_cmd_delay;
  40. void I2C_init(void);
  41. extern u8 AT24CXX_ReadOneByte(u32 ReadAddr);
  42. extern void AT24CXX_WriteOneByte(u32 WriteAddr,u8 DataToWrite);
  43. extern void AT24CXX_Read(u32 ReadAddr,u8 *pBuffer,u16 NumToRead);
  44. extern void AT24CXX_Write(u32 WriteAddr,u8 *pBuffer,u16 NumToWrite);
  45. extern void AT24CXX_clr(u32 WriteAddr,u32 NumToWrite);
  46. extern void IIC_Start1(void);
  47. void IIC_Stop(void);
  48. u8 IIC_Wait_Ack(void);
  49. void IIC_Ack(void);
  50. void IIC_NAck(void);
  51. void IIC_Send_Byte(u8 txd);
  52. uint8_t I2C_Test(void);
  53. void delay_nop(void);
  54. #define EEPROM_INFO(fmt,arg...) printf("<<-EEPROM-INFO->> "fmt"\n",##arg)//OTP_TRACE(fmt,##arg)//trace_otp_trace1(uart_msg_send, 4, fmt, ##arg);
  55. #define EEPROM_ERROR(fmt,arg...) //printf("<<-EEPROM-ERROR->> "fmt"\n",##arg)
  56. #define EEPROM_DEBUG(fmt,arg...) /*do{\
  57. if(EEPROM_DEBUG_ON)\
  58. printf("<<-EEPROM-DEBUG->> [%d]"fmt"\n",__LINE__, ##arg);\
  59. }while(0)*/
  60. float Temp_test(void);
  61. #endif