查看: 8926|回复: 11

[求助] CAN 发送中断问题

[复制链接]

该用户从未签到

3

主题

40

帖子

0

新手上路

Rank: 1

积分
19
最后登录
1970-1-1
发表于 2012-7-4 22:56:05 | 显示全部楼层 |阅读模式
 程序用的是苏州大学的:
……
DisableInterrupts;     //关总中断
    
CANInit(CAN_NUM_TEST,CANbaud,selfLoop,idMask);   //CAN模块初始化
       
 CANEnableRXBuff(CAN_NUM_TEST,FLEXCAN_RX_MB_START,localMsgID);//使能接收缓冲区
 
 EnableCANInterrupt(CAN_NUM_TEST,FLEXCAN_RX_MB_START); / / 使能CAN的MB中断
 EnableInterrupts;                                    //开总中断
……
 
主程序只执行:
CANSendData(CAN_NUM_TEST,FLEXCAN_TX_MB_START, txMsgID, 8, Data);
 
但发现使能了CAN的MB中断(上面红色那句)则会莫名的进中断,不使能CAN的MB中断,则能正常发送数据……
 
我的,FLEXCAN_RX_MB_START为M8,FLEXCAN_TX_MB_START为10!!为什么发送会进中断呢???
我知道答案 目前已有11人回答
回复

使用道具 举报

该用户从未签到

3

主题

40

帖子

0

新手上路

Rank: 1

积分
19
最后登录
1970-1-1
 楼主| 发表于 2012-7-4 22:57:05 | 显示全部楼层

RE:CAN 发送中断问题

注:我的 selfLoop = 0; //1=回环测试模式,0=正常模式
回复 支持 反对

使用道具 举报

  • TA的每日心情
    难过
    2021-12-15 16:01
  • 签到天数: 1 天

    [LV.1]初来乍到

    305

    主题

    4701

    帖子

    0

    中级会员

    Rank: 3Rank: 3

    积分
    373
    最后登录
    2023-8-16
    发表于 2012-7-5 11:19:50 | 显示全部楼层

    RE:CAN 发送中断问题

    你开启的是接收中断,你好好看看对不对?
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    9

    主题

    30

    帖子

    0

    新手上路

    Rank: 1

    积分
    4
    最后登录
    1970-1-1
    发表于 2012-7-5 14:53:39 | 显示全部楼层

    RE:CAN 发送中断问题

    若你使用的是苏州大学的K60核心子板硬件做此实验的,首先要按照《嵌入式系统原理与实践—ARM Cortex-M4 Kinetis微控制器》一书的P259图10-1所示自己搭建一个最简单的无须CAN收发器的电路连接,再将K60的CAN引脚连接自此电路上。苏州大学的K60核心子板并没有设计CAN收发器电路。
    若你使用了图10-1的电路的话,当一个节点在总线上发送数据时,是能收到自己发送的数据的,你使能了CAN接受中断,自然便会触发接受中断了。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    3

    主题

    40

    帖子

    0

    新手上路

    Rank: 1

    积分
    19
    最后登录
    1970-1-1
     楼主| 发表于 2012-7-10 21:18:49 | 显示全部楼层

    回复:CAN 发送中断问题

    回复第 3 楼 于2012-07-05 11:19:50发表:
    你开启的是接收中断,你好好看看对不对?
     
    我本来就是开启接受中断,我程序是想接受的数据后就发送特定的数据,但是我发现开启接受中断后,发送数据时也会进入中断!!
    即相当于开启了自环的模式!!!!
     
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    3

    主题

    40

    帖子

    0

    新手上路

    Rank: 1

    积分
    19
    最后登录
    1970-1-1
     楼主| 发表于 2012-7-10 21:21:08 | 显示全部楼层

    回复:CAN 发送中断问题

    回复第 3 楼 于2012-07-05 11:19:50发表:
    你开启的是接收中断,你好好看看对不对
    ------------------------------------
    我的本意就是开启接受中断!!我的程序本来是想接受到数据后就发送数据,但是我发现开启了接受中断的时候,在发送数据的时候也会进入中断,相当于自环模式的那样!!!!!!!!
     
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    3

    主题

    40

    帖子

    0

    新手上路

    Rank: 1

    积分
    19
    最后登录
    1970-1-1
     楼主| 发表于 2012-7-10 21:37:34 | 显示全部楼层

    RE:CAN 发送中断问题

    具体一点:
    我的MB8发送数据帧成功则中断标志寄存器IFLAG中的BUF8I位(即MB8发送完成标志位)将被置位。但允许中断掩码寄存器IMASK的BUF8M位我没有设置置位,本来是不应该将触发MB0中断。
    我的接受是MB10,中断掩码寄存器IMASK的BUF10M是设置了置位,即接受是会进入中断。
    可我发送数据的时候发现当我一发送数据成功即IFLAG中的BUF8I位会置位,但IMASK的BUF8M位不会置位,这是正确的。
    可!!!关键是这个时候IMASK的BUF10M,IFLAG中的BUF10I会置位,即进入中断,即自己发送的数据后自己进入接受中断!!!!!
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    3

    主题

    40

    帖子

    0

    新手上路

    Rank: 1

    积分
    19
    最后登录
    1970-1-1
     楼主| 发表于 2012-7-10 21:39:13 | 显示全部楼层

    回复:CAN 发送中断问题

    回复第 4 楼 于2012-07-05 14:53:39发表:
    若你使用的是苏州大学的K60核心子板硬件做此实验的,首先要按照《嵌入式系统原理与实践—ARM Cortex-M4 Kinetis微控制器》一书的P259图10-1所示自己搭建一个最简单的无须CAN收发器的电路连接,再将K60的CAN引脚连接自此电路上。苏州大学的K60核心子板并没有设计CAN收发器电路。
    若你使用了图10-1的电路的话,当一个节点在总线上发送数据时,是能收到自己发送的数据的,你使能了CAN接受中断,自然便会触发接受中断了
    ------------------------------------
    我只是借用苏大的程序,板子自己做的,有CAN收发器!!!但不知道为什么会出现上述现象……
     
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    18

    主题

    82

    帖子

    0

    注册会员

    Rank: 2

    积分
    155
    最后登录
    1970-1-1
    发表于 2013-4-15 09:01:19 | 显示全部楼层

    回复:CAN 发送中断问题

    遇到同样问题,顶起来期待高手解答!
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    难过
    2021-12-15 16:01
  • 签到天数: 1 天

    [LV.1]初来乍到

    305

    主题

    4701

    帖子

    0

    中级会员

    Rank: 3Rank: 3

    积分
    373
    最后登录
    2023-8-16
    发表于 2013-4-15 10:20:35 | 显示全部楼层

    RE:CAN 发送中断问题

    如果开启了发送中断和接收中断,在自测模式下,会进入中断。这个时候需要判断是由于发送还是接收引起的中断事件触发。
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /4 下一条

    Archiver|手机版|小黑屋|恩智浦技术社区

    GMT+8, 2024-5-3 10:14 , Processed in 0.141014 second(s), 29 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

    快速回复 返回顶部 返回列表