38 lines
1.3 KiB
C
38 lines
1.3 KiB
C
#ifndef _MYIIC_H
|
||
#define _MYIIC_H
|
||
#include "main.h"
|
||
//////////////////////////////////////////////////////////////////////////////////
|
||
//本程序只供学习使用,未经作者许可,不得用于其它任何用途
|
||
//ALIENTEK STM32F429开发板
|
||
//IIC驱动代码
|
||
//正点原子@ALIENTEK
|
||
//技术论坛:www.openedv.com
|
||
//创建日期:2016/1/13
|
||
//版本:V1.0
|
||
//版权所有,盗版必究。
|
||
//Copyright(C) 广州市星翼电子科技有限公司 2014-2024
|
||
//All rights reserved
|
||
//////////////////////////////////////////////////////////////////////////////////
|
||
//IO方向设置
|
||
#define SDA_IN() {GPIOH->MODER&=~(3<<(5*2));GPIOH->MODER|=0<<5*2;} //PH5输入模式
|
||
#define SDA_OUT() {GPIOH->MODER&=~(3<<(5*2));GPIOH->MODER|=1<<5*2;} //PH5输出模式
|
||
//IO操作
|
||
#define IIC_SCL PHout(4) //SCL
|
||
#define IIC_SDA PHout(5) //SDA
|
||
#define READ_SDA PHin(5) //输入SDA
|
||
|
||
//IIC所有操作函数
|
||
void IIC_Init(void); //初始化IIC的IO口
|
||
void IIC_Start(void); //发送IIC开始信号
|
||
void IIC_Stop(void); //发送IIC停止信号
|
||
void IIC_Send_Byte(uint8_t txd); //IIC发送一个字节
|
||
uint8_t IIC_Read_Byte(unsigned char ack);//IIC读取一个字节
|
||
uint8_t IIC_Wait_Ack(void); //IIC等待ACK信号
|
||
void IIC_Ack(void); //IIC发送ACK信号
|
||
void IIC_NAck(void); //IIC不发送ACK信号
|
||
|
||
void IIC_Write_One_Byte(uint8_t daddr,uint8_t addr,uint8_t data);
|
||
uint8_t IIC_Read_One_Byte(uint8_t daddr,uint8_t addr);
|
||
#endif
|
||
|