This repository has been archived on 2024-05-05. You can view files and clone it. You cannot open issues or pull requests or push a commit.
Files
2023-10-17 21:44:23 +08:00

53 lines
2.3 KiB
C
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
/*
@文件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