wordpress 在线demo,seo推广是做什么的,淘宝网站怎么做链接地址,网站建设服务费入什么科目目录
一.基本配置
1.esp32-wroom-32引脚图
2.接线方式
3.Arduino芯片选择和库文件
3.1Arduino配置#xff08;2.0.11#xff09;
3.2 下载ESP32SPISlave库#xff08;0.6.8#xff09;文件
二、代码编写
1.主机代码
2.从机代码
3.注意事项
三、运行效果 一.基本…目录
一.基本配置
1.esp32-wroom-32引脚图
2.接线方式
3.Arduino芯片选择和库文件
3.1Arduino配置2.0.11
3.2 下载ESP32SPISlave库0.6.8文件
二、代码编写
1.主机代码
2.从机代码
3.注意事项
三、运行效果 一.基本配置
1.esp32-wroom-32引脚图 2.接线方式
主机的CS随便找个几个引脚就行从机的CS尽量都连到GPIO5。 3.Arduino芯片选择和库文件
3.1Arduino配置2.0.11 如果搜不到这个开发板那就执行下面操作 地址为
https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json
3.2 下载ESP32SPISlave库0.6.8文件
github网址为
https://github.com/hideakitai/ESP32SPISlave
下载zip 导入到arduino 直接下载会有-master把这个后缀删除即可。 导入完成后可以在
C:\Users\86152\Documents\Arduino\libraries
这个路径下找到ESP32SPISlave库文件上面的路径都是安装的第三方库都放在这里 esp32自己核心的库放在
C:\Users\86152\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.11\libraries 重启Arduino如果情况和下面一样那么安装成成功 最后设置编译查看是不是用的这个库 编译代码版本正确路径正确那么成功配置 二、代码编写
1.主机代码
#include SPI.hconst int CS_PIN 5;
uint8_t master_tx[8] {10, 20, 30, 40, 50, 60, 70,80};
uint8_t master_rx[8] {0};void setup() {Serial.begin(115200);SPI.begin(18, 19, 23, 5); // SCK, MISO, MOSI, SSpinMode(CS_PIN, OUTPUT);digitalWrite(CS_PIN, HIGH);Serial.println(SPI Master ready);
}void loop() {digitalWrite(CS_PIN, LOW); // 开始通信for (int i 0; i 8; i) {master_rx[i] SPI.transfer(master_tx[i]);}digitalWrite(CS_PIN, HIGH); // 结束通信Serial.print(Master Sent: );for (uint8_t b : master_tx) {Serial.print(b);Serial.print( );}Serial.print( | Received: );for (uint8_t b : master_rx) {Serial.print(b);Serial.print( );}Serial.println();delay(2000); // 每 2 秒发送一次
2.从机代码
#include ESP32SPISlave.hESP32SPISlave slave;static constexpr size_t BUFFER_SIZE 8;
uint8_t tx_buf[BUFFER_SIZE] {1,2, 3, 4, 5, 6, 7,8};
uint8_t rx_buf[BUFFER_SIZE] {0};void setup() {Serial.begin(115200);slave.setDataMode(SPI_MODE0);slave.setQueueSize(1);// 使用指定引脚默认 HSPIslave.begin(HSPI, 18, 19, 23, 5); // SCK, MISO, MOSI, SSSerial.println(SPI Slave ready);
}void loop() {size_t received_bytes slave.transfer(tx_buf, rx_buf, BUFFER_SIZE, 1000); // 1s超时if (received_bytes 0) {Serial.print(Received );Serial.print(received_bytes);Serial.print( bytes from Master: );for (size_t i 0; i received_bytes; i) {Serial.print(rx_buf[i]);Serial.print( );}Serial.println();// 修改应答数据模拟不同内容for (size_t i 0; i BUFFER_SIZE; i) {tx_buf[i] rx_buf[i] 1;}}delay(100); // 避免过快重复 transfer
}
3.注意事项 在上面的代码里面好像需要主机和从机的接受和发送数组里面都是8个字节每次发送和接受八个字节不然就会出错我现在也没找到原因但是并不会影响使用。
三、运行效果