Boa Tarde pessoal,
Tenho um módulo veicular que faz envio de informações utilizando protocolo CAN, Estou com dificuldade em receber uma mensagem que está sendo enviada com 16 bits.
Acredito que o protocolo CAN envie somente 8 bits por pacote, então caso o valor de 1.3 fosse enviado, acredito que eu devesse receber um byte contendo 1 e o outro contendo 3, porém ao invés disso, estou recebendo sempre 1 e 0. Alguém que já realizou uma comunicação parecida poderia me ajudar?
Mensagem que eu recebo : 102 1 0 39 69 0 0 0
Mensagem que eu acho que deveria receber: 102 1 3 39 69 0 0 0
Meu código:
#include <ESP32CAN.h>
#include <CAN_config.h>
#include <driver/can.h>
/* the variable name CAN_cfg is fixed, do not change */
CAN_device_t CAN_cfg;
void setup() {
Serial.begin(115200);
Serial.println("iotsharing.com CAN demo");
/* set CAN pins and baudrate */
CAN_cfg.speed=CAN_SPEED_250KBPS;
CAN_cfg.tx_pin_id = GPIO_NUM_5;
CAN_cfg.rx_pin_id = GPIO_NUM_4;
/* create a queue for CAN receiving */
CAN_cfg.rx_queue = xQueueCreate(10,sizeof(CAN_frame_t));
//initialize CAN Module
ESP32Can.CANInit();
}
void loop() {
CAN_frame_t rx_frame;
can_message_t message;
//receive next CAN frame from queue
if(xQueueReceive(CAN_cfg.rx_queue,&rx_frame, 3*portTICK_PERIOD_MS)==pdTRUE){
//do stuff!
if(rx_frame.FIR.B.FF==CAN_frame_std)
printf("New standard frame");
else
printf("New extended frame");
if(rx_frame.FIR.B.RTR==CAN_RTR)
printf(" RTR from 0x%08x, DLC %d\r\n",rx_frame.MsgID, rx_frame.FIR.B.DLC);
else{
printf(" from 0x%08x, DLC %d\n",rx_frame.MsgID, rx_frame.FIR.B.DLC);
for(int i = 0; i < 8; i++){
printf("%d\t", rx_frame.data.u8);
}
}
}
}
Tags:
Boa noite GDP,
recomendo que V leia Sugestão,
em seguida remva o código que postou na área de texto do seu tópico, e o anexe um arquivo
contendo o código.
RV
Boa noite,
Informe qual é o carro e qual é o protocolo CAN do seu carro.
Existem vários protocolos.
https://www.csselectronics.com/screen/page/simple-intro-to-can-bus/...
Você tem um diagrama de como fez as ligações? Qual interface usou?
https://www.instructables.com/id/CAN-Bus-Sniffing-and-Broadcasting-...
http://www.volkspage.net/technik/ssp/ssp/SSP_238.pdf
https://learn.sparkfun.com/tutorials/can-bus-shield-hookup-guide?_g...
https://learn.sparkfun.com/tutorials/getting-started-with-obd-ii?_g...
Bem-vindo a
Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)
© 2024 Criado por Marcelo Rodrigues. Ativado por