i.mxrt1052 FlexCan module consult.

取消
显示结果 
显示  仅  | 搜索替代 
您的意思是: 

i.mxrt1052 FlexCan module consult.

1,598 次查看
yuansongchen
Contributor I

大家好,我是新手,刚接触I.MXRT系列MCU,在配置FlexCan模块时碰到一个问题向请教:

向CAN总线发送数据时程序卡在FLEXCAN_TransferSendBlocking()函数里,while (0U == FLEXCAN_GetMbStatusFlags(base, u64flag << mbIdx)),获取发送完成标记时总是返回0。

0 项奖励
回复
3 回复数

1,579 次查看
yuansongchen
Contributor I

测量CAN总线时发现flexcan不断地发送数据,但是发送标记位没有被置1。使能flexcanConfig.enableLoopBack请ban。又能正常发送。

请帮帮我!

0 项奖励
回复

1,485 次查看
Hui_Ma
NXP TechSupport
NXP TechSupport

Hi,

RT1050 SDK 提供的FlexCAN例程,包括两种类型,一种是自发自收loopback,另一种是发送/接收来自CAN总线上的数据帧。如果你参考的是第二种,需要构建CAN总线网络,最好有个CAN协议分析仪。这样就可以看到CAN总线上传送的数据。

CAN总线上的发送节点,如果发送数据帧出去,总线上无应答,会接着发送相同的数据帧,直到错误累计到255,总线冻结该节点。所以建议调试CAN代码,配置一个CAN协议分析仪会使得CAN总线节点发送数据帧,总是会得到应答帧。

祝顺利。

Mike

0 项奖励
回复

1,455 次查看
yuansongchen
Contributor I
谢谢你Hui_Ma,在你的帮助下问题已经得到解决!前面我只注意到CAN总线上波特率的一致性,忽略了每个bit位包含的时间量子的一致性。再此感谢你的帮助,祝您愉快!
0 项奖励
回复