CY7C68013开发应用记录----上位机程序编写.docVIP

CY7C68013开发应用记录----上位机程序编写.doc

  1. 1、本文档共5页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
CY7C68013的开发应用记录----上位机程序的编写 2009年07月05日 星期日 下午 10:57 一) USB的基础知识 (二) 硬件电路设计 (三) 固件程序的编写 (四) 驱动程序的制作 (五) 外部控制器的实现(在FPGA里实现) (六) 上位机程序(VC)的编写 (七) 开发过程的总结 ?? 上位机的程序我采用在VC的环境下,用MFC来开发,因为工程只需要上位机能通过USB控制芯片(CY7C68013)与控制板上的FPGA进行数据传输,并将数据的值用图形来显示,所以上位机的程序开发起来就比较容易了。 ?? 我采用GDP通用驱动程序(ezusb.sys)作为底层接口(好像cyusb.sys也类似,不过没用过),开发的软件里就直接调用ezusb.sys提供的接口函数与宏定义,这些包含在ezusb.h里。基于上述的需求,要开发的软件里与USB相关的主要包括这么三部分:建立与USB设备的连接,读取数据,写入数据。下面分别介绍: ?? 建立与USB设备的连接 ?? 我采用的是用设备名来连接USB设备,这种方式可能只适合只有一个这样的USB设备,设备名称为\\\\.\\EZUSB-0。程序的源代码如下: ?? //连接USB设备 ?? CString strTemp; ?? char devName[64] = ; ?? strcat(devName,\\\\.\\EZUSB-0); ?? m_hDevice = CreateFile(devName, ?? ?? ?? ??? GENERIC_WRITE | GENERIC_READ, ?? ?? ?? ??? FILE_SHARE_WRITE | FILE_SHARE_READ, ?? ?? ?? ??? NULL, ?? ?? ?? ??? OPEN_EXISTING, ?? ?? ?? ??? FILE_ATTRIBUTE_NORMAL, ?? ?? ?? ??? NULL ?? ?? ?? ??? ); ?? if (m_hDevice == INVALID_HANDLE_VALUE) ?? { ?? ?? ?? ??? AfxMessageBox(打开设备失败!); ?? }else ?? ?? ?? ??? AfxMessageBox(EZ-FX2 打开成功!); ?? 打开一个设备时也可以用GUID来打开,这样更容易理解,但操作上好像麻烦些,我没有调试成功,这部分类容可以参照开发包提供的源代码文件device.h。 ?? 读取数据 ?? 这部分用DeviceIoControl函数加上驱动提供的接口宏定义(源代码中用绿色来标示)来实现。程序的源代码如下: ?? OnDatain() { ?? // TODO: Add your control notification handler code here ?? UpdateData(); ?? BULK_TRANSFER_CONTROL bulkTranCtrl; ?? bulkTranCtrl.pipeNum = m_inPip; ?? BOOL revRst; ?? DWORD nBytes; //保存实际接收的数据的个数 ?? revRst = DeviceIoControl( ?? ?? ?? ?? ?? ?? ?? ?? m_hDevice, ?? ?? ?? ?? ?? ?? ?? ?? IOCTL_EZUSB_BULK_READ, ?? ?? ?? ?? ?? ?? ?? ?? (PVOID)bulkTranCtrl, ?? ?? ?? ?? ?? ?? ?? ?? sizeof(BULK_TRANSFER_CONTROL), ?? ?? ?? ?? ?? ?? ?? ?? gDataRevBuffer, ?? ?? ?? ?? ?? ?? ?? ?? INDATA_MAXSIZE, ?? ?? ?? ?? ?? ?? ?? ?? nBytes, ?? ?? ?? ?? ?? ?? ?? ?? NULL ?? ?? ?? ?? ?? ?? ?? ?? ); ?? if (revRst) ?? //接收成功 ?? { ?? ?? ?? ??? showData(gDataRevBuffer,nBytes,TRUE); //显示接收到的数据 ?? }else{ ?? ?? ?? ??? DWORD error = ERROR_NO_MORE_ITEMS; ?? ?? ?? ??? error = GetLastError(); ?? ?? ?? ??? AfxMessageBox(接收数据失败!); ?? } } ?? 写入数据 ?? 这部分用DeviceIoControl函数加上驱动提供的接口宏

文档评论(0)

0520 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档