完善资料让更多小伙伴认识你,还能领取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的预分频器,它现在可以工作了!
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
2201 浏览 1 评论
AD7686芯片不传输数据给STM32,但是手按住就会有数据。
2027 浏览 3 评论
4633 浏览 0 评论
如何解决MPU-9250与STM32通讯时,出现HAL_ERROR = 0x01U
2171 浏览 1 评论
hal库中i2c卡死在HAL_I2C_Master_Transmit
2705 浏览 1 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-26 04:02 , Processed in 0.719919 second(s), Total 79, Slave 62 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号