一.代码分析
/*
*延时nus
*入口参数:
* nus:要延时的us数
*/
void delay_us(uint32_t nus);
/*
*延时nms
*入口参数:
* nms:要延时的ms数
*/
void delay_ms(uint32_t nms);
/*
* IIC1 GPIO 初始化
* SCL——PB6
* SDA——PB7
*/
void IIC1_Init(void)
{
GPIO_InitTypeDef GPIO_InitStruct = {0};
__HAL_RCC_GPIOB_CLK_ENABLE();
GPIO_InitStruct.Pin = GPIO_PIN_6|GPIO_PIN_7;
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
GPIO_InitStruct.Pull = GPIO_PULLUP;
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
IIC1_SDA_Hi();IIC1_SCL_Hi();
}
//产生IIC起始信号
void IIC1_Start(void);
//产生IIC停止信号
void IIC1_Stop(void);
/*
*IIC发送一个字节
*返回从机有无应答
*1,有应答
*0,无应答
*/
void IIC1_Send_Byte(uint8_t txd);
/*读1个字节,
*ack=1时,发送ACK,
*ack=0,发送nACK
*/
uint8_t IIC1_Read_Byte(uint8_t ack);
/*
*等待应答信号到来
*返回值:1,接收应答失败
* 0,接收应答成功
*/
uint8_t IIC1_Wait_Ack(void);
//产生ACK应答
void IIC1_Ack(void);
//不产生ACK应答
void IIC1_NAck(void);
二.iic.c和iic.h文件见链接
https://download.csdn.net/download/qq_41287302/18886529
3111

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



