OpenEdv-开源电子网

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

CAN环回模式测试没有问题,但双机通信不能收到

[复制链接]

10

主题

22

帖子

0

精华

初级会员

Rank: 2

积分
70
金钱
70
注册时间
2017-4-25
在线时间
11 小时
发表于 2017-7-4 08:51:46 | 显示全部楼层 |阅读模式
1金钱
CAN环回模式测试没有问题,然后把模式从LoopBack 改为Normal,但双机通信不能收到配置是PB8 PB9作为输出IO,经过收发器在经过另一个板子的收发器。用示波器在接收端的PB8可以测到接收到的波形,但是can接收器没有收到数据

最佳答案

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

经过仔细分析,当有信号进来的时候是可以触发CAN输入中断的,相应的数据和标志都正确。但是不能响应动作。是因为开发板的按键是悬空的,同时程序的GPIO也配置为浮空输入,导致程序一直在按键扫描程序里,后改浮空输入为下拉输入,搞定
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

10

主题

22

帖子

0

精华

初级会员

Rank: 2

积分
70
金钱
70
注册时间
2017-4-25
在线时间
11 小时
 楼主| 发表于 2017-7-4 08:51:47 | 显示全部楼层
经过仔细分析,当有信号进来的时候是可以触发CAN输入中断的,相应的数据和标志都正确。但是不能响应动作。是因为开发板的按键是悬空的,同时程序的GPIO也配置为浮空输入,导致程序一直在按键扫描程序里,后改浮空输入为下拉输入,搞定
回复

使用道具 举报

10

主题

22

帖子

0

精华

初级会员

Rank: 2

积分
70
金钱
70
注册时间
2017-4-25
在线时间
11 小时
 楼主| 发表于 2017-7-4 08:52:48 | 显示全部楼层
CAN环回模式测试没有问题,然后把模式从LoopBack 改为Normal,但双机通信不能收到。。配置是PB8 PB9作为输出IO,经过收发器在经过另一个板子的收发器。用示波器在接收端的PB8可以测到接收到的波形,但是can接收器没有收到数据
回复

使用道具 举报

28

主题

133

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
323
金钱
323
注册时间
2016-11-22
在线时间
66 小时
发表于 2017-7-4 09:00:11 | 显示全部楼层
本帖最后由 ARM学员 于 2017-7-4 09:01 编辑
lanyulong 发表于 2017-7-4 08:52
CAN环回模式测试没有问题,然后把模式从LoopBack 改为Normal,但双机通信不能收到。。配置是PB8 PB9作为输 ...

很明显是你接收端的软件没有配置好呗。STM32外设库里面不是提供有例子工程吗,你按照他的方式配置应该是没问题的。
回复

使用道具 举报

10

主题

22

帖子

0

精华

初级会员

Rank: 2

积分
70
金钱
70
注册时间
2017-4-25
在线时间
11 小时
 楼主| 发表于 2017-7-4 09:36:38 | 显示全部楼层
ARM学员 发表于 2017-7-4 09:00
很明显是你接收端的软件没有配置好呗。STM32外设库里面不是提供有例子工程吗,你按照他的方式配置应该是 ...

环回模式与双机模式只差别在GPIO和收发器,
回复

使用道具 举报

28

主题

133

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
323
金钱
323
注册时间
2016-11-22
在线时间
66 小时
发表于 2017-7-4 13:37:26 | 显示全部楼层
本帖最后由 ARM学员 于 2017-7-4 13:41 编辑
lanyulong 发表于 2017-7-4 09:36
环回模式与双机模式只差别在GPIO和收发器,

CAN接收中断跳进去了吗?或者你仿真一下,看一看接收的数据寄存器里面有没有值,一步一步调试。还有一个,你是如何断定是CAN接收器没有收到数据的呢
回复

使用道具 举报

0

主题

425

帖子

0

精华

高级会员

Rank: 4

积分
999
金钱
999
注册时间
2016-12-9
在线时间
174 小时
发表于 2017-7-4 18:08:59 | 显示全部楼层
终端电阻?
回复

使用道具 举报

10

主题

22

帖子

0

精华

初级会员

Rank: 2

积分
70
金钱
70
注册时间
2017-4-25
在线时间
11 小时
 楼主| 发表于 2017-7-4 20:21:08 | 显示全部楼层
ARM学员 发表于 2017-7-4 13:37
CAN接收中断跳进去了吗?或者你仿真一下,看一看接收的数据寄存器里面有没有值,一步一步调试。还有一个 ...

我也分析有可能是程序没有进入CAN接收中断。但是没有定位到具体是什么原因。一个板子是F103C8 一个板子是F103ZE,附件是工程,请帮忙看一下,谢谢

can - 双机通信.zip

11.59 MB, 下载次数: 178

回复

使用道具 举报

10

主题

22

帖子

0

精华

初级会员

Rank: 2

积分
70
金钱
70
注册时间
2017-4-25
在线时间
11 小时
 楼主| 发表于 2017-7-4 20:22:55 | 显示全部楼层

终端电阻是有的
回复

使用道具 举报

13

主题

46

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
204
金钱
204
注册时间
2014-12-24
在线时间
48 小时
发表于 2017-7-4 23:53:37 | 显示全部楼层

短距离通信终端电阻作用不大,可以悬空
回复

使用道具 举报

28

主题

133

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
323
金钱
323
注册时间
2016-11-22
在线时间
66 小时
发表于 2017-7-5 08:53:06 | 显示全部楼层
lanyulong 发表于 2017-7-4 20:21
我也分析有可能是程序没有进入CAN接收中断。但是没有定位到具体是什么原因。一个板子是F103C8 一个板子是 ...

确定一下发送和接收配置的波特率是否是一样的。
回复

使用道具 举报

10

主题

22

帖子

0

精华

初级会员

Rank: 2

积分
70
金钱
70
注册时间
2017-4-25
在线时间
11 小时
 楼主| 发表于 2017-7-5 11:21:09 | 显示全部楼层
ARM学员 发表于 2017-7-5 08:53
确定一下发送和接收配置的波特率是否是一样的。

两个板子的程序是同一个环回测试实验工程修改的,不会存在波特率不一致的问题。我昨天找到问题了,是按键悬空,电平不稳,再加上配置不对,导致程序一直等待按键响应,导致没有中断响应
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-8-17 02:58

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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