全球最实用的IT互联网信息网站!

AI人工智能P2P分享&下载搜索网页发布信息网站地图

当前位置:诺佳网 > 电子/半导体 > 接口/总线/驱动 >

基于RA6M4开发板的CAN通信功能

时间:2022-10-18 12:50

人气:

作者:admin

标签: CAN通信 

导读:基于RA6M4开发板的CAN通信功能-添加完成后,单击CAN模块。再点击Properties打开配置界面,设置name,选择通道、ID模式,设置CAN中断回调函数名称。...

介绍

针对客户的开发需求,基于Keil的开发环境,使用RA6M4开发板,通过配置RASC设置相关配置,实现CAN通信功能。

硬件准备

准备一块RA6M4开发板(CPK-RA6M4),芯片是用R7FA6M4AF3CFB,主频200MHz,Pin脚是144pin,1MB内存的,如下图所示。

228e2fa8-4e9e-11ed-a3b6-dac502259ad0.jpg

软件部分

1

打开RASC.EXE文件

22cf7e5e-4e9e-11ed-a3b6-dac502259ad0.png

22f48280-4e9e-11ed-a3b6-dac502259ad0.png

2

填写工程名称和工程的保存位置,注意路径中不要包含中文和空格,点击Next。

23207962-4e9e-11ed-a3b6-dac502259ad0.png

3

RASC支持IAR和Keil,在IDE Project Type选择Keil,选择芯片对应型号,点Next。

23390a4a-4e9e-11ed-a3b6-dac502259ad0.png

4

选择工程模板,具体如下图,确认无误点击Finish。

23849078-4e9e-11ed-a3b6-dac502259ad0.png

5

工程新建完成后,出现下图界面,此时可以确认一下自己的配置信息是否正确。

239cd3f4-4e9e-11ed-a3b6-dac502259ad0.png

6

打开Stacks,添加相关的代码模块。点击New Stack-Connectivity-CAN。

23ec0690-4e9e-11ed-a3b6-dac502259ad0.png

7

添加完成后,单击CAN模块。再点击Properties打开配置界面,设置name,选择通道、ID模式,设置CAN中断回调函数名称。

2421bda8-4e9e-11ed-a3b6-dac502259ad0.png

8

打开Pins,选择Peripherals-Connectivity:CAN-CAN1,使能,配置引脚。   

2434076a-4e9e-11ed-a3b6-dac502259ad0.png

9

配置完成后点击右上角的三角按钮(Generate Project Content),关闭RASC再打开Keil生成的工程项目.

24752fce-4e9e-11ed-a3b6-dac502259ad0.png

 

24aa1d42-4e9e-11ed-a3b6-dac502259ad0.png

10

打开Keil-Customize Tools Menu,在Command设置RASC的路径,在Initial Folder填写$P,在Arguments写入--device $D --compiler ARMv6 configuration.xml。

24e04d86-4e9e-11ed-a3b6-dac502259ad0.png

11

如果需要打开RASC进行重新配置,需要在Keil的界面点击Tools-RA Smart Configurator。

24f4dda0-4e9e-11ed-a3b6-dac502259ad0.png

12

打开hal_entry.c,找到可以添加自己代码的地方,添加相应的应用函数

2513fa1e-4e9e-11ed-a3b6-dac502259ad0.png

13

定义相关的回调函数。

26dda8c2-4e9e-11ed-a3b6-dac502259ad0.png

14

定义CAN发送和接收的数据格式。

270f8df6-4e9e-11ed-a3b6-dac502259ad0.png

15

定义发送和接收的数据,设置发送的ID、数据格式、数据长度,初始化CAN。

27282b7c-4e9e-11ed-a3b6-dac502259ad0.png

16

在r_can_api.h文件中,添加一个指向接收数据的指针。

2749794e-4e9e-11ed-a3b6-dac502259ad0.png

17

在CAN的回调函数中,添加读取接收到的数据,然后发送数据,并打上断点,如果进入断点则说明已经接收到数据。

27639c66-4e9e-11ed-a3b6-dac502259ad0.png

18

在r_can.c的文件中的can_rx_isr(void)函数中修改以下代码。

2786740c-4e9e-11ed-a3b6-dac502259ad0.png

 

27bbc508-4e9e-11ed-a3b6-dac502259ad0.png

19

在CAN分析仪中,发送扩展帧,帧ID为00 00 00 01,数据为00 01 02 03 04 05 06 07,如果程序进入中断,则说明已经接收到数据,然后再发送数据给CAN分析仪。

28087baa-4e9e-11ed-a3b6-dac502259ad0.png

20

程序进入中断,可以看到接收到的数据。

282088d0-4e9e-11ed-a3b6-dac502259ad0.png

21

继续运行程序,可以看到CAN分析仪已经接收到数据。

28536d18-4e9e-11ed-a3b6-dac502259ad0.png

22

说明CAN通信功能已经可以正常使用了。

结论

以上就是根据客户开发需求,实现CAN通信功能,通过该项目可以学会使用RASC在Keil环境下的新建项目如何配置一个新的外设,如何调取相应的函数库,以及如何基于RASC进行应用开发。

编辑:黄飞

温馨提示:以上内容整理于网络,仅供参考,如果对您有帮助,留下您的阅读感言吧!
相关阅读
本类排行
相关标签
本类推荐

CPU | 内存 | 硬盘 | 显卡 | 显示器 | 主板 | 电源 | 键鼠 | 网站地图

Copyright © 2025-2035 诺佳网 版权所有 备案号:赣ICP备2025066733号
本站资料均来源互联网收集整理,作品版权归作者所有,如果侵犯了您的版权,请跟我们联系。

关注微信