完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
电子发烧友论坛|
尝试将 esp8266 nodemcu 与 dcs bios 一起使用,我测试了 OLED,当我使用此代码时,它可以通过 U8g2 模板的图形测试正常工作,它可以在 mega 2560 上正常工作,但是当切换到 esp8266 时,它会给我一些奇怪的 OLED 人工制品
代码:#include #include #include #include //#define DCSBIOS_IRQ_SERIAL // MEGA 2560 #define DCSBIOS_DEFAULT_SERIAL // ESP8266node mcu #include "DcsBios.h" int count; //U8G2_SH1122_256X64_F_4W_HW_SPI u8g2(U8G2_R2, /* cs=*/ 10, /* dc=*/ 5, /* reset=*/ 4); // Mega 2560 scl pin52, sda pin U8G2_SH1122_256X64_F_4W_SW_SPI u8g2(U8G2_R2, /* clock=*/ 14, /* data=*/ 13, /* cs=*/ 15, /* dc=*/ 5, /* reset=*/ 4); // ESP 8266 String comDisplay[3]; void setup() { count = 0; u8g2.begin(); Wire.begin(); u8g2.clearDisplay(); u8g2.clearBuffer(); u8g2.sendBuffer(); u8g2.setFont(Hornet_UFC); u8g2.setBusClock(850000); DcsBios::setup(); } void updateComDisplay(int changed,char* newValue) { comDisplay[changed] = cleanUpCom(newValue); u8g2.clearBuffer(); // clear the internal memory u8g2.setCursor(0, 45); u8g2.print(comDisplay[0]); u8g2.setCursor(57, 45); u8g2.print(comDisplay[1]); u8g2.setCursor(75, 45); u8g2.print(comDisplay[2]); u8g2.sendBuffer(); } char* cleanUpCom(char* newValue) { switch (newValue[0]) { case '`': newValue[0]='1'; break; case '~': newValue[0]='2'; break; } return newValue; } void onUfcScratchpadNumberDisplayChange(char* newValue) { updateComDisplay(2, newValue); } DcsBios::StringBuffer<8> ufcScratchpadNumberDisplayBuffer(0x7446, onUfcScratchpadNumberDisplayChange);/// main void onUfcScratchpadstring2DisplayChange(char* newValue) { updateComDisplay(1, newValue); } DcsBios::StringBuffer<2> ufcScratchpadString2DisplayBuffer(0x7450, onUfcScratchpadString2DisplayChange);///mid void onUfcScratchpadString1DisplayChange(char* newValue) { updateComDisplay(0, newValue); } DcsBios::StringBuffer<2> ufcScratchpadString1DisplayBuffer(0x744e, onUfcScratchpadString1DisplayChange);///left //// updateComDisplay(2, newValue); void loop() { DcsBios::loop(); } ESP8266 glitch Mega correct display im quite noob with arduino 所以也许有人可以查明问题谢谢 |
|
相关推荐
1个回答
|
|
|
在将 esp8266 nodemcu 与 dcs bios 一起使用时,您需要确保您的引脚定义和串口设置正确,并且您的 DcsBios 库已正确安装。
在 OLEd 的情况下,您需要确保您的 OLED 屏幕兼容 ESP8266 nodemcu,并且您的代码可以通过正确的引脚访问它。如果您收到奇怪的 OLED 人工制品代码,那么您需要检查您的 OLED 屏幕是否被正确连接并且代码是否正确访问它。 下面是一个示例代码,用于在 ESP8266 nodemcu 上将 OLED 屏幕与 dcs bios 一起使用: #include #include #include #include "DcsBios.h" #define OLED_RESET 0 Adafruit_SSD1306 display(OLED_RESET); void setup() { Serial.begin(115200); display.begin(SSD1306_SWITCHCAPVCC, 0x3C); dcsbios_setup(); // 初始化 DcsBios 库 } void loop() { dcsbios_loop(); // 处理 DcsBios 消息 display.clearDisplay(); // 清空 OLED 屏幕 display.setCursor(0,0); // 设置光标 display.print("Hello DcsBios!"); // 打印消息 display.display(); // 刷新 OLED 屏幕 } 在此示例中,我们使用 Adafruit_SSD1306 库与 OLED 屏幕进行交互,并在 OLED 屏幕上打印消息。我们还使用了 DcsBios 库来处理 DcsBios 消息,以便与外部硬件进行通信。请注意,我们使用了 dcsbios_setup() 和 dcsbios_loop() 函数,以确保正确处理 DcsBios 消息。 请根据您的硬件和库版本适当修改此代码,并确保正确设置您的引脚和串口设置。如果您遇到任何问题,请检查您的硬件连接和代码,并查看您使用的库的文档以获取更多帮助。 |
|
|
|
|
只有小组成员才能发言,加入小组>>
945 浏览 0 评论
1672 浏览 0 评论
请问一下我想用ESP8685直接替换ESP8266而不用写程序,可以让ESP8685直接通过之前ESP8266的外挂的flash运行程序吗
1330 浏览 1 评论
1233 浏览 1 评论
5021 浏览 2 评论
为blufi_device设置自定义名称,但是无法修改,为什么?
1253浏览 4评论
请问ESP32-S2-WROOM怎么获得ESP32-S2外接FLASH的唯一序列号?
927浏览 3评论
2338浏览 3评论
ESP-IDF的VScode插件的build按钮点击会报错的原因?
2527浏览 3评论
ESP-Jumpstart例程中第5个工程:5_cloud连接报错是哪里的问题?
1052浏览 2评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-2 07:20 , Processed in 0.861735 second(s), Total 42, Slave 35 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
443
