Bilibili配套视频:
https://www.bilibili.com/video/BV1Ju411A7T6/?spm_id_from=333.999.0.0
本章为大家介绍使用STM32CUBEMX建立CAN通讯,由于CAN通讯自身的特点,在电机控制的场景中使用非常常见,了解CAN通讯非常有必要。
1.STM32CUBEMX配置及Keil代码
① 在上一章的工程基础上我们增加CAN通讯,使能CAN外设;
② 配置仲裁段和数据段的分频系数跳转位宽,使能FIFO模式;
波特率:500k = 160M/20/(1+10+5)
- 使能中断;
- 点击生成代码 ,打开Keil工程;
- 定义RX和TX数据及中间变量;
- 配置RX和TX数据帧类型,RX接收的ID范围;TX ID和数据长度等参数;
- 在while循环中讲VDC电压上传至上位机;
- 在it.c文件中,在FDCAN中断里面,接收上位机发送的数据;
- 编译并下载代码;
2.实验现象
按以下图片接线,并讲USB转UART模块及USBCAN模块连接至电脑:
- 打开PCAN 上位机,选择500k波特率,点击OK;
- 可以看到接收的数据帧ID与MCU中设置一致,上传的VDC电压值实时刷新;
- 点击下发数据,在KEIL debug窗口中查看接收数据;