ESP32用Arduino编程实现CAN通讯

ESP32 Arduino CAN通信


想用ESP32实现CAN通讯,上网查有一篇文章关于ESP32实现CAN通讯的。实验了,可以用,但当CAN的线断开会发生死机,必须是CANH和CANL线保持连接才能正常工作。在库管理器中查找,CAN的库还是挺多的,发现了印度人Sandeep Mistry写的CAN库。前面的文章介绍过这个人写的库,是SX1278的库。说一下这个库的应用过程。

库下载

在库管理器中找到CAN:
在这里插入图片描述
从介绍可以看出,这个库可以被ESP32使用。并且不用Microchip的MCP2515,使用TJA1000兼容的模块。在这里下载就可以了。

硬件连接

在软件的介绍上说要使用3.3V的CAN transceiver. 我采用了TJA1050,这个模块的电源是+5V的,如果不接+5V,程序不能正常工作。
Requires an external 3.3V CAN transceiver, such as a TI SN65HVD230.

CAN transceiver ESP32
3V3 3V3
GND GND
CTX GPIO 5
CRX GPIO 4

CTX and CRX pins 可以改变,在使用begin函数前用 CAN.setPins(rx, tx). 在这里因为我采用了TJA1050,电源换成了+5V,接线正确后就不会出现死机了。

程序

用例子程序的发送和接收就可以实验了。通讯很简单。这个程序只要是连线正确,在发送信息后不会因为CAN通讯线断开而死机。

猜你喜欢

转载自blog.csdn.net/weixin_44481398/article/details/121878538