迪文科技论坛

 找回密码
 立即注册
搜索
查看: 374|回复: 4

【提问】CAN发送问题

[复制链接]
发表于 2023-3-28 15:09:12 | 显示全部楼层 |阅读模式
为什么CAN发送大概几百帧过后就不能发送了,但是能正常接收数据
回复

使用道具 举报

 楼主| 发表于 2023-3-28 15:13:41 | 显示全部楼层
写错了,不是发送几百帧,是短时间内接收几百帧
回复

使用道具 举报

0

主题

4

回帖

1033

积分

金牌会员

Rank: 6Rank: 6

积分
1033
发表于 2023-3-28 16:50:14 | 显示全部楼层
请问您用的什么芯片呢,如果是用的T5L1和T5L2的话,您需要使用到CAN复位的程序  可参考:void canLoadTreat(void)
{
        EA = 0;
        LoadOneFrame();
        EA = 1;
        CanData.CanTxFlag = 1;
        StartTimer(7,timer7time);
        CAN_CR |= 0x04;
}
//对于T5L1和T5L2必须在main函数,while(1)中调用
void CanErrorReset(void)
{
        // EA=0;
        if(CAN_ET&0X20)
        {
                CAN_ET &= 0XDF;
                CAN_CR |= 0X40;
                delay_us(1000);
                CAN_CR &= 0XBF;  
                // CanData.CanTxFlag = 0;
                // if(CanData.CanTxTail != CanData.CanTxHead){
                //         canLoadTreat();
                // }       
        }
        // EA=1;
        if(CanData.CanTxFlag!=0)
        {
                if(GetTimeOutFlag(7))
                {
                        CanData.CanTxFlag = 0;
                        if(CanData.CanTxTail != CanData.CanTxHead){
                                canLoadTreat();
                        }       
                }
        }
}
回复

使用道具 举报

0

主题

5

回帖

99

积分

注册会员

Rank: 2

积分
99
发表于 2023-7-10 21:55:55 | 显示全部楼层
同样的问题,经常是接收到几十或几百帧后,接收不到数据,但是把ECU关掉后再开ECU,T5L又能接收到几十或几百帧,好无语呀,官方就没有1个可靠的范例?
回复

使用道具 举报

0

主题

99

回帖

1495

积分

金牌会员

Rank: 6Rank: 6

积分
1495
发表于 2023-7-11 09:19:50 | 显示全部楼层
附件是T5L1和T5L2的CAN通信模版,请查收。
CAN程序 需要注意几点:
1、出现主动被动错误,软复位
2、CAN中断要访问VP,主程序访问VP要关中断
3、帧间隔最好大于20毫秒


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|迪文科技论坛 ( 京ICP备05033781号-1 )

GMT+8, 2024-11-22 21:09 , Processed in 0.077285 second(s), 22 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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