查看: 2782|回复: 3

[求助] KEA128 CAN发送数据包问题

[复制链接]

该用户从未签到

19

主题

78

帖子

0

中级会员

Rank: 3Rank: 3

积分
308
最后登录
2017-12-4
发表于 2016-8-17 10:59:25 | 显示全部楼层 |阅读模式
如果我连在CAN线上,将CANH,CANL悬空就会卡在这一步。
这是为什么?

     txEmptyBuf = 0;
     do
     {
         p->CANTBSEL = p->CANTFLG;
         txEmptyBuf = p->CANTBSEL;
     }
     while (!txEmptyBuf);
                 

我知道答案 目前已有3人回答
回复

使用道具 举报

  • TA的每日心情

    2016-10-20 09:45
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    80

    主题

    1038

    帖子

    5

    版主

    Rank: 7Rank: 7Rank: 7

    积分
    2223
    最后登录
    2023-11-20
    发表于 2016-8-17 11:27:23 | 显示全部楼层
    CAN悬空,数据发送不出去,而你一直在发送数据导致Buffer满了,程序中 while (!txEmptyBuf); 一直在寻找空的Buffer,所以会卡这里
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    19

    主题

    78

    帖子

    0

    中级会员

    Rank: 3Rank: 3

    积分
    308
    最后登录
    2017-12-4
     楼主| 发表于 2016-8-17 15:26:16 | 显示全部楼层
    花溪村长 发表于 2016-8-17 11:27
    CAN悬空,数据发送不出去,而你一直在发送数据导致Buffer满了,程序中 while (!txEmptyBuf); 一直在寻找空 ...

    那怎样检测是否连接在can线上?
    或者 我一直发送,可不可以把这句while (!txEmptyBuf); 注释掉
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    734

    主题

    6393

    帖子

    0

    超级版主

    Rank: 8Rank: 8

    积分
    26004
    最后登录
    2025-10-24
    发表于 2016-8-18 09:44:07 | 显示全部楼层
    673835452 发表于 2016-8-17 15:26
    那怎样检测是否连接在can线上?
    或者 我一直发送,可不可以把这句while (!txEmptyBuf); 注释掉 ...

    1.检测是否链接总线
    检查MSCAN_CANRFLG[TSTAT],如果bus 已经处于总线关闭状态,那么说明发送有问题了。

    2.关于KEA的can代码,给你上传个供你参考,是codewarrior的工程:
    Can_test.rar (1.13 MB, 下载次数: 36)
    回复 支持 反对

    使用道具 举报

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

    本版积分规则

    关闭

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

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

    GMT+8, 2025-10-26 02:27 , Processed in 0.094086 second(s), 25 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

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