dělám komunikaci mezi Arduinem a deskou s STM32F042. Používám MCP2515 + Arduino UNO. Kód na vysílači (STM) funguje správně a z debuggeru je jasně vidět, že zprávu odešle. Nicméně se na seriovém portu nic neobjeví. CAN je nastavený na 1000kbps, baudrate je také v pořádku (testové zprávy se zobrazují). Níže přikládám kód Arduina a pinout.
VCC - 5V
GND - GND
CS - 10
SO - 12
SI - 11
SCK - 13
INT - 2
Spojení s STM deskou mám CAN_H - CAN_H a CAN_L - CAN_L
Kód: Vybrat vše
#include <SPI.h>
#include <mcp2515.h>
struct can_frame canMessage;
MCP2515 mcp2515(10);
void setup() {
// put your setup code here, to run once:
SPI.begin();
Serial.begin(115200);
mcp2515.reset();
mcp2515.setBitrate(CAN_1000KBPS,MCP_8MHZ);
mcp2515.setNormalMode();
Serial.println("CAN TEST");
}
void loop() {
// put your main code here, to run repeatedly:
if (mcp2515.readMessage(&canMessage) == MCP2515::ERROR_OK){
Serial.print(canMessage.data[0]);
Serial.print("\n");
Serial.print(canMessage.data[1]);
Serial.print("\n");
Serial.print(canMessage.data[2]);
Serial.print("\n");
Serial.print(canMessage.data[3]);
Serial.print("\n");
Serial.print(canMessage.data[4]);
Serial.print("\n");
Serial.println();
}
}