OpenEdv-开源电子网

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

今天在做can实验的时候用了寄存器版本例程,发现了一个小问题

[复制链接]

54

主题

350

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1095
金钱
1095
注册时间
2022-4-20
在线时间
378 小时
发表于 2022-7-13 16:29:15 | 显示全部楼层 |阅读模式
首先介绍一下我是怎么用这个例程的:我注释掉了LCD相关代码,关闭了屏幕的功能。使用printf来观察实验现象,在回环模式下,如果收到数据会从串口打印一条名为“MSG”的消息 canMSG打印.png 。并且我邮箱选择的顺序也进行了更改, can邮箱选择.png 原本是0,1,2现在是1,0,2。
然后我发现,一开始正常的实验现象是发送成功,然后串口打印一个“OK”,紧接着是接收数据的标志“MSG”打印出来 OK-MSG.png ,变成了一条“Failed”,紧接着“MSG” Failed-MSG.png ,这就很奇怪了,发送失败了才会打印“Failed”,接收到数据才会打印“MSG”,然而这种相悖的现象竟然会同时出现,于是我进入调试,看寄存器的值,发现确实是发送成功了的,但是在这个函数内计算的时候得到了错误的结果 更改前.png ,于是我尝试看看是哪里出的问题,后来我发现,把括号加上之后,问题就不再出现了 更改后.png 。我不知道我这样改是错误还是正确,但确实得到的现象是正确的,请多多指教。
又菜又爱指点
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

54

主题

350

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1095
金钱
1095
注册时间
2022-4-20
在线时间
378 小时
 楼主| 发表于 2022-7-13 16:31:14 | 显示全部楼层
这排版我不会弄,不过图片都是从左往右的顺序,见谅
又菜又爱指点
回复 支持 反对

使用道具 举报

54

主题

350

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1095
金钱
1095
注册时间
2022-4-20
在线时间
378 小时
 楼主| 发表于 2022-7-13 16:36:57 | 显示全部楼层
想请教一下原子哥,我在非回环模式的时候进入调试看寄存器的值,发现发送一直是失败的,查了手册,“TERR0: 邮箱0发送失败 (Transmission error of mailbox 0)    当邮箱0因为出错而导致发送失败时,对该位置’1’。”我并没有动配置的代码,但他在普通模式的时候就是不能正常发送报文,这个问题可能出在哪?而且我使用库函数版本得到的结果也是一样的,寄存器都显示发送失败。
又菜又爱指点
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-4-26 19:05

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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