Cubemx中CAN1配置

前言:最近在学习使用STMcubemx,在网上找的教学资料大多是一步一步配置演示,但是个人还是更喜欢能够弄清楚每一个配置栏的对应的作用。所以整理了一下资料连蒙带猜,写了一下自己的理解。由于自身还是刚入门,所以可能中间会有错误,欢迎指出,本文仅供参考。

Cubemx中CAN1配置_第1张图片

位于左边Connectivity一栏

  1. 配置栏上方:Mode模式勾选Master Mode

  2. 配置栏下方,Parameter Settings:

    Bit Timing Parameters(配置传输速度):

    这里的配置需要了解数据位的时序分解

    图片截自野火的《stm32HAL库开发实战指南》
    Cubemx中CAN1配置_第2张图片

    ​ 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: 时间触发模式
    Cubemx中CAN1配置_第3张图片

    ​ 2. Automatic Bus-off Management:
    Cubemx中CAN1配置_第4张图片

    ​ 3. Automatic Wake-Up Mode:
    Cubemx中CAN1配置_第5张图片

    ​ 4. No-Automatic Retransmission:
    Cubemx中CAN1配置_第6张图片

    ​ 5.Receive Fifo Locked Mode:
    Cubemx中CAN1配置_第7张图片

    6.Transmit Fifo Priority:
    Cubemx中CAN1配置_第8张图片

    Advanced Parameters :

    ​ Operationg Mode:

Cubemx中CAN1配置_第9张图片

以上四个选项分别对应以下四个模式

Cubemx中CAN1配置_第10张图片

  1. 下方第二栏User Constants

    ​ 根据名字可以猜测是设置常量,添加时输入常量名和常量数值

  2. 下方第三栏NVIC Settings

    ​ 使能中断。
    Cubemx中CAN1配置_第11张图片

    ​ CAN1 TX interrupts中断一定使能。猜测是对应CAN_Tx。

    ​ 对于RX0 interrupts和RX1 interrupt:

    ​ 使用到FIFO0就使能RX0 interrupts,使用FIFO1使能RX1 interrupts

    ​ CAN1 SCE interrupt :尚未查明用处,查看的例程中没有打开。

  3. 下方第四栏GPIO Settings

    引脚配置,勾选完Master Mode后自动生成。可以不做修改。

以上的所有CAN外设的资料都来自野火的《STM32 HAL库开发实战指南》。侵删。

你可能感兴趣的:(stm32,can)