12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455 |
- #ifndef __MYIIC_H
- #define __MYIIC_H
- #include "sys.h"
- //////////////////////////////////////////////////////////////////////////////////
- //本程序只供学习使用,未经作者许可,不得用于其它任何用途
- //Mini STM32开发板
- //IIC 驱动函数
- //正点原子@ALIENTEK
- //技术论坛:www.openedv.com
- //修改日期:2010/6/10
- //版本:V1.0
- //版权所有,盗版必究。
- //Copyright(C) 正点原子 2009-2019
- //All rights reserved
- //////////////////////////////////////////////////////////////////////////////////
-
- //IO方向设置
- #define SDA_IN() {GPIOB->CRH&=0XFFFF0FFF;GPIOB->CRH|=8<<12;}
- #define SDA_OUT() {GPIOB->CRH&=0XFFFF0FFF;GPIOB->CRH|=3<<12;}
- //IO操作函数
- #define IIC_SCL PBout(10) //SCL
- #define IIC_SDA PBout(11) //SDA
- #define READ_SDA PBin(11) //输入SDA
- //IIC所有操作函数
- void IIC_Init(void); //初始化IIC的IO口
- void IIC_Start(void); //发送IIC开始信号
- void IIC_Stop(void); //发送IIC停止信号
- void IIC_Send_Byte(u8 txd); //IIC发送一个字节
- u8 IIC_Read_Byte(unsigned char ack);//IIC读取一个字节
- u8 IIC_Wait_Ack(void); //IIC等待ACK信号
- void IIC_Ack(void); //IIC发送ACK信号
- void IIC_NAck(void); //IIC不发送ACK信号
- void IIC_Write_One_Byte(u8 daddr,u8 addr,u8 data);
- u8 IIC_Read_One_Byte(u8 daddr,u8 addr);
- #endif
|