楼主: LuoR

[其他] CAN的测试

[复制链接]

该用户从未签到

57

主题

531

帖子

0

金牌会员

Rank: 6Rank: 6

积分
1356
最后登录
2016-12-5
 楼主| 发表于 2016-5-6 11:14:24 | 显示全部楼层
小恩GG 发表于 2016-5-6 10:42
楼主,你这个板子是自己做的对吧。
我这边用官方板子直接跑你代码还不行。
你说你只有接到上位机的数据之 ...

我运行程序,第11帧的时候一直跟程序,程序到了error = USB_Class_CDC_Send_Data,也是可以运行过来的,但是就是没有数据发上去了。至于error = USB_Class_CDC_Send_Data内部是和OS关联的,我跟进去里边很多地方不太明白是怎么运行的
回复 支持 反对

使用道具 举报

该用户从未签到

712

主题

6371

帖子

0

超级版主

Rank: 8Rank: 8

积分
24903
最后登录
2025-7-22
发表于 2016-5-6 11:15:41 | 显示全部楼层
"版主,问个比较低级的问题,怎么判断代码停在哪里呀?我运行程序,第11帧的时候一直跟程序,程序到了error = USB_Class_CDC_Send_Data,也是可以运行过来的,但是就是没有数据发上去了。至于error = USB_Class_CDC_Send_Data内部是和OS关联的,我跟进去里边很多地方不太明白是怎么运行的"

USB_Class_CDC_Send_Data 发不出数据,看看传参里面的数据是否准备好了?也就是说,是不是你采集到的CAN数据,然后再测试下,上位机发送给你的时候,再进入这个函数,传参里面的数据是什么。
设个断点,全速运行。
回复 支持 反对

使用道具 举报

该用户从未签到

57

主题

531

帖子

0

金牌会员

Rank: 6Rank: 6

积分
1356
最后登录
2016-12-5
 楼主| 发表于 2016-5-6 11:28:37 | 显示全部楼层
小恩GG 发表于 2016-5-6 10:42
楼主,你这个板子是自己做的对吧。
我这边用官方板子直接跑你代码还不行。
你说你只有接到上位机的数据之 ...

我先用自收发模式走了一下, 追进去  error = USB_Class_CDC_Send_Data(g_app_handle, DIC_BULK_IN_ENDPOINT,                                g_curr_send_buf, size);

走到截图的部分然后报文就通过串口发送到了上位机。

1.png
回复 支持 反对

使用道具 举报

该用户从未签到

57

主题

531

帖子

0

金牌会员

Rank: 6Rank: 6

积分
1356
最后登录
2016-12-5
 楼主| 发表于 2016-5-6 11:51:14 | 显示全部楼层
小恩GG 发表于 2016-5-6 11:15
"版主,问个比较低级的问题,怎么判断代码停在哪里呀?我运行程序,第11帧的时候一直跟程序,程序到了error ...

数据封装应该是没有问题,外设CAN发送进来的数据放到USB_Class_CDC_Send_Data 是对的
回复 支持 反对

使用道具 举报

该用户从未签到

57

主题

531

帖子

0

金牌会员

Rank: 6Rank: 6

积分
1356
最后登录
2016-12-5
 楼主| 发表于 2016-5-6 11:53:11 | 显示全部楼层
小恩GG 发表于 2016-5-6 11:15
"版主,问个比较低级的问题,怎么判断代码停在哪里呀?我运行程序,第11帧的时候一直跟程序,程序到了error ...

上位机自收发运行,数据发送一样的CAN报文,数据封装都是一样的
回复 支持 反对

使用道具 举报

该用户从未签到

57

主题

531

帖子

0

金牌会员

Rank: 6Rank: 6

积分
1356
最后登录
2016-12-5
 楼主| 发表于 2016-5-6 12:00:31 | 显示全部楼层
小恩GG 发表于 2016-5-6 11:15
"版主,问个比较低级的问题,怎么判断代码停在哪里呀?我运行程序,第11帧的时候一直跟程序,程序到了error ...

发送10帧后边就没了,不知道什么原因,然后我再debug状态下切换到自收发,运行依然正常,在切换回去接收外设报文依旧是发送不上来(因为之前已经在这个模式下发送了10帧)
回复 支持 反对

使用道具 举报

该用户从未签到

712

主题

6371

帖子

0

超级版主

Rank: 8Rank: 8

积分
24903
最后登录
2025-7-22
发表于 2016-5-6 12:26:59 | 显示全部楼层
LuoR 发表于 2016-5-6 12:00
发送10帧后边就没了,不知道什么原因,然后我再debug状态下切换到自收发,运行依然正常,在切换回去接收 ...

发送10帧,是MCU通过USB CDC发送10帧CAN数据给上位机都可以,但是10帧之后,CDC就发不出了,然后一定要USB CDC通过上位机发送任意1个数据给MCU,MCU才可以再发送10帧数据给上位机,是这个意思吗?

如果这样,那么还是要找USB CDC的问题,和CAN数据无关。
回复 支持 反对

使用道具 举报

该用户从未签到

57

主题

531

帖子

0

金牌会员

Rank: 6Rank: 6

积分
1356
最后登录
2016-12-5
 楼主| 发表于 2016-5-6 12:58:24 | 显示全部楼层
小恩GG 发表于 2016-5-6 12:26
发送10帧,是MCU通过USB CDC发送10帧CAN数据给上位机都可以,但是10帧之后,CDC就发不出了,然后一定要US ...

对的,是这个意思,USB CDC这部分就是直接拿过来用的,没改过里边的参数之类的。
这部分版主能具体帮忙看下是不是上发的数据有参数设置,连续上发限制了?
回复 支持 反对

使用道具 举报

该用户从未签到

712

主题

6371

帖子

0

超级版主

Rank: 8Rank: 8

积分
24903
最后登录
2025-7-22
发表于 2016-5-6 15:08:25 | 显示全部楼层
LuoR 发表于 2016-5-6 12:58
对的,是这个意思,USB CDC这部分就是直接拿过来用的,没改过里边的参数之类的。
这部分版主能具体帮忙看 ...

USB CDC用的就是这个:C:\Freescale\KSDK_1.3.0\examples\frdmk64f\demo_apps\usb\device\cdc\virtual_com?
好的,我会在我K64上面试下。
回复 支持 反对

使用道具 举报

该用户从未签到

57

主题

531

帖子

0

金牌会员

Rank: 6Rank: 6

积分
1356
最后登录
2016-12-5
 楼主| 发表于 2016-5-6 16:08:34 | 显示全部楼层
小恩GG 发表于 2016-5-6 15:08
USB CDC用的就是这个:C:\Freescale\KSDK_1.3.0\examples\frdmk64f\demo_apps\usb\device\cdc\virtual_co ...

不是这个,版主,我已经给你发过去了
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 注册/登录

本版积分规则

关闭

站长推荐上一条 /3 下一条

Archiver|手机版|小黑屋|恩智浦技术社区

GMT+8, 2025-7-22 19:00 , Processed in 0.106946 second(s), 30 queries , MemCache On.

Powered by Discuz! X3.4

Copyright © 2001-2024, Tencent Cloud.

快速回复 返回顶部 返回列表