stm32软件模拟IIC协议:
IIC协议需要SCl,SDA两根线,在主机的视角来看由六个基本单元组成:起始信号,终止信号,发送字节,接收字节,发送应答,接收应答。
下面用一个初始化函数,以及六个分别与基本单元对应的函数来完成IIC底层驱动:
GuiStar_IIC.h:
/**
****************************************************************************************
* @file GuiStar_IIC.h
* @author GuiStar-李什么恩
* @version V2.0.1
* @date 2023-1-20
* @brief IIC通讯协议基本单元函数
* @note 本程序没有设置SCL,SDA线上拉电阻,需要硬件上提供!
****************************************************************************************
*/
#ifndef __GUISTAR_IIC_H__
#define __GUISTAR_IIC_H__
#include "stm32f10x.h" // Device header
#include "IO.h"
#include "Delay.h"
void GuiStar_IIC_Init(GPIO_TypeDef* SCL_Port, uint16_t SCL_Pin, GPIO_TypeDef* SDA_Port, uint16_t SDA_Pin, uint8_t Delay_TIME);
void GuiStar_IIC_Start(void);
void GuiStar_IIC_Stop(void);
void GuiStar_IIC_SendByte(uint8_t Byte);
uint8_t GuiStar_IIC_ReceiveByte(void);
void GuiStar_SendAck(uint8_t AckBit);
uint8_t GuiStar_ReceiveAck(void);

最低0.47元/天 解锁文章
1万+

被折叠的 条评论
为什么被折叠?



