【求助】 我需要帮助!USB与CAN的通信

[复制链接]
1743|4
 楼主| arm菜鸟人 发表于 2013-3-1 13:40 | 显示全部楼层 |阅读模式
这个帖子首先是找各位的帮助;其次,也是USB_CAN通信的总结吧。

用周立功SmartCortex M3-1700 的开发板,Keil的IDE,J-Link下载仿真器。使用的是开发板的例程。在USBSimpleDemo的例程里修改的。
整个数据链路:PC -> 吉阳光电USB_CAN -> LPC1700开发板 -> USB数据线 - >PC
经过测试发送,提供的上位机 只能接收 10 字节数据。而且还必须点击“发送”后,才能收到USB数据。但是,我有一点不明白:为什么用 Bus Hound 不能监测到数据呢?而且,还出现USB驱动安装不上的问题。不如开了两路 CAN 时 安装驱动不成功,在有的机子上安装不了驱动。打电话问周立功技术支持,是各种没联系上。

我开发的流程是这样的:
我将整个任务都放在 void  usbDeviceDemo (void) 函数里。然后对任务进行了分解:
1、将接收到的CAN数据打包成USB数据,通过USB发送出去。
2、将接收到的USB数据打包成CAN数据,通过CAN发送出去。
其中,例程里的CAN开发包和USBDev开发包里提供了相应的函数:
1、unsigned char CANSend(unsigned char Ch, unsigned char BUFNum)
2、UINT8 usbDevWriteEndpoint (UINT8 ucEpIndex, UINT8 *pucWriteBuf, UINT8 ucWriteLen)
我首先是从CAN到USB的。编写了一个将接收到CAN数据存到USB发送缓冲区的函数:
void CANTOUSB(INT8U *ucUSBDataBuff,unsigned char Ch, unsigned char BUFNum)
程序如下:
void CANTOUSB(INT8U *ucUSBDataBuff,unsigned char Ch, unsigned char BUFNum)
{

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
 楼主| arm菜鸟人 发表于 2013-3-1 13:41 | 显示全部楼层
本帖最后由 arm菜鸟人 于 2013-3-1 13:52 编辑

发现还不能讲这么多话,后一段被系统吃掉了!
好不容易码的字。
 楼主| arm菜鸟人 发表于 2013-3-1 13:46 | 显示全部楼层
大家看源码吧。在测试截图里有我的问题体现。
我的问题是这样的,就是发送CAN数据,USB接收不到。并且上位机会死掉。
我用CAN自收发测试,发现只能接收一次CAN数据,并且一直没有接收到USB数据。
详见这个帖子的“测试结果_CANtoUSB_失败.jpg“附图。
john_lee 发表于 2013-3-1 14:31 | 显示全部楼层
没用过NXP的USB,只能从USB协议方面帮助你,但你需要说明USB device的配置情况,如class,subclass,protocol等等,最好把所有的描述符都贴出来,如果在PC上装了驱动,也要说明。

评分

参与人数 1威望 +3 收起 理由
arm菜鸟人 + 3 感谢您的建议!

查看全部评分

 楼主| arm菜鸟人 发表于 2013-3-1 18:44 | 显示全部楼层
john_lee 发表于 2013-3-1 14:31
没用过NXP的USB,只能从USB协议方面帮助你,但你需要说明USB device的配置情况,如class,subclass,protoc ...

非常感谢你的回复与指导。
最后一个源码包里有配置描述符,不过我没有细看。PC上是要安装驱动的。
附件是USB上位机MFC源码以及驱动安装包。
说实话,在这方面是小白。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

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

本版积分规则

个人签名:感染属性。

34

主题

539

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部