完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
我为 ESP8266 安装了 Arduino IDE,最近用它编译了另一个程序。我正在开始另一个项目,并从一些 Arduino 代码开始。我有一些 ESP8266 是从另一个项目中遗留下来的,我认为这对他们来说是一个完美的项目。当我选择像 Uno 这样的 Arduino 处理器时,代码编译得很好,但不会在我选择的任何 ESP8266 上编译。我不太熟悉这些功能,所以我似乎无法确定它的定义位置......
代码:全选#include #include // cbi/sbi definition #if defined(UCSRB) && defined(UBRRL) volatile byte * const _ucsrb = &UCSRB; #else volatile byte * const _ucsrb = &UCSR0B; #endif // Definitions for the hardware Serial port, used for Nexstar auxBus #define AUXBUS_RX_PIN 0 #define AUXBUS_TX_PIN 1 #define AUXBUS_BUSY_PIN 4 // The RTS (aka. "Busy") line for Nexstar auxBus #define auxBus Serial static inline void auxBus_enable_tx() { sbi(*_ucsrb, TXEN0); } static inline void auxBus_disable_tx() { cbi(*_ucsrb, TXEN0); } #define MINUS_PIN 9 #define PLUS_PIN 8 #define LED_PIN 13 同样,在没有任何更改的情况下,它在 Arduino 处理器上编译但在 ESP8266 处理器上失败并出现以下错误: 代码:全选Arduino: 1.8.13 (Windows 10), Board: "Generic ESP8266 Module, 80 MHz, Flash, Legacy (new can return nullptr), All SSL ciphers (most compatible), dtr (aka nodemcu), 26 MHz, 40MHz, DOUT (compatible), 1MB (FS:64KB OTA:~470KB), 2, nonos-sdk 2.2.1+100 (190703), v2 Lower Memory, Disabled, None, Only Sketch, 115200" celestron_motor_focuser_hand_controller:7:35: error: 'UCSR0B' was not declared in this scope volatile byte * const _ucsrb = &UCSR0B; \celestron_motor_focuser_hand_controller\celestron_motor_focuser_hand_controller.ino: In function 'void auxBus_enable_tx()': celestron_motor_focuser_hand_controller:16:64: error: 'TXEN0' was not declared in this scope static inline void auxBus_enable_tx() { sbi(*_ucsrb, TXEN0); } ^ celestron_motor_focuser_hand_controller:16:69: error: 'sbi' was not declared in this scope static inline void auxBus_enable_tx() { sbi(*_ucsrb, TXEN0); } ^ \celestron_motor_focuser_hand_controller\celestron_motor_focuser_hand_controller.ino: In function 'void auxBus_disable_tx()': celestron_motor_focuser_hand_controller:17:64: error: 'TXEN0' was not declared in this scope static inline void auxBus_disable_tx() { cbi(*_ucsrb, TXEN0); } ^ celestron_motor_focuser_hand_controller:17:69: error: 'cbi' was not declared in this scope static inline void auxBus_disable_tx() { cbi(*_ucsrb, TXEN0); } ^ exit status 1 'UCSR0B' was not declared in this scope |
|
相关推荐
1个回答
|
|
ESP8266和Arduino之间存在一些差异,包括处理器架构、内存和性能等方面。因此,编写在Arduino上编译的代码可能需要进行一些修改才能在ESP8266上编译和运行。在你的情况下,无法确定错误的定义位置,这可能是由于编写的代码在ESP8266上无法识别某些处理器指令或库。您需要查看您的代码,了解它是否涉及与ESP8266不兼容的指令或库,并进行相应的修改以适应ESP8266。同时,您还可以尝试使用不同的编译工具或库,以查看它们是否可以在ESP8266上编译和运行您的代码。
|
|
|
|
只有小组成员才能发言,加入小组>>
1078 浏览 1 评论
567浏览 6评论
475浏览 5评论
有没有办法在不使用混杂模式的情况下实现Wifi驱动程序接收缓冲区访问中断呢?
458浏览 5评论
458浏览 4评论
429浏览 4评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-12 08:24 , Processed in 0.650976 second(s), Total 48, Slave 41 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号