完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
你好!
我正在尝试使用现在在 Esp/Arduino 上可用的 SPI 重叠模式(这里是关于实现和新 SPI.pins() 函数的小文档:https://arduino-esp8266.readthedocs.io/。 ..I.pins#spi)。这是一个小草图,用于对 SSD1306 OLED 显示器进行一些初始化测试。它只是激活反转模式并打开显示器,因此每个像素都被激活。该草图在正常 HSPI 模式下工作(例如,引脚 SCK=14、MOSI=13、CS=0)但是,我无法使其在重叠模式下工作(引脚 SCK=14、MOSI=13、CS=0 ). 代码:全选#include #define CMD_DISPLAY_OFF 0xAE #define CMD_DISPLAY_ON 0xAF #define CMD_CHARGE_PUMP 0x8D #define CMD_INVERSE_DISPLAY 0xA7 #define PIN_DC 5 #define PIN_RST 4 //#define SPI_OVERLAP #ifdef SPI_OVERLAP #define PIN_SCK 6 #define PIN_MOSI 7 #define PIN_MISO 8 //Unused #define PIN_CS 0 #else #define PIN_SCK 14 #define PIN_MOSI 13 #define PIN_MISO 12 //Unused #define PIN_CS 0 #endif #define MODE_DATA HIGH #define MODE_CMD LOW void setup() { pinMode(PIN_DC, OUTPUT); pinMode(PIN_RST, OUTPUT); #ifndef SPI_OVERLAP pinMode(PIN_CS, OUTPUT); #endif digitalWrite(PIN_RST, LOW); delay(3); digitalWrite(PIN_RST, HIGH); SPI.pins(PIN_SCK, PIN_MISO, PIN_MOSI, PIN_CS); SPI.begin(); uint8_t buffer[] = { CMD_DISPLAY_OFF, CMD_CHARGE_PUMP, 0x14, CMD_INVERSE_DISPLAY, CMD_DISPLAY_ON }; digitalWrite(PIN_DC, MODE_CMD); #ifndef SPI_OVERLAP digitalWrite(PIN_CS, LOW); #endif SPISettings settings(1000000, MSBFIRST, SPI_MODE0); SPI.beginTransaction(settings); SPI.transfer(&buffer[0], sizeof(buffer)); #ifndef SPI_OVERLAP digitalWrite(PIN_CS, HIGH); #endif } void loop() { } 有没有人对 SPI 重叠模式有经验? |
|
相关推荐
|
|
只有小组成员才能发言,加入小组>>
545浏览 6评论
457浏览 5评论
有没有办法在不使用混杂模式的情况下实现Wifi驱动程序接收缓冲区访问中断呢?
438浏览 5评论
441浏览 4评论
411浏览 4评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-22 11:46 , Processed in 0.760890 second(s), Total 75, Slave 58 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号