Toggle navigation
首页
问答
文章
积分商城
专家
专区
更多专区...
文档中心
返回主站
搜索
提问
会员
中心
登录
注册
CAN总线
【FRDM-MCXA156 评测】CAN通讯
发布于 2025-02-28 23:06:05 浏览:15
订阅该版
1.FRDM-MCXA156 板卡介绍  图1连接图 该板卡具有丰富的外设,基于NXP MCXA156微控制器(MCU)的设计和评估平台,一款面向工业和消费物联网(IoT)应用的低功耗微控制器。它配备了一个运行速度最高可达96 MHz的Arm Cortex-M33内核。而且为了调试MCXA156 MCU,FRDM-MCXA156开发板使用了一个板载(OB)调试探针,即MCU-Link OB,它基于另一款NXP MCU:LPC55S69。对于面向工业和消费物联网(IoT)应用,选择该款低功耗微控制器是再合适不过了。 2.MCXA156之CAN外设 这次评测的是FlexCAN外设。FlexCAN是一种通信控制器,它根据ISO 11898-1:2015标准和CAN 2.0 Part B协议规范实现了CAN协议。CAN协议最初主要被设计为车辆串行数据总线,以满足车辆电磁干扰(EMI)环境中特定的实时处理和可靠运行要求。FlexCAN是CAN协议规范、灵活数据速率CAN(CAN FD)协议以及CAN 2.0 Part B协议的完整实现。它支持标准和扩展消息帧以及长有效载荷。关于该外设的详细介绍可参考MCXA156 RM参考手册。如链接。 3.硬件电路 参考板卡的原理图,是自带CAN IC TJA1057的,这方面的测试应用就直接使用外部CAN测试卡连接即可。如图3所示:  图3 CAN原理图 4.开发环境 本次测试主要使用官方的bsp,毕竟官方框架都给搭好了,直接使用就可以了。开发环境为ENV和Keil5。 5.步骤说明 5.1 添加源码 在使用bsp之前需要,需要在board/Kconfig 中增加使能CAN外设的代码,这样在env 的界面中才能出现。如下所示: ```c menuconfig BSP_USING_CAN bool "Enable CAN" select RT_USING_CAN default n if BSP_USING_CAN config BSP_USING_CAN0 bool "Enable CAN0" default y endif ``` 关于这部分的编写,可以参考官方文档,这里是参考其他外设配置编写的。 5.2 ENV配置 在bsp中打开ENV环境,右键选择ConEmu here,打开ENV界面如图4所示:  图4 输入menuconfig 指令,出现选项列表,如图5所示:  图5 选择RT-Thread Components--->,找到Device Drivers--->,选择Enable CAN如图6所示:  图6 退到主菜单,选择Hardware Drivers Config--->,选择On-chip Peripheral Drivers--->,选择Enable CAN,如图7所示  图7 该板卡使用的是CAN0,选择Enable CAN0即可。 这些配置完,退出菜单,在主界面中重新生成keil project,使用scons --target=mdk5,如图8所示:  图8 这样配置完就可以进入程序了。 5.3 程序运行 打开项目文件,需要添加drv_can 驱动文件,右键项目名称,选择manage project items...,选择Drivers,增加文件即可,如图9所示:  图9 在main.c主函数中添加代码,可参考官方示例代码,这里需要注意,本板卡使用的外设是CAN0,代码如下: 参考如链接所示: [https://www.rt-thread.org/document/site/#/rt-thread-version/rt-thread-standard/programming-manual/device/can/can](https://www.rt-thread.org/document/site/#/rt-thread-version/rt-thread-standard/programming-manual/device/can/can) 编译无错误,Debug程序。打开CAN配套的测试软件,选择好接口和波特率。打开串口终端,如图10所示:  图10 开始运行程序,在串口终端msh中输入can_sample,可以看到在CAN终端会接收到一帧数据。如图11所示:  图11 在CAN终端发送一帧数据后,在串口终端可以接收到一帧数据,如图12所示:  图12 CAN的收发基本功能测试完成。 5.4 出现的问题 在打开串口终端软件的时候,输入指令时,出现溢出,如图13所示:  图13 在这里需要在rtconfig.h中将idle任务值改大一点,如图14所示:  图14 5.5 心得体会 通过这次RTT和FRDM-MCXA156共同学习,让自己对RTT又有了新的认识,对自己以后在项目中使用RTT有很大帮助,收获匪浅。这次外设测试也仅是开始,抽时间要更进一步学习,应用。
0
条评论
默认排序
按发布时间排序
登录
注册新账号
关于作者
ZL777
这家伙很懒,什么也没写!
文章
1
回答
0
被采纳
0
关注TA
发私信
相关文章
1
我也来传一个CANOpen移植,RTT+STM32F107+CanOpenNode
2
谁有STM32裸跑的CANopen程序啊???
3
CAN驱动程序框架
4
CAN驱动接口如何规范一下
5
RTT无法进入线程.Cannot access Memory
6
编译提示arm-none-eabi/bin/ld: cannot find crt0.o: No such file o
7
rtt 2.1.0 正式版 mdk4 bsp/stm32 编译canapp.c错误
8
STM32F10XCAN驱动使用的问题
9
2.1版本stm32f10x分支bxcan驱动波特率设置的bug
10
rtthread2.1.0下,找不到can1设备
推荐文章
1
RT-Thread应用项目汇总
2
玩转RT-Thread系列教程
3
国产MCU移植系列教程汇总,欢迎查看!
4
机器人操作系统 (ROS2) 和 RT-Thread 通信
5
五分钟玩转RT-Thread新社区
6
【技术三千问】之《玩转ART-Pi》,看这篇就够了!干货汇总
7
关于STM32H7开发板上使用SDIO接口驱动SD卡挂载文件系统的问题总结
8
STM32的“GPU”——DMA2D实例详解
9
RT-Thread隐藏的宝藏之completion
10
【ART-PI】RT-Thread 开启RTC 与 Alarm组件
热门标签
RT-Thread Studio
串口
Env
LWIP
SPI
AT
Bootloader
Hardfault
CAN总线
FinSH
ART-Pi
DMA
USB
文件系统
RT-Thread
SCons
RT-Thread Nano
线程
MQTT
STM32
RTC
rt-smart
FAL
I2C_IIC
UART
ESP8266
cubemx
WIZnet_W5500
ota在线升级
PWM
BSP
flash
freemodbus
packages_软件包
潘多拉开发板_Pandora
定时器
GD32
ADC
flashDB
编译报错
socket
中断
Debug
rt_mq_消息队列_msg_queue
keil_MDK
ulog
SFUD
msh
C++_cpp
MicroPython
本月问答贡献
出出啊
1520
个答案
343
次被采纳
小小李sunny
1444
个答案
290
次被采纳
张世争
813
个答案
177
次被采纳
crystal266
550
个答案
161
次被采纳
whj467467222
1222
个答案
149
次被采纳
本月文章贡献
出出啊
1
篇文章
5
次点赞
小小李sunny
1
篇文章
1
次点赞
张世争
1
篇文章
3
次点赞
crystal266
2
篇文章
1
次点赞
whj467467222
2
篇文章
2
次点赞
回到
顶部
发布
问题
投诉
建议
回到
底部