图解模拟通信协议

一:图解软件IIC

1:协议模拟

①IO定义

#include "CH57x_common.h"
#ifndef SRC_I2C_H_
#define SRC_I2C_H_

//IO方向设置
typedef unsigned char           u8;
#define I2C_Pin_SCL   GPIO_Pin_10
#define I2C_Pin_SDA   GPIO_Pin_11

#define SCL_H         GPIOB_SetBits( I2C_Pin_SCL )
#define SCL_L         GPIOB_ResetBits( I2C_Pin_SCL )
#define SDA_H         GPIOB_SetBits( I2C_Pin_SDA )
#define SDA_L         GPIOB_ResetBits( I2C_Pin_SDA )
#define SCL_read      GPIOB_ReadPortPin( I2C_Pin_SCL )
#define SDA_read      GPIOB_ReadPortPin( I2C_Pin_SDA )
#define SCL_out       GPIOB_ModeCfg(I2C_Pin_SCL, GPIO_ModeOut_PP_5mA)
#define SCL_in        GPIOB_ModeCfg(I2C_Pin_SCL, GPIO_ModeIN_PU)
#define SDA_out       GPIOB_ModeCfg(I2C_Pin_SDA, GPIO_ModeOut_PP_5mA)
#define SDA_in        GPIOB_ModeCfg(I2C_Pin_SDA, GPIO_ModeIN_PU)

②初始化IIC

③开始信号

 ④停止信号

(SCL在高电平期间SDA只能为稳定状态,一旦有电平变化就会被判定为停止或开始信号)

⑤等待应答信号

⑥产生应答信号

⑦不产生应答信号(同上只是SDA一直为高即在第9个CLK持续为高,产生ACK这持续为低)

⑧发送一个字节 同上差不多第52讲 I2C通信实验-M3_哔哩哔哩_bilibili

⑨接收一个字节

(87条消息) IIC原理超详细讲解---值得一看_Z小旋的博客-CSDN博客

(87条消息) STM32驱动AHT10&OLED显示温湿度_stm32获取aht10_优信电子的博客-CSDN博客

(87条消息) IIC协议的软件模拟实现程序_iic程序_我很强大。的博客-CSDN博客

第52讲 I2C通信实验-M3_哔哩哔哩_bilibili

2:协议例程

IIC读取AHT10

① AH10初始化

 ② 检查AHT10是否存在

③ AHT10软复位

④ 触发测量

 ⑤ 读取数据

⑥ 数据处理 

 现象:(93条消息) CH573F-AHT10_kedvellek的博客-CSDN博客

二、图解SPI 

 1:四种模式

 2:例子

STM32通信模拟SPI_韦东山的博客-CSDN博客 

猜你喜欢

转载自blog.csdn.net/qq_45803449/article/details/130283128