最后更新:2021-11-22 19:20:03 手机定位技术交流文章
Philips发明了I2C通讯协议(Inter-In综合电路),现在该协议广泛用于系统内许多集成电路(IC)之间的通讯,因为它的脚足较少,硬件简单且可扩缩,不需要USART和CAN等外部接收和发送设备。
①物理层
I2C是辅助设备的主要线路。 多个 I2C 通信设备可以连接在一起,为多个通信主机和众多通信操作员服务。 I2C 公共汽车只有两条公共汽车线,一条双向线数据线(SDA)和一条字符串时钟线(SCL )。
I2C通讯装置往往通过下列方式连接:
②协议层
它主要描述通信的启动和停止信号、数据有效性、反应、仲裁、时钟同步和地址广播。
通讯信号开始和结束
当 I2C 通信时, SDA 数据传输只有在SCL 处于高空时才有效。SDA 信号线用于传输数据,SDA 信号线用于确保数据同步。
继续转递低级别答复或高级别答复作为答复。
①硬件I2C
STM32芯片直接使用外部I2C硬件。
使用方法: 只要相关内存被配置, 外部设置会生成常规序列协议的时间序列。 在初始化 I2C 外部设置后, 只需要注册 1 的位置, 此时外部设置控制相应的 SCL 和 SDA 线自动生成 I2C 启动信号, 消除内核直接控制踢电高度的需要 。
②软件I2C
直接使用CPU内核来控制全球定位系统组织在I2C协议所要求的低层次和高层次的输出,从而模拟I2C。
当调控I2C信号的启动时,控制GPIO的高端输出为SCL线,然后在此期间控制GPIO的高到低端开关为SDA线,最终控制SCL线的低端开关为正常的I2C信号。
区别:
为了调控踢脚,硬件I2C需要外部设置,而仿制I2C的软件可能使用任何通用的GPIO。
AHT20芯片
主函数:
AHT20芯片的使用:
温度读取:
连接方式:
PA9与USB模块RX连接,PA10与USB模块TX连接,SCL与PB6连接,SDA与PB7连接。
下图为室温下:
用你的手覆盖下图象。 温度正在上升, 正如您所看到的 。
主函数:
读取温度并显示:
连线方式:
RA9 至 RX USB 模块,PA10 至 TX USB 模块
温度湿度传感器的SCL与PB6连接,而其SDA与PB7连接。
OLED:
D1接PB15,
CS接PB11,
RES接PB12,
DC接PB10,
D0接PB13.
烧录:
显示:

OLED:
有机发光二极管(OrganicLight-Emitting Diode, OLED),又称有机电子激光显示器和有机发光半导体(Organic Energoproducation 显示器, OLED),是有机半导体和光材料,用电场注入和合成成光。
SPI:
SPI协议是由摩托罗拉提议的一项通信协议(连续周边界面),即一个连续外围装置界面,这是一个高速、全时通信巴士,在ADC、LCD和其他需要更高通信率的装置与MCU之间广泛使用。
SPI物理层
SPI通讯使用三条公共汽车线路和三条片段线路,即SCK、MOSI和ISO。
SPI协议层
与 I2C的类似,SPI协议定义了通讯信号开始和结束、数据有效性、时钟同步等环节。
通信时序:
PCtoLCD 字体模板下载
字模
打开之后设置一下:
文本的前缀和后缀应从括号中删除。
输入您想要接收的文本,单击以生成字体,下面将显示一个字数。
主函数:
输出代码:
添加字模代码:
定位 oedfont.h 并添加预生成的字体 。
烧录:
这一相关性与上述温度湿度联系是一致的。
效果:
由于这个小实验,我对AHT20如何通过 I2C 协议读取数据有一般的理解,在引用大人物的博客后,热湿感应器很容易通过串口导出,温度在 OLED 上显示,只是添加 OLED 显示代码。然后,你可以使用 OLED 滚动文本和数字,这一次你使用7 位 OSLed SPI 协议,然后你通过字体软件将字体添加到大人物的代码中,然后你可以将字体添加到大人物的代码中, 你可以改变 OLED 内部的函数参数, 以达到预期的位置和长度。 这些小实验都很有趣, 所以如果你小心, 基本上没有错误, 如果它不起作用, 那么可能是 AHT20 芯片或 OLED 。
AHT20温度和湿度数据收集
完整代码
OLED显示温度和湿度。
完整代码
基于 SPI 的 OLED 显示器
OLED滚动显示
完整代码
本文由 在线网速测试 整理编辑,转载请注明出处。