init
This commit is contained in:
52
HARDWARE/MPU6050/I2C.h
Normal file
52
HARDWARE/MPU6050/I2C.h
Normal file
@@ -0,0 +1,52 @@
|
||||
#ifndef _I2C_H_
|
||||
#define _I2C_H_
|
||||
|
||||
#include "system.h"
|
||||
#include "sys.h"
|
||||
#include "math.h"
|
||||
#include "stdbool.h"
|
||||
#include "stdio.h"
|
||||
#include "string.h"
|
||||
|
||||
#define SDA_IN() {GPIOB->MODER&=~(3<<(11*2));GPIOB->MODER|=0<<11*2;} //PB5输入模式
|
||||
#define SDA_OUT() {GPIOB->MODER&=~(3<<(11*2));GPIOB->MODER|=1<<11*2;} //PB5输出模式
|
||||
|
||||
//IO操作函数
|
||||
#define IIC_SCL PBout(10) //SCL
|
||||
#define IIC_SDA PBout(11) //SDA
|
||||
#define READ_SDA PBin(11) //输入SDA
|
||||
|
||||
|
||||
#ifndef I2C_Direction_Transmitter
|
||||
#define I2C_Direction_Transmitter ((uint8_t)0x00)
|
||||
#endif
|
||||
|
||||
#ifndef I2C_Direction_Receiver
|
||||
#define I2C_Direction_Receiver ((uint8_t)0x01)
|
||||
#endif
|
||||
|
||||
enum
|
||||
{
|
||||
I2C_ACK,
|
||||
I2C_NACK
|
||||
};
|
||||
|
||||
void I2C_SDAMode(uint8_t Mode);
|
||||
void I2C_Start(void);
|
||||
void I2C_Stop(void);
|
||||
bool I2C_WaiteForAck(void);
|
||||
void I2C_Ack(void);
|
||||
void I2C_NAck(void);
|
||||
bool I2C_WriteOneBit(uint8_t DevAddr, uint8_t RegAddr, uint8_t BitNum, uint8_t Data);
|
||||
bool I2C_WriteBits(uint8_t DevAddr, uint8_t RegAddr, uint8_t BitStart, uint8_t Length, uint8_t Data);
|
||||
void I2C_WriteByte(uint8_t Data);
|
||||
uint8_t I2C_ReadByte(uint8_t Ack);
|
||||
u8 I2C_WriteOneByte(uint8_t DevAddr, uint8_t RegAddr, uint8_t Data);
|
||||
uint8_t I2C_ReadOneByte(uint8_t DevAddr, uint8_t RegAddr);
|
||||
bool I2C_WriteBuff(uint8_t DevAddr, uint8_t RegAddr, uint8_t Num, uint8_t *pBuff);
|
||||
bool I2C_ReadBuff(uint8_t DevAddr, uint8_t RegAddr, uint8_t Num, uint8_t *pBuff);
|
||||
|
||||
void I2C_GPIOInit(void);
|
||||
|
||||
#endif
|
||||
|
||||
Reference in New Issue
Block a user