这个帖子首先是找各位的帮助;其次,也是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)
{
|