完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
|
我正在尝试使用从USB2CAN设备传输的SN65HVD233收发器在STM32F412G-DISCOVERY上接收CAN帧。两者都连接在长约15厘米的总线上,每端有两个120Ω电阻。 我连接示波器,在收发器转换之前读取STM32板上的RX和TX引脚。当我以静音模式配置CAN控制器并使用以下命令从USB2CAN发送CAN帧时: $ cansend can0 '144#25'我在RX引脚的示波器上看到整个帧(黄色是电路板的RX,蓝色是其TX):
注意:光标指示一位的时间间隔(2μs,比特率为500 kb / s)。 (HAL_CAN_Receive呼叫仍然超时,但这是另一个问题。)但是当我将控制器置于正常模式时,这是我测量的:
这是代码:
看起来发射器(USB2CAN)尝试为ID的第2位写入隐性(1),而接收器(STM32)发送显性(0):发射器检测到碰撞并停止发射。 为什么STM32 CAN控制器发送停止通信的显性位? |
|
相关推荐
4个回答
|
|
|
时间不匹配,STM32发出错误标志。为什么它会在前几位之后直接传输任何东西?
错误帧应该是6位长,但在图像中,光标的宽度不适合tx帧6次。意味着控制器不使用相同的比特率。 |
|
|
|
|
|
根据CubeMX,STM32配置了预分频器12,对应于2000 ns的“一位时间”,不是500 kb / s的比特率?
|
|
|
|
|
|
显然,STM32使用的实际比特率为250 kb / s
|
|
|
|
|
|
确实,这是一个时间问题。对于BS1 / BS2,我使用了4和7/1的预分频器,它现在可以工作了!
|
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
169 浏览 0 评论
STM32F405驱动DS1302时钟模块,输出时间错乱该怎么排查?
4077 浏览 2 评论
stm32f405rgt6驱动DS1302ZN出现时间错乱问题
2880 浏览 1 评论
stm32用fsmc读取ad7606采集数据,数据不变,只有开发版复位才更新数据
2564 浏览 0 评论
2690 浏览 1 评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-8 19:03 , Processed in 0.778807 second(s), Total 48, Slave 40 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
6988