发一下牢骚和主题无关:
USBCAN-II已停产,前目它的升级版本为USBCAN-2E-U,之前我有过一篇文章论讨USBCAN-II的使用方法,见:点http://blog.csdn.net/flydream0/article/details/8088248.本文的的目是论讨两者在使用上的区分,以便将原有的USBCAN-II的源码植移到USBCAN-2E-U上来.
细心看了下USBCAN-2E-U的开辟手册,发明于对相USBCAN-II来讲,在初始化时,USBCAN-2E-U要必要设置波特率,否则不能畸形通信,设置波特率是通过VCI_SetReference接口来实现的,函数型原为:
DWORD __stdcallVCI_SetReference(DWORD DevType,DWORD DevIndex,DWORD CANIndex,DWORD RefType,PVOID pData);
这个函数本来是设置关相加参的意思,在不同的设备类型拥有不同的含意,但在DevType=USBCAN-2E-U,且RefType=0时示表设置波特率的含意:
一个实始化的例实如下:
//开打设备 if(VCI_OpenDevice(m_devtype,index,0)!=STATUS_OK) { MessageBox("开打设备失败!","正告",MB_OK|MB_ICONQUESTION); return; } //设置波特率 if(m_devtype ==VCI_USBCAN_2E_U) { DWORD baud =0x060007; if (VCI_SetReference(m_devtype,index, cannum, 0, &baud) != STATUS_OK) { MessageBox(_T("设置波特率误错,开打设备失败!"), _T("正告"), MB_OK | MB_ICONQUESTION); VCI_CloseDevice(m_devtype,index); return; } } //初始化CAN if(VCI_InitCAN(m_devtype,index,cannum,&init_config)!=STATUS_OK) { MessageBox("初始化CAN失败!","正告",MB_OK|MB_ICONQUESTION); VCI_CloseDevice(m_devtype,index); return; } //... //启动CAN if(VCI_StartCAN(m_devtype,m_devind,m_cannum)==1) { ShowInfo("启动功成",0); } else { CString str; str="启动失败"; ShowInfo(str,2); }
只要在初始化分部加增设置波特率作操,就能将USBCAN-II的源码很好的植移到USBCAN-2E-U上了.
其它的,接收过滤器上的接口也做了化优,这里就不做概况分析了.
文章结束给大家分享下程序员的一些笑话语录: 看新闻说中国输入法全球第一!领先了又如何?西方文字根本不需要输入法。一点可比性都没有。