Это Veysel. Моя плата - STM32 Nucleo F429ZI, и я использую Mbed-os 6.6.0. Я могу читать данные CANBus в моей машине, но не могу писать на шину. Я пробовал это с двумя STM32 (те же платы), и мои трансиверы - SN65HVD230, поэтому я знаю, что могу читать по CANBus, но не могу писать.
Я пробовал, https://os.mbed.com/users/WiredHome/notebook/can---getting-started/ с одним STM32, и я попробовал
#include "mbed.h"
//Ticker ticker;
DigitalOut led1(LED1);
DigitalOut led2(LED2);
//CAN can1(PD_0, PD_1);
CAN can2(PB_8, PB_9);
DigitalOut led3(LED3);
char counter = 0;
void messageReceivedISR() {
CANMessage msg;
if(can2.read(msg)) {
printf("Message received: %d, from %d\r\n", msg.data[0], msg.id);
if(msg.id == 1100)
led2 = !led2;
if(msg.id == 1102)
led3 = !led3;
}
}
int main() {
can2.frequency(1000000);
can2.reset();
can2.attach(&messageReceivedISR, CAN::RxIrq);
while(1) {
if(can2.write(CANMessage(1130, &counter, 1))) {
printf("loop send()\r\n");
counter++;
printf("Message sent: %d\r\n", counter);
led1 = !led1;
}
// wait_ms(500);
}
}
Я переключаю адрес записи для обоих stm32 Это трижды переполняется почтовый ящик и останавливаюсь. Никто не читал.
Я пробовал напрямую подключиться с помощью одной перемычки от Crx к Ctx, но ничего не изменилось.
Я также пробовал это с STM32 до Teensy (Teensy контролирует светодиодный экран моей машины, он также может читать), но не удалось.
Пожалуйста помоги ?