You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
57 lines
1.3 KiB
57 lines
1.3 KiB
#ifndef __MYIIC_H |
|
#define __MYIIC_H |
|
#include "sys.h" |
|
////////////////////////////////////////////////////////////////////////////////// |
|
//本程序只供学习使用,未经作者许可,不得用于其它任何用途 |
|
//ALIENTEK战舰STM32开发板 |
|
//IIC驱动 代码 |
|
//正点原子@ALIENTEK |
|
//技术论坛:www.openedv.com |
|
//修改日期:2012/9/9 |
|
//版本:V1.0 |
|
//版权所有,盗版必究。 |
|
//Copyright(C) 广州市星翼电子科技有限公司 2009-2019 |
|
//All rights reserved |
|
////////////////////////////////////////////////////////////////////////////////// |
|
|
|
//IO方向设置 |
|
|
|
#define SDA_IN() {GPIOC->CRH&=0X0FFFFFFF;GPIOC->CRH |= (u32)8<<28;} |
|
#define SDA_OUT() {GPIOC->CRH&=0X0FFFFFFF;GPIOC->CRH |= (u32)3<<28;} |
|
|
|
//IO操作函数 |
|
#define IIC_SCL PCout(13) //SCL |
|
#define IIC_SDA PCout(14) //SDA |
|
#define READ_SDA PCin(14) //输入SDA B |
|
|
|
//IIC所有操作函数 |
|
void MYIIC_Init(void); //初始化IIC的IO口 |
|
void MYIIC_Start(void); //发送IIC开始信号 |
|
void MYIIC_Stop(void); //发送IIC停止信号 |
|
void IIC_Send_Byte(u8 txd); //IIC发送一个字节 |
|
u8 IIC_Read_Byte(unsigned char ack);//IIC读取一个字节 |
|
u8 MYIIC_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 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|