完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
Arduino IDE:1.6.5
Blynk 库:0.3.1 板设置:通用 ESP8266 模块演示示例 :BlynkBlink 硬件:ESP8266-12 例如,当我编译 BlynkBlink 时,这是编译器错误消息: D:\Program Files (x86)\Arduino\libraries\Ethernet\src\Ethernet.cpp: In member function 'int EthernetClass::begin(uint8_t*)': D:\Program Files (x86)\Arduino\libraries\Ethernet\src\Ethernet.cpp:19:45: 错误:没有匹配函数来调用'SPIClass::beginTransaction(int, SPISettings)' SPI.beginTransaction(SPI_ETHERNET_SETTINGS ) ; |
|
相关推荐
1个回答
|
|
这个错误是因为在使用 ESP8266 时,SPI.beginTransaction() 函数需要传入第二个 SPISettings 参数。解决方法如下:
1. 打开 Blynk 库所在的文件夹(通常在 Arduino/libraries/Blynk),找到文件 BlynkSimpleEsp8266.h。 2. 打开该文件并找到以下代码块: ``` #if defined(ESP8266) class AuthTokenProvider { public: AuthTokenProvider(const char* auth) : _auth(auth) {} void get(char* buff) { strcpy(buff, _auth); } private: const char* _auth; }; typedef BlynkWifi BlynkTransport; #else typedef BlynkEthernet BlynkTransport; #endif ``` 3. 在 #if defined(ESP8266) 和 #else 之间添加以下代码: ``` #include ``` 4. 找到以下代码行: ``` SPI.begin(); ``` 5. 将该行代码替换为以下代码: ``` SPI.begin(14, 12, 13, 15); //Set the pins used for ESP8266 SPI Interface ``` 6. 打开文件 Adafruit_MCP3008.h,通常在 Arduino/libraries/Adafruit_MCP3008 目录中。 7. 找到以下代码块: ``` #if defined(SPI_HAS_TRANSACTION) void beginTransaction(SPISettings settings); void endTransaction(void); #endif void setBitOrder(uint8_t); void setDataMode(uint8_t); void setClockDivider(uint8_t); ``` 8. 在 #if defined(SPI_HAS_TRANSACTION) 和 #endif 之间添加以下代码: ``` #if defined(ESP8266) void beginTransaction(SPISettings settings); #endif ``` 9. 打开文件 Adafruit_MCP3008.cpp,通常在 Arduino/libraries/Adafruit_MCP3008 目录中。 10. 找到以下代码块: ``` #if defined(SPI_HAS_TRANSACTION) void Adafruit_MCP3008::beginTransaction(SPISettings settings) { SPI.beginTransaction(settings); } void Adafruit_MCP3008::endTransaction(void) { SPI.endTransaction(); } #endif ``` 11. 在 #if defined(SPI_HAS_TRANSACTION) 和 #endif 之间添加以下代码: ``` #if defined(ESP8266) void Adafruit_MCP3008::beginTransaction(SPISettings settings) { SPI.beginTransaction(settings); } #endif ``` 12. 保存文件并重新编译 BlynkBlink 示例。 如果仍然存在编译器错误,请尝试升级到较新版本的 Arduino IDE 和 Blynk 库。 |
|
|
|
只有小组成员才能发言,加入小组>>
406浏览 6评论
338浏览 5评论
有没有办法在不使用混杂模式的情况下实现Wifi驱动程序接收缓冲区访问中断呢?
321浏览 5评论
322浏览 4评论
309浏览 4评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-8-16 10:38 , Processed in 0.772403 second(s), Total 73, Slave 58 queries .
Powered by 电子发烧友网
© 2015 www.ws-dc.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号