我使用带有ST7735显示屏和CAN控制器MCP2515的Arduino Nano。通过SPI总线,我想与显示器和CAN控制器进行通信。通过CAN控制器的通信工作顺利。对于显示器,我的问题是它只显示白色屏幕。
这是我当前的设置:CAN设置为图片
我使用这种代码与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);
有人能发现虫子吗?
在Adafruit库中,输入SPI引脚的构造函数使用软件SPI(bit banged(。它与相同引脚上的CAN控制器的硬件SPI冲突。使用构造函数
Adafruit_ST7735(int8_t cs, int8_t dc, int8_t rst);
所以
Adafruit_ST7735 tft = Adafruit_ST7735(TFT_CS, TFT_DC, TFT_RST);