温湿度采集与OLED显示

一、软件I2C与硬件I2C

I2C(Inter-Integrated Circuit)是一种常见的串行通信协议,用于在数字电路中连接各种设备。I2C通常分为软件I2C和硬件I2C两种类型。

软件I2C是通过软件实现的I2C通信协议。这种方法通常使用GPIO引脚进行通信,通过编程控制GPIO引脚的高低电平来模拟数据线和时钟线,从而实现I2C通信。软件I2C在一些资源受限的系统中或者没有硬件I2C接口的情况下非常有用,但通常速度较慢,稳定性也不如硬件I2C。

硬件I2C则是通过专门的I2C控制器硬件实现的I2C通信协议。这种方法使用专门的硬件电路来实现I2C通信,通常具有更高的速度和稳定性,更适合在需要高速传输或者对稳定性要求较高的场合使用。

总的来说,软件I2C适用于一些简单或者资源受限的系统,而硬件I2C适用于需要高性能和稳定性的系统。在选择使用哪种I2C通信方式时,需要根据具体的应用场景和需求进行权衡和选择。

二、实验

(1)步骤一

选择STM32F103C8T6芯片

(2)步骤二

sys配置

rcc配置

I2C1配置

I2C2配置

USART1配置

TIM1配置

时钟树配置

(3)步骤三

工程生成

三、代码

1.main.c

/* Includes ------------------------------------------------------------------*/
#include "main.h"
#include "i2c.h"
#include "tim.h"
#include "usart.h"
#include "gpio.h"
#include "u8g2.h"
#include "AHT20.h"
#include <stdio.h>
//温
static const unsigned char  wen[] =
{0x00,0x00,0xC4,0x1F,0x48,0x10,0x48,0x10,0xC1,0x1F,0x42,0x10,0x42,0x10,0xC8,0x1F,0x08,0x00,0xE4,0x3F,0x27,0x25,0x24,0x25,0x24,0x25,0x24,0x25,0xF4,0x7F,0x00,0x00};

//湿
static const unsigned char  shi[] ={0x00,0x00,0xE4,0x1F,0x28,0x10,0x28,0x10,0xE1,0x1F,0x22,0x10,0x22,0x10,0xE8,0x1F,0x88,0x04,0x84,0x04,0x97,0x24,0xA4,0x14,0xC4,0x0C,0x84,0x04,0xF4,0x7F,0x00,0x00};

//度	
static const unsigned char  du[] ={0x80,0x00,0x00,0x01,0xFC,0x7F,0x44,0x04,0x44,0x04,0xFC,0x3F,0x44,0x04,0x44,0x04,0xC4,0x07,0x04,0x00,0xF4,0x0F,0x24,0x08,0x42,0x04,0x82,0x03,0x61,0x0C,0x1C,0x70};

//待	
static const unsigned char  dai[]={0x10,0x02,0x10,0x02,0x08,0x02,0xC4,0x3F,0x12,0x02,0x10,0x02,0xE8,0x7F,0x0C,0x08,0x0A,0x08,0xE9,0x7F,0x08,0x08,0x48,0x08,0x88,0x08,0x88,0x08,0x08,0x0A,0x08,0x04};

//检	
static const unsigned char  jian[]={0x08,0x02,0x08,0x02,0x08,0x05,0x08,0x05,0xBF,0x08,0x48,0x10,0xAC,0x6F,0x1C,0x00,0x2A,0x11,0x0A,0x12,0x49,0x12,0x88,0x0A,0x88,0x08,0x08,0x04,0xE8,0x7F,0x08,0x00};

//测	
static const unsigned char  che[]={0x00,0x20,0xE4,0x23,0x28,0x22,0x28,0x2A,0xA1,0x2A,0xA2,0x2A,0xA2,0x2A,0xA8,0x2A,0xA8,0x2A,0xA4,0x2A,0xA7,0x2A,0x84,0x20,0x44,0x21,0x44,0x22,0x24,0x28,0x10,0x10};

	
	/* Private includes ----------------------------------------------------------*/
/* USER CODE BEGIN Includes */
	
//write by luobitaihuangzhang
	
/* USER CODE END Includes */

/* Private typedef -----------------------------------------------------------*/
/* USER CODE BEGIN PTD */

/* USER CODE END PTD */

/* Private define ------------------------------------------------------------*/
/* USER CODE BEGIN PD
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值