AT24C128.h 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. #ifndef AT24C128_H
  2. #define AT24C128_H
  3. #define IIC_WP_PORT GPIOE
  4. #define IIC_WP_PIN GPIO_Pin_15
  5. #define IIC_SDA_PORT GPIOB
  6. #define IIC_SDA_PIN GPIO_Pin_11
  7. #define IIC_SCL_PORT GPIOB
  8. #define IIC_SCL_PIN GPIO_Pin_10
  9. #define HIGH 1
  10. #define LOW 0
  11. #define PinInput 1
  12. #define PinOutput 0
  13. //https://blog.csdn.net/fireboyorhotboy/article/details/92645607
  14. #define SDA_IN() {GPIOB->CRH&=0XFFFF0FFF;GPIOB->CRH|=(u32)8<<12;} //PB11输入模式,(11-8)*4=12
  15. #define SDA_OUT() {GPIOB->CRH&=0XFFFF0FFF;GPIOB->CRH|=(u32)7<<12;} //PB11输出模式,(11-8)*4=12
  16. #define IIC_SCL PBout(10) //SCL
  17. #define IIC_SDA PBout(11) //SDA
  18. #define READ_SDA PBin(11) //输入SDA
  19. //写保护,低电平关闭,高电平打开
  20. #define IIC_WRITE_PROTECT_ON() {GPIO_SetBits(IIC_WP_PORT, IIC_WP_PIN);} // 禁止写入
  21. #define IIC_WRITE_PROTECT_OFF() {GPIO_ResetBits(IIC_WP_PORT, IIC_WP_PIN);} // 可以写入
  22. #define E_DELAY 2 // 两个EEPROM命令之间的间隔
  23. extern u8 iic_cmd_delay;
  24. extern OS_SEM i2c_sem;
  25. void I2C_init(void);
  26. extern u8 AT24CXX_ReadOneByte(u32 ReadAddr);
  27. extern void AT24CXX_WriteOneByte(u32 WriteAddr,u8 DataToWrite);
  28. extern void AT24CXX_Read(u32 ReadAddr,u8 *pBuffer,u16 NumToRead);
  29. extern void AT24CXX_Write(u32 WriteAddr,u8 *pBuffer,u16 NumToWrite);
  30. extern void AT24CXX_clr(u32 WriteAddr,u32 NumToWrite);
  31. extern void IIC_Start1(void);
  32. void IIC_Stop(void);
  33. u8 IIC_Wait_Ack(void);
  34. void IIC_Ack(void);
  35. void IIC_NAck(void);
  36. void IIC_Send_Byte(u8 txd);
  37. void delay_nop(void);
  38. #define EEPROM_INFO(fmt,arg...) OTP_TRACE(fmt,##arg)//trace_otp_trace1(uart_msg_send, 4, fmt, ##arg);
  39. //printf("<<-EEPROM-INFO->> "fmt"\n",##arg)
  40. #define EEPROM_ERROR(fmt,arg...) //printf("<<-EEPROM-ERROR->> "fmt"\n",##arg)
  41. #define EEPROM_DEBUG(fmt,arg...) /*do{\
  42. if(EEPROM_DEBUG_ON)\
  43. printf("<<-EEPROM-DEBUG->> [%d]"fmt"\n",__LINE__, ##arg);\
  44. }while(0)*/
  45. #endif