前言:最近在学习使用STMcubemx,在网上找的教学资料大多是一步一步配置演示,但是个人还是更喜欢能够弄清楚每一个配置栏的对应的作用。所以整理了一下资料连蒙带猜,写了一下自己的理解。由于自身还是刚入门,所以可能中间会有错误,欢迎指出,本文仅供参考。
位于左边Connectivity一栏
-
配置栏上方:Mode模式勾选Master Mode
-
配置栏下方,Parameter Settings:
Bit Timing Parameters(配置传输速度):
这里的配置需要了解数据位的时序分解
图片截自野火的《stm32HAL库开发实战指南》
Prescaler(for Time Quantum): 分频,可选范围为1-1024。
Time Quantum:相当于上图的最小时间单位Tq,单位为ns
将Prescaler调为1可以看到Time Quantum的最小值,改变Prescaler的值,Time Quantum的值等于Prescaler * Time Quantum的最小值。Prescaler可以理解为倍数。
Time Quanta in Bit Segment 1:PBS1段所占的时间,单位(Tq)
Time Quanta in Bit Segment 2:PBS2段所占的时间,单位(Tq)
Time for one Bit:波特率
ReSynchronization Jump Width:再同步补偿宽度,在实际写程序时,这个sjw通常被定义为0。具体作用参考CAN总线波特率的设定——以STM32F103为例(感谢评论指正)
此处 波特率的计算是 Time Quantum * (Time Quanta in Bit Segment 1 + Time Quanta in Bit Segment 2 + ReSynchronization Jump Width)
Basic Parameters(基本参数,使能or不使能):
1. Time Triggered Communication Mode: 时间触发模式
2. Automatic Bus-off Management:
3. Automatic Wake-Up Mode:
4. No-Automatic Retransmission:
5.Receive Fifo Locked Mode:
6.Transmit Fifo Priority:
Advanced Parameters :
Operationg Mode:
以上四个选项分别对应以下四个模式
-
下方第二栏User Constants
根据名字可以猜测是设置常量,添加时输入常量名和常量数值
-
下方第三栏NVIC Settings
使能中断。
CAN1 TX interrupts中断一定使能。猜测是对应CAN_Tx。
对于RX0 interrupts和RX1 interrupt:
使用到FIFO0就使能RX0 interrupts,使用FIFO1使能RX1 interrupts
CAN1 SCE interrupt :尚未查明用处,查看的例程中没有打开。
-
下方第四栏GPIO Settings
引脚配置,勾选完Master Mode后自动生成。可以不做修改。
以上的所有CAN外设的资料都来自野火的《STM32 HAL库开发实战指南》。侵删。