多主机利用总线通讯时,SPI与IIC用什么方法随机对共享信道使用权分配

多主机利用总线通讯时,SPI与IIC用什么方法随机对共享信道使用权分配,第1张

ESP32 芯片包含两个硬件定时器组。每组有两个通用硬件定时器。它们都是基于 16 位预分频器和 64 位自动重载功能的向上/向下计数器的 64 位通用定时器。

hw_timer_t timerBegin(uint8_t num, uint16_t divider, bool countUp){}

参数:

返回值:

返回一个计时器结构体指针 hw_timer_t ,我们预定义一个指针接收他

void timerEnd(hw_timer_t timer)

参数:

void timerAttachInterrupt(hw_timer_t timer, void ( fn)(void), bool edge){}

参数:

void timerDetachInterrupt(hw_timer_t timer)

void timerAlarmWrite(hw_timer_t timer, uint64_t alarm_value, bool autoreload){}

参数:

void timerAlarmEnable(hw_timer_t timer){}

参数:

void timerAlarmDisable(hw_timer_t timer)

bool timerAlarmEnabled(hw_timer_t timer)

ESP32有两个I2C控制器(也称为端口),负责处理两条I2C总线上的通信。每个I2C控制器都可以作为主机或从机运行。引脚21 默认的SDA, 引脚22是默认的SCL

IIC需要引入自带库 Wireh Wire继承steam类 steam类有的他都有

void requestFrom(uint16_t address, uint8_t size, bool sendStop)

请求完成后 主机可以用 Wireavailable() 和 Wireread() 等函数等待并获取从机的回答

参数:

void beginTransmission(int address)

随后, 主机可以使用 Wirewrite(); 写数据并使用 WireendTransmission(); 结束传输

参数:

结束传输, 并释放IIC

返回值: uint8_t 类型

当作为主机时: 主机将要发送的数据加入发送队列;

当作为从机时: 从机发送的数据给主机;

参数:

返回值: byte类型

输入的字节数

返回接收到的字节数

返回值: byte类型

当作为主机时: 主机使用requestFrom()后 要使用此函数获取数据;

当作为从机时: 从机读取主机给的数据;

返回值: 读到的字节数据 byte

size_t readBytes(char buffer, size_t length)

参数:

返回值: 数据长度

size_t readBytesUntil(char terminator, char buffer, size_t length)

参数:

返回值: 数据长度

Wirebusy();

返回布尔值

继承自steam类, 个人感觉iic不会用到的

parseFloat

parseInt

find

findUntil

setTimeout

这些都是steam继承来的 大家灵活应用

从机有些函数和主机是一样的, 请看上一章节,本章节只有不一样的部分

Wirebegin(adress); //adress取值0~127

void onRequest(void ()())

参数:

void onReceive(void ()(int))

参数:

ESP32有四个SPI外设,分别为SPI0、SPI1、HSPI和VSPI。

SPI通讯流程如下:

SPI接口默认VSPI 接口频率1 000 000, 数据默认采用MSBFIRST(低有效位优先), 时钟模式:SPI_MODE0(SCLK闲置为0, SCLK上升沿采样)

参数:

参数:

参数:

采用该函数,可以代替上面三个函数了

参数:

结束SPI通信

参数:

返回值: 接收到的数据

IIC设备地址一般为8(0~7)位。

其中第7位1为读,0为写。

剩下的0~6位参考IIC设备的datasheet和板卡原理图可知

IIC( Inter-Integrated Circuit (集成电路总线 ) ),是IICBus的简称。为一种串行通讯总线,采用多主从架构。

由飞利浦公司在1980年代为了让主板、嵌入式系统或手机用以连接低速周边设备而发展。I²C的正确读法为“I平方C”(“I-squared-C”),而“I二C”(“I-two-C”)则是另一种错误但被广泛使用的读法。自2006年10月1日起,使用I²C协议已经不需要支付专利费,但制造商仍然需要付费以获取I²C从属设备地址。

PS:我们一般读作“ I 方 C”。

注意上面的关键字,连接低速周边设备 。以及需要注意IIC为半双工通讯。

低速:IIC数据传输速率有标准模式(100kbps)、快速模式(400kbps)和高速模式(34Mbps)。

连接:物理上,IIC是两线制,一根时钟线SCL,一根数据线SDA。

周边设备:即多用与外围模块与MCU的数据通讯,比如常用的MPU6050、096寸左右大小OLED显示屏模块、DS3231时钟模块等,都可以通过IIC模块实现数据和指令半双工通讯

————————————————

以上就是关于多主机利用总线通讯时,SPI与IIC用什么方法随机对共享信道使用权分配全部的内容,包括:多主机利用总线通讯时,SPI与IIC用什么方法随机对共享信道使用权分配、对IIC工业互联网参考架构的理解、tm1650为什么一需要应答信号等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9284375.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-26
下一篇 2023-04-26

发表评论

登录后才能评论

评论列表(0条)

保存