使用ESP32-Ethernet-Kit开发板,按照esp-idf编程指南编写了can的接收通信。接收不应答导致通信失败。请问具体是什么问题
代码如下:
void app_main(void)
{
twai_general_config_t g_config = TWAI_GENERAL_CONFIG_DEFAULT(TX_GPIO_NUM, RX_GPIO_NUM,
TWAI_MODE_NORMAL);
twai_timing_config_t t_config = TWAI_TIMING_CONFIG_500KBITS();
twai_filter_config_t f_config = TWAI_FILTER_CONFIG_ACCEPT_ALL();
if (twai_driver_install(&g_config, &t_config, &f_config) == ESP_OK) {
printf("Driver installed\n");
} else {
printf("Failed to install driver\n");
return;
}
if(twai_start() == ESP_OK) {
ESP_LOGI(EXAMPLE_TAG,"Driver started\n");
} else {
ESP_LOGI(EXAMPLE_TAG,"Failed to start driver\n");
return;
}
while(1){
//Queue message for transmission
twai_message_t message;
if (twai_receive(&message, pdMS_TO_TICKS(10000)) == ESP_OK) {
if(message.identifier == 0x0002){
if (message.extd) {
printf("Message is in Extended Format\n");
} else {
printf("Message is in Standard Format\n");
}
if (!(message.rtr)) {
for (int i = 0; i < message.data_length_code; i++) {
printf("Data byte %d = %d\n", i, message.data);
}
}
}else{
printf("err id:%d\n",message.identifier);
}
} else {
printf("Failed to receive message\n");
}
memset(message.data, 0, sizeof(message.data));
vTaskDelay(pdMS_TO_TICKS(1000));
}
if(twai_stop() == ESP_OK) {
ESP_LOGI(EXAMPLE_TAG,"Driver stopped\n");
} else {
ESP_LOGI(EXAMPLE_TAG,"Failed to stop driver\n");
return;
}
if (twai_driver_uninstall() == ESP_OK) {
printf("Driver uninstalled\n");
} else {
printf("Failed to uninstall driver\n");
return;
}
}
esp-idf TWAI 接收包没应答导致can通信失败
Re: esp-idf TWAI 接收包没应答导致can通信失败
你指的"接收不应答"是总线上ESP32没有发ACK信号吗?fary_young wrote: 使用ESP32-Ethernet-Kit开发板,按照esp-idf编程指南编写了can的接收通信。接收不应答导致通信失败。请问具体是什么问题
代码如下:
-
- Posts: 11
- Joined: Tue Dec 15, 2020 5:57 am
Re: esp-idf TWAI 接收包没应答导致can通信失败
是的,后来发现是需要外部收发器的原因,已经解决。谢谢
Re: esp-idf TWAI 接收包没应答导致can通信失败
请问你是怎么解决的,遇到了同样的问题
Who is online
Users browsing this forum: No registered users and 109 guests