Arduino-ESP32的CAN波特率设置为1M代码,不用改底层。

5 篇文章 0 订阅
2 篇文章 0 订阅

前面调CAN的时候,发现CAN的实际的波特率是设置的波特率的一半。然后还去看手册,推公式,改底层库的代码。后面发现不用这么麻烦,换一下使用的库和配置函数就行。使用CAN.h头文件的配置函数就会出现CAN的实际的波特率是设置的波特率的一半这个问题。

使用CAN.h头文件包含的库的函数配置,CAN实际波特率是配置波特率的一半
#include <CAN.h>

#define CAN_TX      26
#define CAN_RX      27

void setup() 
{
Serial.begin(115200,SERIAL_8O1);//奇校验
CAN.setPins(CAN_RX,CAN_TX); //设置CAN引脚
  if(!CAN.begin(1000E3)) //配置1M实际只有500K
  {
    Serial.println("Starting CAN failed !");
  }
}
修改库,换写法重新配置CAN。先下载 ESP32-TWAI-CAN 这个库。然后配置CAN,配置多少波特率实际就是多少波特率
#include <ESP32-TWAI-CAN.hpp>

#define CAN_TX      26
#define CAN_RX      27

void setup() 
{
  Serial.begin(115200,SERIAL_8O1);//奇校验
   //CAN.setPins(CAN_RX,CAN_TX);
   ESP32Can.setPins(CAN_TX, CAN_RX);//设置CAN引脚
   // You can set custom size for the queues - those are default
   ESP32Can.setRxQueueSize(50); //设置CAN接收缓冲区大小
   ESP32Can.setTxQueueSize(50); //设置CAN发送缓冲区大小
   ESP32Can.setSpeed(ESP32Can.convertSpeed(1000));//设置波特率为1M

    // You can also just use .begin()..
    if(ESP32Can.begin()) 
    {
        Serial.println("CAN bus started!");
    } else {
        Serial.println("CAN bus failed!");
    } 
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值