OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 4200|回复: 6

CAN总线通信发送数据问题,数据发送一会儿就不能发送了

[复制链接]

3

主题

14

帖子

0

精华

初级会员

Rank: 2

积分
78
金钱
78
注册时间
2014-1-24
在线时间
11 小时
发表于 2021-11-2 11:24:03 | 显示全部楼层 |阅读模式
本帖最后由 luxingwang 于 2021-11-2 11:25 编辑

各位大侠:
              最近我做了1套CAN通信的工装,下面挂了3个设备,第一个设备是上传功率和接收频率数据,主芯片是采用的STM32F103C8T6,第二个设备是接收PC上位机下发的数据,第三个设备是上传采集的电压、电流。在工作过程中,第一个设备上传功率数据,工作几分钟后就不能上传数据了,用示波器测量CANTX引脚时,无波形输出波形(正常的时候是有波形的),但可以正常接收到PC发送的频率数据。第二个设备和第三个设备均可以正常工作。
             我使用MDK5的在线DEBUG监测第一个设备的CAN发送函数(Can_Send_Msg)的返回值,发现正常发送数据和无法发送数据时,返回值均为0,根据函数的定义,返回值为0,说明数据是发送成功了的。我现在请教一下,判断发送查询是否成功,还有其他方式吗?
1.jpg
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

0

主题

668

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1926
金钱
1926
注册时间
2021-8-13
在线时间
262 小时
发表于 2021-11-2 12:35:41 | 显示全部楼层
发送成功和失败了分别打印点什么试试
回复 支持 反对

使用道具 举报

3

主题

14

帖子

0

精华

初级会员

Rank: 2

积分
78
金钱
78
注册时间
2014-1-24
在线时间
11 小时
 楼主| 发表于 2021-11-2 13:06:14 | 显示全部楼层
本帖最后由 luxingwang 于 2021-11-2 13:09 编辑

我用将发送成功的标志位 SendFlag=Can_Send_Msg( Send_Data,8,stdid|0x0100); 然后我在mdk5里用debug监测SendFlag的值,一直显示是0,根据函数的返回值判断,0就是代表发送成功了的
回复 支持 反对

使用道具 举报

12

主题

3397

帖子

1

精华

论坛元老

Rank: 8Rank: 8

积分
8670
金钱
8670
注册时间
2020-5-11
在线时间
4138 小时
发表于 2021-11-2 14:10:30 | 显示全部楼层
看是不是REC或TEC在作怪
傲游截图20211102140913.jpg
专治疑难杂症
回复 支持 反对

使用道具 举报

3

主题

14

帖子

0

精华

初级会员

Rank: 2

积分
78
金钱
78
注册时间
2014-1-24
在线时间
11 小时
 楼主| 发表于 2021-11-2 14:41:18 | 显示全部楼层
刚监测到CAN_ESR的TEC[7:0]和LEC[2:0],当LEC[2:0]=0x04时,TEC[7:0]就从某一个值按1递减,直到为0;查手册LEC[2:0]=0x04是隐性位错误,那请问一下这个是硬件问题嘛还是软件问题呀。
回复 支持 反对

使用道具 举报

3

主题

14

帖子

0

精华

初级会员

Rank: 2

积分
78
金钱
78
注册时间
2014-1-24
在线时间
11 小时
 楼主| 发表于 2021-11-2 14:42:21 | 显示全部楼层
LcwSwust 发表于 2021-11-2 14:10
看是不是REC或TEC在作怪


刚监测到CAN_ESR的TEC[7:0]和LEC[2:0],当LEC[2:0]=0x04时,TEC[7:0]就从某一个值按1递减,直到为0;查手册LEC[2:0]=0x04是隐性位错误,那请问一下这个是硬件问题嘛还是软件问题呀
回复 支持 反对

使用道具 举报

12

主题

3397

帖子

1

精华

论坛元老

Rank: 8Rank: 8

积分
8670
金钱
8670
注册时间
2020-5-11
在线时间
4138 小时
发表于 2021-11-2 14:53:58 | 显示全部楼层
luxingwang 发表于 2021-11-2 14:42
刚监测到CAN_ESR的TEC[7:0]和LEC[2:0],当LEC[2:0]=0x04时,TEC[7:0]就从某一个值按1递减,直到为0 ...

这我就不清楚了,我不太了解CAN,只是翻了下文档。
建议用示波器看下总线波形以及单片机引脚处的波形。
专治疑难杂症
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-11 05:45

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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