跳转到主要内容

STM32 CAN控制器简介

来源:博客园 - 郭润

1、STM32自带了基本扩展CAN外设,又称bxCAN,bxCAN的特点如下:

<img src="http://mcu.eetrend.com/files/2020-06/wen_zhang_/100049797-99386-1.png&q…; alt="STM32 CAN控制器简介"><br>

2、模式:分为工作模式、测试模式、调试模式

<img src="http://mcu.eetrend.com/files/2020-06/wen_zhang_/100049797-99387-2.png&q…; alt="STM32 CAN控制器简介"><br>

睡眠模式主要用于降低功耗!

在静默模式下的工作原理

<img src="http://mcu.eetrend.com/files/2020-06/wen_zhang_/100049797-99388-3.png&q…; alt="STM32 CAN控制器简介"><br>

由图可知,它只会接受来自于can的数据,不会发送数据,其CANTX始终为1.可以监控总线上的数据

环回模式的工作原理:

<img src="http://mcu.eetrend.com/files/2020-06/wen_zhang_/100049797-99389-4.png&q…; alt="STM32 CAN控制器简介"><br>

它只能发送到CAN总线上,不能接收,但是他在自己内部有一个环路,可以发回给自己,即可以自发自收。

环回静默模式的工作原理:

<img src="http://mcu.eetrend.com/files/2020-06/wen_zhang_/100049797-99390-5.png&q…; alt="STM32 CAN控制器简介"><br>

它不与CAN总线进行通信,只是发给自己,如上图所示

3、bxCAN框图

F103只有一个主can,F4有两个can:一个主can一个从can;

<img width="600" src="http://mcu.eetrend.com/files/2020-06/wen_zhang_/100049797-99391-6.png&q…; alt="STM32 CAN控制器简介"><br>

4、标识符筛选器

<img width="600" src="http://mcu.eetrend.com/files/2020-06/wen_zhang_/100049797-99392-7.png&q…; alt="STM32 CAN控制器简介">
<img width="600" src="http://mcu.eetrend.com/files/2020-06/wen_zhang_/100049797-99393-8.png&q…; alt="STM32 CAN控制器简介">
<img width="600" src="http://mcu.eetrend.com/files/2020-06/wen_zhang_/100049797-99394-9.png&q…; alt="STM32 CAN控制器简介"><br>

5、发送流程

<img width="600" src="http://mcu.eetrend.com/files/2020-06/wen_zhang_/100049797-99395-10.png&…; alt="STM32 CAN控制器简介">
<img width="600" src="http://mcu.eetrend.com/files/2020-06/wen_zhang_/100049797-99396-11.png&…; alt="STM32 CAN控制器简介">
<img src="http://mcu.eetrend.com/files/2020-06/wen_zhang_/100049797-99397-12.png&…; alt="STM32 CAN控制器简介">
<img width="600" src="http://mcu.eetrend.com/files/2020-06/wen_zhang_/100049797-99398-13.png&…; alt="STM32 CAN控制器简介"><br>

两个can通信的话其波特率必须一致

6、寄存器简介

<img width="600" src="http://mcu.eetrend.com/files/2020-06/wen_zhang_/100049797-99399-14.png&…; alt="STM32 CAN控制器简介">
<img width="600" src="http://mcu.eetrend.com/files/2020-06/wen_zhang_/100049797-99400-15.png&…; alt="STM32 CAN控制器简介">
<img width="600" src="http://mcu.eetrend.com/files/2020-06/wen_zhang_/100049797-99401-16.png&…; alt="STM32 CAN控制器简介">
<img width="600" src="http://mcu.eetrend.com/files/2020-06/wen_zhang_/100049797-99402-17.png&…; alt="STM32 CAN控制器简介">
<img width="600" src="http://mcu.eetrend.com/files/2020-06/wen_zhang_/100049797-99403-18.png&…; alt="STM32 CAN控制器简介">
<img width="600" src="http://mcu.eetrend.com/files/2020-06/wen_zhang_/100049797-99404-19.png&…; alt="STM32 CAN控制器简介">
<img width="600" src="http://mcu.eetrend.com/files/2020-06/wen_zhang_/100049797-99405-20.png&…; alt="STM32 CAN控制器简介">
<img width="600" src="http://mcu.eetrend.com/files/2020-06/wen_zhang_/100049797-99406-21.png&…; alt="STM32 CAN控制器简介">
<img width="600" src="http://mcu.eetrend.com/files/2020-06/wen_zhang_/100049797-99407-22.png&…; alt="STM32 CAN控制器简介">
<img width="600" src="http://mcu.eetrend.com/files/2020-06/wen_zhang_/100049797-99408-23.png&…; alt="STM32 CAN控制器简介">
<img width="600" src="http://mcu.eetrend.com/files/2020-06/wen_zhang_/100049797-99409-24.png&…; alt="STM32 CAN控制器简介">
<img width="600" src="http://mcu.eetrend.com/files/2020-06/wen_zhang_/100049797-99410-25.png&…; alt="STM32 CAN控制器简介">
<img width="600" src="http://mcu.eetrend.com/files/2020-06/wen_zhang_/100049797-99411-26.png&…; alt="STM32 CAN控制器简介"><br>

7、初始化流程

<img width="600" src="http://mcu.eetrend.com/files/2020-06/wen_zhang_/100049797-99412-27.png&…; alt="STM32 CAN控制器简介"><br>

8、总结

<img width="600" src="http://mcu.eetrend.com/files/2020-06/wen_zhang_/100049797-99413-28.png&…; alt="STM32 CAN控制器简介"><br>

来源:<a href="https://www.cnblogs.com/gary-guo/p/5928935.html"><u>博客园 - 郭润</u></a>,转载此文目的在于传递更多信息,版权归原作者所有。