
前言 本应用笔记说明了STM32微控制器自举程序中使用的CAN协议。它详细说明了每个支持的指令。 本文档适用于内置V3.x、V7.x和V9.x版自举程序的STM32产品,如应用笔记AN2606“STM32微控制器系统存储器自举模式”(参见www.st.com网站)中所述。这些产品已在表 1中列出,在整篇文档中统称为STM32。 关于所使用器件自举程序的CAN硬件资源和要求的更多信息,请参考上文提到的AN2606。 ![]() 1自举程序代码序列 ![]() 在进入系统存储器自举模式并且STM32器件配置完毕后(更多详细信息,请参见AN2606),自举程序代码会等待CANx_Rx引脚上的帧。当检测发生时,CAN自举程序固件开始检查外部时钟频率。 图 2显示了频率检查的流程图。 ![]() 随后,代码将相应初始化串行接口。使用此计算波特率向主机返回确认字节(0x79),表明STM32已准备接收指令。 2 CAN设置 STM32 CAN与2.0A和B(主动)规范兼容,比特率最高达1 Mbit/s。它可接收和发送包含 11位标识符的标准帧和包含 29 位标识符的扩展帧。 图 3显示了仅使用标准标识符的CAN帧。 ![]() 此应用中的CAN设置如下: •标准标识符(未延长) •比特率:开始时为125 kbps;运行期间可通过速度指令进行更改,以达到最大比特率1Mbps。 发送设置(从STM32至主机)如下: •Tx mailbox0:开 •Tx mailbox1和Tx mailbox2:关 •Tx标识符:(0x00、0x01、0x02、v03、0x11、0x21、0x31、0x43、0x63、0x73、0x82、0x92) 接收设置(从主机至STM32)如下: •同步字节0x79在RX标识符而不是数据字段内。 •RX标识符取决于指令(0x00、0x01、0x02、0x03、0x11、0x21、0x31、0x43、0x63、0x73、0x82、0x92)。 •错误检查:如果错误字段(CAN_ESR寄存器中的[6:4]位)不是000b,则丢弃消息并向主机发送NACK。 •当发生FIFO过载时,丢弃消息并向主机发送NACK。 •传入消息可包含1至8个数据字节。 注: CAN自举程序固件每次仅支持一个节点。这意味着固件不支持CAN网络管理 完整版请查看:附件 |
CD00264321_ZHV6.pdf
下载696.16 KB, 下载次数: 4
STM32 GUI LTDC 最大像素时钟评估方法
【2025·STM32峰会】GUI解决方案实训分享1-对LVGL咖啡机例程的牛刀小试以及问题排查
OpenBLT移植到STM32F405开发板
为什么要先开启STM32外设时钟?
【STM32MP157】从ST官方例程中分析RPMsg-TTY/SDB核间通信的使用方法
【经验分享】STM32实例-RTC实时时钟实验④-获取RTC时间函数与中断服务函数
STM32 以太网 MAC Loopback 的实现
STM32功能安全设计包,助力产品功能安全认证
基于STM32启动过程startup_xxxx.s文件经验分享
HRTIM 指南