myiic.h 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. #ifndef _MYIIC_H
  2. #define _MYIIC_H
  3. #include "sys.h"
  4. //////////////////////////////////////////////////////////////////////////////////
  5. //本程序只供学习使用,未经作者许可,不得用于其它任何用途
  6. //ALIENTEK STM32F103开发板
  7. //IIC驱动代码
  8. //正点原子@ALIENTEK
  9. //技术论坛:www.openedv.com
  10. //创建日期:2017/5/30
  11. //版本:V1.0
  12. //版权所有,盗版必究。
  13. //Copyright(C) 广州市星翼电子科技有限公司 2014-2024
  14. //All rights reserved
  15. //////////////////////////////////////////////////////////////////////////////////
  16. //IO方向设置
  17. #define SDA_IN() {GPIOB->CRL&=0X0FFFFFFF;GPIOB->CRL|=(u32)8<<28;} //PB7输入模式
  18. #define SDA_OUT() {GPIOB->CRL&=0X0FFFFFFF;GPIOB->CRL|=(u32)3<<28;} //PB7输出模式
  19. //IO操作
  20. #define IIC_SCL PBout(6) //SCL
  21. #define IIC_SDA PBout(7) //SDA
  22. #define READ_SDA PBin(7) //输入SDA
  23. #define IIC_WP PCin(9) //WP
  24. //IIC所有操作函数
  25. void IIC_Init(void); //初始化IIC的IO口
  26. void IIC_Start(void); //发送IIC开始信号
  27. void IIC_Stop(void); //发送IIC停止信号
  28. void IIC_Send_Byte(u8 txd); //IIC发送一个字节
  29. u8 IIC_Read_Byte(unsigned char ack);//IIC读取一个字节
  30. u8 IIC_Wait_Ack(void); //IIC等待ACK信号
  31. void IIC_Ack(void); //IIC发送ACK信号
  32. void IIC_NAck(void); //IIC不发送ACK信号
  33. void IIC_Write_One_Byte(u8 daddr,u8 addr,u8 data);
  34. u8 IIC_Read_One_Byte(u8 daddr,u8 addr);
  35. #endif