infieon TriCore架构 TC1784 CAN使用方法

一、需求

通过CAN1、CAN2进行数据收发 波特率250K

二、CAN使用方法介绍

模仿STM32   使用TC1784 CAN fifo架构   配置CAN发送3个发送邮箱(three transmit mailboxes)  配置CAN接收fifo (one fifo wiht three stages)

三、开发历程

1、DAvE配置

CAN Nodes  Node0  配置CAN1对应的管脚  使能init  使能中断TRIE  选择中断节点 Use MultiCAN SRN0  波特率配置为250Kpbs

CAN Nodes  Node1 类似配置 选择中断节点 Use MultiCAN SRN1

Lists配置

LIst1(node0) MO 000 --- MO003(用于接收fifo)  MO 004--- MO007(用于发送fifo)

LIst2(node0) MO 032 --- MO035(用于接收fifo)  MO 036--- MO039(用于发送fifo)

MOs

MO 0 配置DIR为接收  其余根据情况配置  FIFO 选择Receive fifo base object  选择BOT MO0 选择TOP MO3 选择SEL为MO2    MO中断不需要配置   

MO 1-MO3 不需要配置 默认即可

MO 4 配置DIR为发送  其余根据情况配置  FIFO 选择Transmit fifo base object  选择BOT MO4 选择TOP MO7选择SEL为MO6   MO中断不需要配置 

CAN2 MO配置类似

SRNS 使能SRE node0 node1  

2、接收与发送测试

//LAUTERBACH仿真上位机  查看CAN发送与接收

CPU——》Peripherals——》MultiCAN Message Object 0

3、CAN接收与发送

接收代码

在中断 CAN_viSRN0  if RXOK  添加如下代码

CAN_SWObj rxcan1Obj;

ubyte numObj = 0;

CAN_vGETMsgObj(numObj,&rxcan1Obj);

发送代码

主循环中 添加如下代码

CAN_SWObj txcan1Obj;

ubyte txObj_u8 = 4;

txcan1Obj.usMOCfg = 0x80;  数据长度 8字节

txcan1Obj.uwID = 0x188;

txcan1Obj.ubdata[0] = 0x11;

txcan1Obj.ubdata[0] = 0x17;

CAN_ubWriteFIFO(txObj_u8, &Txcanobj);

注意:主循环中  发送不加延时时   CAN接收不到数据   调整接收ID比发送ID   也收不到 必须先接收到 再发送才可以  待研究。增加延时,可以正常收发

  • 6
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值