最后更新:2021-11-26 08:01:08 手机定位技术交流文章
摩托罗拉计划通信协议(连续周边界面),即连续外围设备接口(SPEI)是高速、全时通信巴士,ADCs、LCDs和需要更高通信速度和MCUs的其他装置之间经常使用。
SPI 共用通信系统
SPI通信使用三条公共汽车线路和片段线路,SCK、MOSI、ISO和SS,其运作方式如下:
(1) NSS(奴隶安全):当许多SPIS从设备上连接到SPI主机时,设备的其他信号线与相同的SSPI总线同时连接,每条总线自设备上拥有自己的NSS信号线,只有主机脚。 I2C协议通过设备地址确定地址,在总线上选择一个装置,并与之互动。虽然SPI协议没有设备地址,但它确实通过NSS信号线找到了地址。当主机选择设备, 将设备 NSS 的信号线设置为低水平, 并且选择了设备, 也就是说, 如果该设备是真实的, 主机将开始与所选设备 SPI 进行通信。 SPI 对话从低级别 NSS 线信号开始, 并随着 NSS 线被拉上而终止 。
(2) SCK(序列时钟):用于通信数据同步的时钟信号线,由通信主机生成,界定通信速度,以不同设备支持的各种最大时钟频率。
(3) MOSI(主输出,奴隶输入):主要设备产出/导航来自设备输入,主机数据从信号线中输出,信号线读取主机的数据,即连接数据针对主机和离机。
(4) MISO(主输入,奴隶输出):主设备输入/制导来自设备输出,主机读取该信号线的数据并将其输出给主机,即该线上的数据正在从计算机传输到主机。
SPI 通信通信时间
通讯的起始和停止
在一个地点,NSS信号线是SPI从高到低通信的起始信号。在另一个地点,NSS信号线是SPI通信的停止信号,表明通信已经结束,机器的选择状态被取消。
数据有效性
SPI 使用 MOSI 和 MISO 信号线发送数据和SCK 信号线同步数据。 在 SCK 中, MOSI 和 MISO 数据线在每时钟周期传递一个数据, 数据输入和输出同时进行 。
观察图中的2、3、4和5个标记的数据在SCK增长期间改变输出,并随着SCK的下降进行抽样。 也就是说,MOSI和MISO的数据在SCK的下降时有效,但在其他时则无效。
CPOL/CPHA以及通信模式
SPI提供四种交流方式,关键区别在于CSK的时钟状况,即公共汽车是免费的,以及数据取样的时间。
CBOL是SCK信号线的平坦信号,而SPI通信装置则闲置,CPHA是数据取样的时钟阶段。
SPI 的四种模式
SPI协议允许全时双工作通信和高数据传输速度,但是没有提供流量控制,也没有确保数据接收的应对机制,因此与国际投资协定公共汽车协议相比,存在某些数据可靠性限制。
STM32装置上可存取若干节聚物安非他明,其SPI通信信号通过不同的GPI指南传送,这些指南在使用时必须进行调整,以适应这些特定触发因素。
SPI 脚脚STM32F10x
OLED被认为是未来新一代飞机监测员的一种新兴应用技术,它使用有机光光二极管元素(有机光线光线光线二极管),它提供自发光,不需要光源、高对比度、厚度、宽度、快速反应、优异性(如变化式板)、使用宽度温度范围以及更简单的设计和准备。
由Flickr用户pic.
逐位读取字体模型数据位, 将“ 1” 位置转换为蓝色像素点, 将“ 0” 位置转换为黑色像素点, 最后将完整点恢复到 OLED 。 关于 Han点的编码原则的更多信息, 请参见此博客。 在线底部, 读取并显示 Ubuntu 字体 。
整个屏幕显示只能经过一段时间扫描, 一次一行。 驱动器将产生低水平的行扫描, 并按顺序将列驱动的读和显示数据添加到列电极中。 扫描时间线被称为线周期, 完成完整的屏幕扫描则被称为框架。 典型的框架频率超过60, 无法逐行查看 。
像素数据扫描过程
STM32F103 最低系统、AHT20温度传感器、USB过境港口模块、0.96英寸 OLED监测器
接线说明:
AHT20
| AHT20 | STM32 |
|---|---|
| SCL | PB6 |
| SDA | PB7 |
| VCC | 3V3 |
| GND | GND |
串口
| STM32 | USB转TTL |
|---|---|
| PA9 | TXD |
| PA10 | RXD |
| 3V3 | 3V3 |
| GND | GND |
OLED
| OLED | STM32 |
|---|---|
| VCC | 3V3/5V |
| GND | GND |
| D0 | PB13 |
| D1 | PB15 |
| RES | PB612 |
| DC | PB10 |
| CS | PB11 |
将文本模板文件添加到程序上,使软件 PCtool 制作一个字体模板文件,用于显示中文字符,首先指定制作模板的设置,然后单击。确定选项。
输入您想要显示的名称, 然后将生成的模板文件粘贴到代码中 。
如下图所示,复制到openfront.h/。
我正在研究测试. c 文件的 TEST_MainPage 功能 。
直接启动主功能 。
将产生的十六进制文件烧成 STM32 并逐个解释连接, 产生以下结果。 这有点棘手。 在我把它提交给你之前, 我拍了一张相片 。
博客显示程序 bsp_i2c.c 的温度,对序列端口中显示的读为 _ AHT20 函数的代码进行评论。
使用字体模板创建下面所列类型文件,以创建程序PCtol, 并将其添加到 oledfront.H 。
编写main函数。
创建的十六进制文件被烧成STM32,连接用铁丝线描述,在AHT20芯片被手持时取得了以下结果,温度和湿度值有很大差异。
这个示例只需在此基础上添加一个滚动功能,其配置为向右滚动和向左滚动,通过OLED驱动的包装函数完成,并参照与芯片指令的全面连接,如第一个示例。
要显示的文本模板文件已上传到 oledfront 。 在 h 中, 我将展示一首名为“ 总是容易看到” 的诗, 其写法如下: 主函数 。
如果数据内存的内容有可能在滚动屏幕期间被销毁,且无法正确显示,则在传输启动滚动屏幕(2F)之前必须先告知数据。
将生成的十六进制文件刻录在STM32上,并逐个解释连接,得出以下结果。
OLED 屏幕在第一个例子开始时没有反应, 连接和代码在发现 OLED 屏幕的问题之前就经常被验证, 当发现 OLED 屏幕的问题时, 机会是关键。 在这次实验之后, 我对 I2C 和 SPI 协议有了更好的了解, 并了解到这些协议在我周围的许多地点使用过。 当显示 OLED 屏幕时, 只需修改已输入的文件, 而在其它领域则没有什么挑战 。
根据SPI通信机制,使用了OLED显示器。
根据STM32 0.96英寸 OLED面板的显示数据
照片来自Flickr用户pic.
SSD1306(溶剂驱动芯片)说明详细。
字模提取工具
提取码:3ly5
完整代码链接
提取码:03zq
本文由 在线网速测试 整理编辑,转载请注明出处。