前言 本应用笔记说明了STM32微控制器自举程序中使用的CAN协议。它详细说明了每个支持的指令。4 B5 _1 { I. @4 {2 m. `! Q$ c6 b7 R 本文档适用于内置V3.x、V7.x和V9.x版自举程序的STM32产品,如应用笔记AN2606“STM32微控制器系统存储器自举模式”中所述。这些产品已在表 1中列出,在整篇文档中统称为STM32。9 Z& A9 a) X" O1 d 关于所使用器件自举程序的CAN硬件资源和要求的更多信息,请参考上文提到的AN2606。. H% H/ a$ q3 {9 }6 S# e; H " |' u: `$ h4 \* f/ Y X" W" ? 1 自举程序代码序列 8 L, K `5 U: c 随后,代码将相应初始化串行接口。使用此计算波特率向主机返回确认字节(0x79),表明STM32已准备接收指令。 2 CAN设置 STM32 CAN与2.0A和B(主动)规范兼容,比特率最高达1 Mbit/s。它可接收和发送包含 11位标识符的标准帧和包含 29 位标识符的扩展帧。 此应用中的CAN设置如下:; Z* L: r7 u4 I; k j6 O& c • 标准标识符(未延长) • 比特率:开始时为125 kbps;运行期间可通过速度指令进行更改,以达到最大比特率1Mbps。 发送设置(从STM32至主机)如下: • Tx mailbox0:开 • Tx mailbox1和Tx mailbox2:关 • Tx标识符:(0x00、0x01、0x02、v03、0x11、0x21、0x31、0x43、0x63、0x73、0x82、0x92) 接收设置(从主机至STM32)如下:3 f6 x* w9 u/ S • 同步字节0x79在RX标识符而不是数据字段内。 • RX标识符取决于指令(0x00、0x01、0x02、0x03、0x11、0x21、0x31、0x43、0x63、0x73、0x82、0x92)。 • 错误检查:如果错误字段(CAN_ESR寄存器中的[6:4]位)不是000b,则丢弃消息并向主机发送NACK。+ n1 X D0 x: J2 ^/ f • 当发生FIFO过载时,丢弃消息并向主机发送NACK。 • 传入消息可包含1至8个数据字节。 注: CAN自举程序固件每次仅支持一个节点。这意味着固件不支持CAN网络管理。 完整版请查看:附件 |
STM32自举程序中使用的CAN协议.pdf
下载796.52 KB, 下载次数: 0
基于STM32的BootLoader经验分享
基于STM32如何选择 S2-LP 的外部晶体经验分享
基于是STM32的BLE 设备地址经验分享
基于ToF传感器的3D手势识别
NUCLEO-U545RE-Q评测(2)运行环境建立
基于使用 STM32 TT 类型 IO 的注意事项经验分享
基于STM32使用Framebuffer_Analyzer工具调试图像显示
ST安全连接,护航工业物联网一路前行
基于STM32的TouchGFX 4.22解锁新功能经验分享
基于STM32的MPU子区经验分享