完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
我正在尝试测试 STM32F042K6 Nucleo 板上的 CAN 总线。我可以传输数据但无法接收。这是我的设置。数据从 STM32H7-Disco 板发送,其 CAN0 比特率设置为 250K。我可以向/从 STM32H7 板发送和接收数据。所以我知道 STM32H7 可以工作。但是STM32F042K6 Nucleo可以向STM32H7发送数据,但不能接收数据。STM32H7板子有嵌入式收发器,STM32F042我有外置CAN Waveshare收发器。我使用逻辑分析仪确认两端的数据。
在 STM32F042K6-Nucleo 上,can 设置为: 预分频器:4 时间量子:500ns Tq BS1: 4 Tq BS2:3 SJW:1 工作模式:正常 引脚 PA11(Nucleo 接头上的 D10):CAN_RX 引脚 PA12(Nucleo 接头上的 D2):CAN_TX 通过这些设置,传输以 250Kb 工作,我用逻辑分析仪和 STM32H7 板接收确认了这一点。 在 STM32F042 RX 线上,我还使用逻辑分析仪确认数据以相同的比特率(4us 为一位)定期进入引脚 PA11。 这是我正在轮询的代码。GetRx 调用总是以 HAL_Error 结束,错误参数为 0x200000。 我究竟做错了什么 ?如果有人可以提供帮助,我将不胜感激。我是 CAN 协议的新手。 谢谢
|
|
相关推荐
1个回答
|
|
我不认为这段代码对我有用,而且我在我的 STM32F4 系列上特别看到了同样的问题。对我来说,这不是在这个设备上设置 HW 过滤器。
我不能给你它的完整代码,因为我的代码有点杂乱无章。但它结束于此:HAL_CAN_ConfigFilter 尝试在 CAN_FILTERMODE_IDMASK 中设置一些内容并将 FilterMaskIdLow 和 FilterMaskIdHigh 都设置为 0x0000 |
|
|
|
只有小组成员才能发言,加入小组>>
请教:在使用UDE STK时,单片机使用SPC560D30L1,在配置文件怎么设置或选择?里面只有SPC560D40的选项
2452 浏览 1 评论
3159 浏览 1 评论
请问是否有通过UART连接的两个微处理器之间实现双向值交换的方法?
1726 浏览 1 评论
3544 浏览 6 评论
5904 浏览 21 评论
883浏览 4评论
1261浏览 4评论
在Linux上安装Atollic TRUEStudio的步骤有哪些呢?
527浏览 3评论
使用DMA激活某些外设会以导致外设无法工作的方式生成代码是怎么回事
1244浏览 3评论
1298浏览 3评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-9-29 04:55 , Processed in 1.060156 second(s), Total 79, Slave 62 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号