- 1、本文档共5页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 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函数加上驱动提供的接口宏
您可能关注的文档
最近下载
- 人乳头瘤病毒感染护理.pptx VIP
- 压疮品管圈成果汇报PPT幻灯片.ppt VIP
- 车险承保方案.pdf VIP
- 中华民族共同体概论教案合集(第一讲-第十六讲)附《中华民族共同体概论》课程大纲.doc VIP
- “中华民族共同体概论”课程教学与建设关键问题探讨.docx VIP
- 诸侯纷争与变法运动【课件】.pptx VIP
- 中国高血压防治指南(2024年修订版)_中国高血压防治指南修订委员会__.pdf VIP
- “扬子石化杯”2024年第38届中国化学奥林匹克(江苏赛区)初赛化学.pdf VIP
- 民事诉讼法中案外第三人对执行的异议之诉.pdf VIP
- “扬子石化杯”2024年第38届中国化学奥林匹克(江苏赛区)初赛化学试卷含答案.pdf VIP
文档评论(0)