This commit is contained in:
2023-10-17 21:44:23 +08:00
parent 30b569f3d6
commit b85fc4bdf1
14 changed files with 1401 additions and 281 deletions

View File

@@ -0,0 +1,52 @@
/*
@文件AbsSoftIIC.h
@作者:你遇了我
@联系321640253@qq.com
@描述软件IIC,请在配置区按照自己的情况改动
@版本v0.1.2
*/
#ifndef _ABS_SOFT_I2C_H_
#define _ABS_SOFT_I2C_H_
#include <stdint.h>
#include <stdbool.h>
#define ABS_SOFT_IIC_ON 0 //启动整个软件IIC
#if(ABS_SOFT_IIC_ON)
/****************************配置区(BEGIN)****************************************/
/*------导入你需要的头文件(BEGIN)------*/
#include "main.h"
/*------导入你需要的头文件(END)--------*/
#define ABS_IIC_DELAY_TIME 10
#define ABS_IIC_Wait_OUTTime 2000
/*1、按选择自己的需求定义SDA线和SCL线的函数建议用推挽输出*/
#define ABS_IIC_SDA_Set() HAL_GPIO_WritePin(GPIOB,GPIO_PIN_8,GPIO_PIN_SET) //定义你的SDA引脚设置高电平函数
#define ABS_IIC_SDA_Reset() HAL_GPIO_WritePin(GPIOB,GPIO_PIN_8,GPIO_PIN_RESET) //定义你的SDA引脚设置低电平函数
#define ABS_IIC_SCL_Set() HAL_GPIO_WritePin(GPIOB,GPIO_PIN_9,GPIO_PIN_SET) //定义你的SCL引脚设置高电平函数
#define ABS_IIC_SCL_Reset() HAL_GPIO_WritePin(GPIOB,GPIO_PIN_9,GPIO_PIN_RESET) //定义你的SCL引脚设置低电平函数
#define ABS_IIC_SDA_READ() HAL_GPIO_ReadPin(GPIOB,GPIO_PIN_8)
/*2、到抽象实现区实现SDA引脚的输入输出模式的改变函数*/
/****************************配置区(END)******************************************/
typedef enum _ABS_sotfiic_state{
ABS_IIC_STATE_ACK = 0U,
ABS_IIC_STATE_NACK = 1U,
ABS_SOFT_IIC_TIMEOUT = 2U,
ABS_SOFT_IIC_SUCCESS = 3U,
ABS_SOFT_IIC_ERROR = 4U,
} ABS_SOFT_IIC_STATE;
/****************************函数声明区(BEGIN)************************************/
ABS_SOFT_IIC_STATE ABS_I2C_WR_Byte(uint8_t address,uint8_t dat); //发送一个字节数据
ABS_SOFT_IIC_STATE ABS_I2C_WR_Bytes(uint8_t address,uint8_t *dat,uint8_t num); //发送多个字节数据
ABS_SOFT_IIC_STATE ABS_I2C_RD_Bytes(uint8_t address,uint8_t *dat,uint8_t num);
/****************************函数声明区(END)**************************************/
#endif //ABS_SOFT_IIC_ONL
#endif