在 Nucleo-F446RE 上通过 CANBUS 进行引导加载程序访问
Posted
技术标签:
【中文标题】在 Nucleo-F446RE 上通过 CANBUS 进行引导加载程序访问【英文标题】:Bootloader access over CANBUS on Nucleo-F446RE 【发布时间】:2021-04-05 07:39:08 【问题描述】:我正在尝试通过 Nucleo-F446 上的 CANBUS 闪存代码。我指的是这个应用笔记
https://www.st.com/resource/en/application_note/cd00264321-can-protocol-used-in-the-stm32-bootloader-stmicroelectronics.pdf
所以根据它在Boot模式下CAN的默认波特率为125KBPS,我们需要使用PB5和PB13引脚,它们是CAN2引脚。
为了测试,我尝试发送带有 DLC=0 和 STDID = 0x79 的 CAN 消息,STM32 应为此返回具有相同 ID 的 ACK,即 0x79。 但我没有得到任何回应。
【问题讨论】:
如何将 PB5 和 PB13 连接到 CAN 总线?你有 CAN 屏蔽(即扩展板)吗? 我有 CAN 收发器模块来获取 CANH 和 CANL 输出。 【参考方案1】:您必须在 Nucleo Board 中添加一个外部时钟
系统时钟来自 USARTx 的嵌入式内部高速 RC 和 I2Cx 引导加载程序。该内部时钟也用于 CAN 和 DFU(USB FS 设备),但 仅用于选择阶段。 1 MHz(4 到 26 MHz 之间)的外部时钟倍数是 选择阶段后 CAN 和 DFU 引导加载程序执行所需的。
STM Bootloader Description
【讨论】:
以上是关于在 Nucleo-F446RE 上通过 CANBUS 进行引导加载程序访问的主要内容,如果未能解决你的问题,请参考以下文章
使用 HAL 的 NUCLEO-F303K8 上的 DMA 不当行为
从 STM32 Nucleo-F767ZI [Ubuntu] 中的 USB 虚拟 COM 读取数据