【STM32Cubemx系列】_005-CAN通信

本文详细介绍了如何使用STM32Cubemx配置CAN通信,包括CAN总线原理、STM32上的CAN配置、Cubemx设置、代码实现(过滤器、中断接收、发送数据函数)以及注意事项,提供了实现CAN通信的关键步骤和技巧。
摘要由CSDN通过智能技术生成

目的:通过STM32自带CAN控制器及收发器实现STM32与CAN总线的通信。


1. CAN总线原理

  • 控制器局域网络(Controller Area Network, CAN)
  • 2根总线(CAN-H和CAN-L)的电位差来确定总线的电平,输出差分电压信号(显性电平和隐性电平)
  • “显性"数值表示逻辑"0”,而"隐性"表示逻辑"1"
    在“隐性”状态下,VCAN_H和VCAN_L被固定与平均电压电平,Vdiff近似为零,此时VCAN_H和VCAN_L的标称值为2.5V。“显性”位以大于最小阀值的差分电压表示,此时VCAN_H的标称值为3.5V,VCAN_L的标称值为1.5V。
    在这里插入图片描述

2. STM32上的CAN通信

  • 在使用STM32的CAN口需要注意,CAN控制器完成底层协议(仲裁、CRC校验、自动重发等),位于芯片内部,CAN收发器用于将TTL信号转化为CAN总线上的电平,常见型号为SN65HVD230、TJA1051,需要额外购买。
  • 接线方式:控制器TX连收发器TX,直连,和串口连接方式不同
  • 收发器出来的CANH和CANL之间有一个120欧姆电阻,以保证阻抗匹配(要注意有些现成CAN收发器板子上有接这个电阻,没有的话再自己接终端电阻)
    在这里插入图片描述

CAN的波特率为:
 Tout  = T c l k p s c × ( B S 1 + B S 2 + S J W ) \text { Tout }=\frac{T c l k}{p s c×(BS1+BS2+SJW)}  Tout =psc×(BS1+BS2+SJW)Tclk
APB1外设时钟Tclk已知为42Mhz,设置psc为9,BS1=5, BS2=6, SJW=1,此时波特率为388.9KHz。

CAN配置中选择内部时钟作为时钟源,查看数据手册或者查看代码可以知道TIM3是挂接到APB1外设时钟线上,查看Cubemx中APB1的外设时钟频率即为Tclk。


3.Cubemx配置

  • 设置CAN为Activated
  • 配置相应的p
  • 29
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
STM32CubeMX 是一款用于生成 STM32 微控制器工程代码的图形化配置工具。它可以轻松配置和管理 STM32 微控制器的各种外设和功能模块。在 STM32CubeMX 中,我们可以通过简单的拖拽和配置来实现 CAN(Controller Area Network)通信功能。 首先,在使用 STM32CubeMX 进行配置时,我们需要选择适当的 STM32 微控制器型号,然后打开其配置界面。在配置界面中,我们可以找到 CAN 外设,并选择需要的 CAN 控制器和对应的引脚配置。 一旦我们选择了 CAN 外设并配置了相应的参数,STM32CubeMX 就会自动生成相应的初始化代码,并导出到我们所选择的集成开发环境(IDE)中。在 IDE 中,我们可以进一步编写应用程序代码,以实现 CAN 的发送和接收功能。 对于 CAN 通信,我们需要使用一个 CAN 控制器作为发送方,另一个 CAN 控制器作为接收方。在发送方的应用程序代码中,我们可以使用相应的 HAL(Hardware Abstraction Layer)库函数,从 CAN 控制器发送数据包到 CAN 总线上。 在接收方的应用程序代码中,我们同样使用 HAL 库函数来接收来自 CAN 总线的数据包。可以通过处理中断或轮询的方式来实现接收功能,并根据接收到的数据包进行相应的处理。 此外,我们还可以配置 CAN 控制器的参数,例如波特率、发送邮箱数量以及模式(自发自收模式、正常模式等),以适应不同的通信需求。 总之,通过 STM32CubeMX,我们可以方便地配置和管理 STM32 微控制器的 CAN 外设,并使用相应的 HAL 库函数来实现 CAN 通信功能。这大大简化了开发过程,提高了整体的开发效率。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值