Arduino Nano 通过 SPI 总线与 ST7735 通信

Arduino Nano communication with ST7735 over SPI-Bus

提问人:DeThe92 提问时间:7/30/2022 最后编辑:DeThe92 更新时间:11/21/2022 访问量:313

问:

我使用带有 ST7735 显示器和 CAN 控制器MCP2515的 Arduino Nano。通过SPI总线,我想与显示器和CAN控制器进行通信。通过CAN控制器的通信工作顺畅。对于显示器,我遇到了它只显示白屏的问题。

这是我目前的设置:CAN-Setup如图所示

我使用这种代码与CAN控制器和显示器进行通信:

#include <Adafruit_GFX.h>    // Core graphics library
#include <Adafruit_ST7735.h> // Hardware-specific library for ST7735
#include <SPI.h>
#include <mcp2515.h>

#define MCP2515_CS 10     // Chip Select CAN-Controller
#define TFT_CS 7          // Chip Select TFT-Display
#define TFT_RST 8         // Reset
#define TFT_DC 9     
#define TFT_MOSI 11       // Data out
#define TFT_SCLK 13       // Clock out

Adafruit_ST7735 tft = Adafruit_ST7735(TFT_CS, TFT_DC, TFT_MOSI, TFT_SCLK, TFT_RST);
struct can_frame canMsg;
MCP2515 mcp2515(MCP2515_CS);

谁能发现错误?

Arduino SPI CAN Arduino-C++ 总线

评论

0赞 Juraj 7/30/2022
和没有CAN控制器的显示器?
0赞 DeThe92 7/30/2022
我必须拆开显示器进行测试,我现在想避免这种情况。用电压表测量,一切正常。但你是对的。我可能不得不这样做......

答:

0赞 Juraj 7/30/2022 #1

在 Adafruit 库中,输入 SPI 引脚的构造函数使用软件 SPI(位刘海)。它与相同引脚上CAN控制器的硬件SPI冲突。使用构造函数

Adafruit_ST7735(int8_t cs, int8_t dc, int8_t rst);

所以

Adafruit_ST7735 tft = Adafruit_ST7735(TFT_CS, TFT_DC, TFT_RST);

评论

0赞 DeThe92 7/30/2022
谢谢,但不幸的是,这并不能解决我的问题。
0赞 DeThe92 7/30/2022
你认为我的问题可能是因为我的显示器来自 Joy-It 吗?我这里有一个数据表:joy-it.net/files/files/Produkte/RB-TFT1.8/...