OpenEdv-开源电子网

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

用CAN分析仪与STM32的CAN口进行发送数据和接收数据

[复制链接]

6

主题

27

帖子

0

精华

初级会员

Rank: 2

积分
86
金钱
86
注册时间
2014-8-22
在线时间
2 小时
发表于 2014-11-27 09:46:17 | 显示全部楼层 |阅读模式
5金钱
       本人在搞CAN这一部分,我把CAN初始设置好了,用CAN分析仪与STM32的CAN口进行发送数据和接收数据,发现两个问题,CAN分析仪发送数据,第一:STM32要等好几分钟才能收到 ,正常情况下不是发出去就能收到吗???
 第二:ID只能设置成0x0000才能进行收发,设置成其他的ID,CAN分析仪发送数据就接收不到数据了,请各位大神帮帮忙啊,小弟能力有限怎么想也想不出来啊

最佳答案

查看完整内容[请看2#楼]

不好意思,我的文件被加密了! 现在重新上传一份,必看.txt里面有需要修改的地方,测试一下,看能否一直接收!
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

2

主题

90

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1107
金钱
1107
注册时间
2014-8-9
在线时间
192 小时
发表于 2014-11-27 09:46:18 | 显示全部楼层
小牛试大刀 发表于 2016-8-17 20:01
兄弟您的,main里面乱码了,您在发一份吧,谢谢

不好意思,我的文件被加密了!
现在重新上传一份,必看.txt里面有需要修改的地方,测试一下,看能否一直接收!

实验26 CAN收发实验.zip

389.6 KB, 下载次数: 748

CAN

回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165524
金钱
165524
注册时间
2010-12-1
在线时间
2116 小时
发表于 2014-11-27 10:16:03 | 显示全部楼层
帮顶....
回复

使用道具 举报

6

主题

27

帖子

0

精华

初级会员

Rank: 2

积分
86
金钱
86
注册时间
2014-8-22
在线时间
2 小时
 楼主| 发表于 2014-11-27 10:17:51 | 显示全部楼层
回复【2楼】正点原子:
---------------------------------
原子哥你知道是什么问题吗
回复

使用道具 举报

58

主题

6294

帖子

1

精华

资深版主

Rank: 8Rank: 8

积分
11543
金钱
11543
注册时间
2014-4-1
在线时间
1315 小时
发表于 2014-11-27 11:01:54 | 显示全部楼层
有分析仪,事情就好办多了,至少有一头是靠谱的。先调试“分析仪发送、STM32接收”,成功以后再反过来。

延时这么久,肯定不对头。你确定分析仪正确使用了吗?最好用示波器观察波形。
回复

使用道具 举报

6

主题

27

帖子

0

精华

初级会员

Rank: 2

积分
86
金钱
86
注册时间
2014-8-22
在线时间
2 小时
 楼主| 发表于 2014-11-27 11:09:29 | 显示全部楼层
回复【4楼】xuande:
---------------------------------
我还有逻辑分析仪,应该是正确使用的吧,我用CAN分析仪侦测出STM32的波特率为500K,延时太久了,坑定是不对的,我把CAN设置检查了几遍也没问题
回复

使用道具 举报

58

主题

6294

帖子

1

精华

资深版主

Rank: 8Rank: 8

积分
11543
金钱
11543
注册时间
2014-4-1
在线时间
1315 小时
发表于 2014-11-27 11:14:12 | 显示全部楼层
红点是分析仪发出的,绿点是分析仪收到的数据吗?

貌似分析仪发出(红),STM32收到以后,再发送数据回来了,是吗?

如果是这样,LZ步子太大了,收、发都在工作。你必须先调试STM32的接收功能,要用仿真器观察。
回复

使用道具 举报

6

主题

27

帖子

0

精华

初级会员

Rank: 2

积分
86
金钱
86
注册时间
2014-8-22
在线时间
2 小时
 楼主| 发表于 2014-11-27 11:21:10 | 显示全部楼层
回复【6楼】xuande:
---------------------------------
正如大神所说的,我是等CAN分析仪发送完成,我紧接着就接受的,虽然延迟很大,但是收的数据是对的。

还有用J_LINK怎么看那
回复

使用道具 举报

58

主题

6294

帖子

1

精华

资深版主

Rank: 8Rank: 8

积分
11543
金钱
11543
注册时间
2014-4-1
在线时间
1315 小时
发表于 2014-11-27 11:36:25 | 显示全部楼层
带仿真器,在STM32中设置接收断点。
回复

使用道具 举报

8

主题

193

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
303
金钱
303
注册时间
2012-12-19
在线时间
16 小时
发表于 2014-11-27 19:35:32 | 显示全部楼层
我原来用CAN收到数据后依靠查询标志位返回数据也是有延时没那么大,后来用中断就好了,基本上没有延时。
调试CAN要耐心。
检查硬件上匹配电阻加了吗?
设置断点每次发送是否都能收到,收到的数据是否正确,返回数据是否能发送,依次确认。
回复

使用道具 举报

6

主题

27

帖子

0

精华

初级会员

Rank: 2

积分
86
金钱
86
注册时间
2014-8-22
在线时间
2 小时
 楼主| 发表于 2014-11-28 20:23:12 | 显示全部楼层
回复【9楼】sdwhupk:
---------------------------------
这几天出去有点事,还没有实验用断点,我没有加匹配电阻,CAN分析仪有那个匹配电阻,我用的也是中断,明天我再试试看,有问题还要问你们呢
回复

使用道具 举报

11

主题

55

帖子

0

精华

初级会员

Rank: 2

积分
158
金钱
158
注册时间
2016-4-25
在线时间
31 小时
发表于 2016-8-17 09:34:23 | 显示全部楼层
xuande 发表于 2014-11-27 11:01
有分析仪,事情就好办多了,至少有一头是靠谱的。先调试“分析仪发送、STM32接收”,成功以后再反过来。

...

大神,我有个CAN分析仪的问题想问问您。就是,用战舰的板子,下载CAN例程。在正常模式下,通过CAN分析仪接收数据,只能接收到16帧数据,就再也接收不到了,波特率为1M。但,我把波特率调低,调为200K,就能用CAN分析仪一直接收到。而且,我用别的开发板接收时,就也可以一直接收到波特率1M时候的数据。同事1M波特率,用CAN分析仪是可以的。求大神,谢谢您了。
回复

使用道具 举报

58

主题

6294

帖子

1

精华

资深版主

Rank: 8Rank: 8

积分
11543
金钱
11543
注册时间
2014-4-1
在线时间
1315 小时
发表于 2016-8-17 09:55:46 | 显示全部楼层
小牛试大刀 发表于 2016-8-17 09:34
大神,我有个CAN分析仪的问题想问问您。就是,用战舰的板子,下载CAN例程。在正常模式下,通过CAN分析仪 ...


十年前做过,
想了半天,觉得会不会是硬件方面的原因?

回复

使用道具 举报

11

主题

55

帖子

0

精华

初级会员

Rank: 2

积分
158
金钱
158
注册时间
2016-4-25
在线时间
31 小时
发表于 2016-8-17 11:18:21 | 显示全部楼层
xuande 发表于 2016-8-17 09:55
十年前做过,
想了半天,觉得会不会是硬件方面的原因?

用战舰的板子试完,我用自己做的板子也试了,同样1M的波特率,也是收到十几帧就不在收了,用别的板子接收是可以的,降低波特率也是可以一直收到的。这会是哪方面的问题很费解
回复

使用道具 举报

2

主题

90

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1107
金钱
1107
注册时间
2014-8-9
在线时间
192 小时
发表于 2016-8-17 14:30:26 | 显示全部楼层
小牛试大刀 发表于 2016-8-17 11:18
用战舰的板子试完,我用自己做的板子也试了,同样1M的波特率,也是收到十几帧就不在收了,用别的板子接收 ...

现在也是刚刚入手CAN,用战舰的和CAN分析仪,将原子的程序修改波特率到1M,没有发现上面的问题!(自己也是小白)
回复

使用道具 举报

11

主题

55

帖子

0

精华

初级会员

Rank: 2

积分
158
金钱
158
注册时间
2016-4-25
在线时间
31 小时
发表于 2016-8-17 16:35:22 | 显示全部楼层
wx389390063 发表于 2016-8-17 14:30
现在也是刚刚入手CAN,用战舰的和CAN分析仪,将原子的程序修改波特率到1M,没有发现上面的问题!(自己也 ...

我的一开始改了,然后发现不行,后来改都没改就在正常模式下,用按键一个个按,只能发送16帧,我都很费解了,兄弟,如果可以把你改的代码发我一下可以吗,我试试,谢了
回复

使用道具 举报

2

主题

90

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1107
金钱
1107
注册时间
2014-8-9
在线时间
192 小时
发表于 2016-8-17 18:04:08 | 显示全部楼层
小牛试大刀 发表于 2016-8-17 16:35
我的一开始改了,然后发现不行,后来改都没改就在正常模式下,用按键一个个按,只能发送16帧,我都很费解 ...

可以看看的!

实验26 CAN收发实验.zip

3.98 MB, 下载次数: 372

CAN_1M

回复

使用道具 举报

11

主题

55

帖子

0

精华

初级会员

Rank: 2

积分
158
金钱
158
注册时间
2016-4-25
在线时间
31 小时
发表于 2016-8-17 19:54:09 | 显示全部楼层

谢了,我调试一下看看情况
回复

使用道具 举报

11

主题

55

帖子

0

精华

初级会员

Rank: 2

积分
158
金钱
158
注册时间
2016-4-25
在线时间
31 小时
发表于 2016-8-17 20:01:00 | 显示全部楼层

兄弟您的,main里面乱码了,您在发一份吧,谢谢
回复

使用道具 举报

11

主题

55

帖子

0

精华

初级会员

Rank: 2

积分
158
金钱
158
注册时间
2016-4-25
在线时间
31 小时
发表于 2016-8-18 10:33:27 | 显示全部楼层
wx389390063 发表于 2016-8-18 09:25
不好意思,我的文件被加密了!
现在重新上传一份,必看.txt里面有需要修改的地方,测试一下,看能否一直 ...

你的在正常模式下,CAN分析仪接收的时候,会不会发完16帧数据就卡一下,然后在继续发,不像环回模式下,一直很顺畅的一直发。
回复

使用道具 举报

11

主题

55

帖子

0

精华

初级会员

Rank: 2

积分
158
金钱
158
注册时间
2016-4-25
在线时间
31 小时
发表于 2016-8-18 10:57:26 | 显示全部楼层
wx389390063 发表于 2016-8-18 09:25
不好意思,我的文件被加密了!
现在重新上传一份,必看.txt里面有需要修改的地方,测试一下,看能否一直 ...

我改了一个地方就能收到CAN_InitStructure.CAN_ABOM=DISABLE;改成ENABLE就能一直收到,而且就出现了我刚才给你回的,发完16帧就会卡顿一下。肯定还是有不对的地方,很费解
回复

使用道具 举报

2

主题

90

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1107
金钱
1107
注册时间
2014-8-9
在线时间
192 小时
发表于 2016-8-18 11:21:56 | 显示全部楼层
我按照你的方式改了,我的测试也是在正常模式下测试的,CAN_InitStructure.CAN_ABOM=ENABLE,发完16帧不会卡顿,一直很流畅的,感觉你的可能是硬件问题!
回复

使用道具 举报

2

主题

90

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1107
金钱
1107
注册时间
2014-8-9
在线时间
192 小时
发表于 2016-8-18 11:24:39 | 显示全部楼层
wx389390063 发表于 2016-8-18 11:21
我按照你的方式改了,我的测试也是在正常模式下测试的,CAN_InitStructure.CAN_ABOM=ENABLE,发完16帧不会 ...

这个是一直接收CAN数据的截图!
回复

使用道具 举报

2

主题

90

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1107
金钱
1107
注册时间
2014-8-9
在线时间
192 小时
发表于 2016-8-18 11:25:26 | 显示全部楼层
wx389390063 发表于 2016-8-18 11:24
这个是一直接收CAN数据的截图!

这个是截图!

CAN

CAN
回复

使用道具 举报

2

主题

90

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1107
金钱
1107
注册时间
2014-8-9
在线时间
192 小时
发表于 2016-8-19 17:29:41 | 显示全部楼层
楼主的问题解决了吗?
回复

使用道具 举报

2

主题

90

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1107
金钱
1107
注册时间
2014-8-9
在线时间
192 小时
发表于 2016-8-19 17:30:07 | 显示全部楼层
遇到一个问题:
我的设置在列表模式下:
CAN_FilterInitStructure.CAN_FilterNumber=0; //过滤器0/
// CAN_FilterInitStructure.CAN_FilterMode=CAN_FilterMode_IdMask;  //屏蔽位模式
CAN_FilterInitStructure.CAN_FilterMode=CAN_FilterMode_IdList;  //列表模式
CAN_FilterInitStructure.CAN_FilterScale=CAN_FilterScale_32bit;  //32位宽
CAN_FilterInitStructure.CAN_FilterIdHigh=0x0100; //32位ID
CAN_FilterInitStructure.CAN_FilterIdLow=0x0000;
CAN_FilterInitStructure.CAN_FilterMaskIdHigh=0x0200;//32位MASK
CAN_FilterInitStructure.CAN_FilterMaskIdLow=0x0000;
CAN_FilterInitStructure.CAN_FilterFIFOAssignment=CAN_Filter_FIFO0;//过滤器0关联到FIFO0
CAN_FilterInitStructure.CAN_FilterActivation=ENABLE;//激活过滤器0
CAN_FilterInit(&CAN_FilterInitStructure);   //滤波器初始化

CAN分析仪的ID设置为:0x0100 0000或者0x0200 0000发送报文,战舰开发板的CAN都收不到报文,战舰开发板发送的报文,CAN分析仪可以接收到(通信正常)!帮忙解答一下!
http://www.openedv.com/thread-82057-1-1.html
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-5 09:41

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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