【东软载波ESF0654 PDS开发板活动】 CAN测试

2020-03-08 19:23发布

本帖最后由 6841709 于 2019-12-29 23:58 编辑

ES32F0654 是东软推出的第一款带CAN外设的MCU,申请开发板的主要原因也是看中了这点。开发板应该也是为了主推这个功能,特意将CAN接口独立出来,方便接CAN收发器。要测试这个功能,需要有一个5V的CAN收发器,比如常见的TJA1050,和一个CAN分析仪。
下面推荐一下,我使用的收发器和分析仪的购买链接:https://nirenelec.taobao.com

CAN收发器接线 CAN收发器接线 CAN分析仪 CAN分析仪

如果使用过STM32的CAN控制器,那么再使用这款的话,是很容易上手的,感觉使用方式都差不多。

180545e08ca9dd06e6.png

CAN波特率的计算方式也一样,如下:
769895e08c82c9a237.png


具体计算方式为:PCLK/(psc)/((sjw+1)+(seg1+1)+(seg2+1))
系统时钟配置为48M时,如下配置CAN波特率=500K
/* Initialize CAN */
h_can.perh        = CAN0;
h_can.rx_msg      = &rx_msg;
h_can.init.psc    = 8;
h_can.init.mode   = CAN_MODE_NORMAL;
h_can.init.sjw    = CAN_SJW_1;
h_can.init.seg1   = CAN_SEG1_7;
h_can.init.seg2   = CAN_SEG2_4;
h_can.init.ttcm   = DISABLE;
h_can.init.abom   = DISABLE;
h_can.init.awk    = DISABLE;
h_can.init.artx   = ENABLE;
h_can.init.rfom   = DISABLE;
h_can.init.txmp   = DISABLE;
h_can.tx_cplt_cbk = can_send_complete;
h_can.rx_cplt_cbk = can_recv_complete;
h_can.error_cbk   = can_error;
ald_can_init(&h_can);

48M/(8)/((0+1)+(6+1)+(3+1)) =500K

例子程序采用非中断发送CAN报文,中断方式接收CAN报文。具体程序,查看附件例子

0条回答

一周热门 更多>