STM32F407芯片CAN数据发送邮箱寄存器状态不对的问题

2019-07-20 14:12发布

第一次使用STM32F407的芯片。调试CAN通讯,首先按照库函数,分别配置了125k,100k的波特率。能够使用CAN分析仪接收到数据。但是发现接收的数据不是自己想要的标准的数据帧,而是拓展的远程帧。
于是查看芯片手册,找到了CAN  发送邮箱标识符寄存器 (CAN_TIxR) (x=0..2)然后仿真,发现发送邮箱里的TIR寄存器不受控制。。。 。。。 所以发出的数据不对。为什么TIR寄存器不受控制呢?代码:发送时赋值的情况。
u8 mbox;
  u16 i=0;
  CanTxMsg TxMessage;
  TxMessage.StdId=0x12;                                         // ±ê×¼±ê궷û
  TxMessage.ExtId=0x12;                                   // éèÖÃà©Õ1±êê¾·û
  TxMessage.IDE=CAN_Id_Standard; // ±ê×¼Ö¡
//  TxMessage.RTR=CAN_RTR_Data;                 // êy¾YÖ¡
//        TxMessage.IDE=CAN_Id_Extended; // ±ê×¼Ö¡
  TxMessage.RTR=CAN_RTR_Data;                 // êy¾YÖ¡
  TxMessage.DLC=len;                                                // òa·¢ËíμÄêy¾Y3¤¶è
  for(i=0;i<len;i++)
  TxMessage.Data=msg;
仿真时监控的图片:


求高手!

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
4条回答
剑舞
1楼-- · 2019-07-20 15:49
问题解决了,在查看例子教程和芯片手册发现
1、CAN1是主,CAN2是从。
2、例子教程里用的都是CAN1。我用开发板测试也没有问题。
现在使用的这块板子只用了CAN2,CAN1预留,刚开始没有初始化CAN1,现在加上CAN1初始化就好了~
剑舞
2楼-- · 2019-07-20 20:30

图片地址在这里,刚才发帖出了点问题
正点原子
3楼-- · 2019-07-20 23:01
 精彩回答 2  元偷偷看……
剑舞
4楼-- · 2019-07-20 23:29
也是醉了,想要使用CAN2必须配置CAN1。不配置CAN1的话,CAN2还能工作,还能发出数据,有点误导人哈

一周热门 更多>