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为什么一需要应答信号等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)