// HelloWorld.cpp : Defines the entry point for the console application.
//

/****************************************************************************                   VC++ 6.0 C8051F340 USB 通信 Demo* 声明:*     1. 本程序另外需要C8051F340单片机程序配合;*     2. 本程序是在拥有SiUSBXp.h、SiUSBXp.lib、SiUSBXp.dll的基础上做的,*         本人目前还并不知道这是从何而来,同事遗留。*     *                                2015-7-11 晴 深圳 南山平山村 增剑锋**************************************************************************/#include "stdafx.h"
#include <windows.h>
#include <time.h>
#include "SiUSBXp.h"
#include <string.h>int main(int argc, char* argv[])
{printf("Hello World!\n");HANDLE m_hUSBDevice  = INVALID_HANDLE_VALUE;DWORD  dwNumDevices  = 0;// 获取系统当前有多少可用设备SI_GetNumDevices(&dwNumDevices);                                printf("zengjf debug: dwNumDevices = %d.\n", dwNumDevices);// 如果设备数为零,则没必要继续运行if(dwNumDevices ==0)                                            return -1;// 打开第0个可用的设备if ( SI_Open(0, &m_hUSBDevice) == SI_SUCCESS)printf("zengjf debug: SI_Open USBDevice success.\n");    else {printf("zengjf debug: SI_Open USBDevice fails.\n");return -1;}// 初始化一些要传输的数据和一些将需要的数据char    testData[17]  = "zengjf";DWORD   hasWritten    = 0;DWORD   hasRead       = 0;// 将数据写入C8051F340单片机if ( SI_Write( m_hUSBDevice, testData, strlen(testData), &hasWritten) == SI_SUCCESS ) printf("zengjf debug: SI_Write USBDevice success, hasWritten length = %d.\n", hasWritten);else {printf("zengjf debug: SI_Write USBDevice fails.\n");return -1;}// 睡眠1s,等待数据返回,这里是因为已经在C8051F340单片机内部已经设置了,会返回一串字符Sleep(1000);// 重新清理掉testData中的数据,为接收数据做准备memset(testData, 0, sizeof(testData));// 读取单片机内部C8051F340单片机发送回来的数据,单片机只发了16个字符,hasRead中保留真事读取字符个数if ( SI_Read( m_hUSBDevice, testData, 20, &hasRead) == SI_SUCCESS ) {printf("zengjf debug: SI_Read USBDevice success, hasRead length = %d.\n", hasRead);printf("zengjf debug: get data from C8051F340 -- testData[ %s ].\n", testData);} else {printf("zengjf debug: SI_Read USBDevice fails.\n");return -1;}// 关闭通信连接if ( SI_Close(m_hUSBDevice) == SI_SUCCESS )printf("zengjf debug: SI_Close USBDevice success.\n");else {printf("zengjf debug: SI_Close USBDevice fails.\n");return -1;}return 0;
}

转载于:https://www.cnblogs.com/zengjfgit/p/4638819.html

VC++ 6.0 C8051F340 USB PC侧通信 Demo相关推荐

  1. VC++ 6.0 C8051F340 MFC programming note

    /*************************************************************************************** VC++ 6.0 C8 ...

  2. VC++6.0上实现PC机与单片机串口通信的PC端上位机软件

    1.简介 我做这个的主要原因是选了一个PC和单片机的全双工串口通信作为课设题目,单片机端是用汇编语言编程且要预先下载到板子里,关于这个这里我就不多说,主要说说怎么实现PC端的上位机软件.早知道要写软件 ...

  3. STM32开发,串口和PC机通信(串口中断、FIFO机制),安富莱+正点原子程序合并

    STM32开发,串口和PC机通信(串口中断.FIFO机制),安富莱+正点原子程序合并 1 概述 1.1 资源概述 1.2 实现功能 2 软件实现 2.1实现步骤 2.2 main()函数代码 2.3 ...

  4. RS232接口转USB接口的通信方法

    2006-05-03 21:44:07 组图]RS232接口转USB接口的通信方法 RS232接口转USB接口的通信方法 USB作为一种新的PC机互连协议,使外设到计算机的连接更加高效.便利.这种接口 ...

  5. android 4.0.4 usb调试,安卓手机4.0怎么打开usb调试?图文详解附视频

    安卓手机更新换代的太快,系统每次升级多少会有点不同 总会有那么点不适应,就连如何调试USB都不知道怎么设置了? 下面就来就讲讲目前主流品牌手机4.0手机USB调试. 大部分Android设备打开&qu ...

  6. 计算机dos通讯,PC双机通信DOS

    <PC双机通信DOS>由会员分享,可在线阅读,更多相关<PC双机通信DOS(64页珍藏版)>请在人人文库网上搜索. 1.1 第第9 9章章 串行通信接口串行通信接口 主要内容: ...

  7. 单片机与PC机一样都是计算机,51单片机与PC机通信资料

    <51单片机与PC机通信资料>由会员分享,可在线阅读,更多相关<51单片机与PC机通信资料(14页珍藏版)>请在人人文库网上搜索. 1.专业综合实习报告专 业: 电子信息工程 ...

  8. 基于VC++6.0的DLL开发

    原文地址:http://blog.163.com/twnhr@126/blog/static/78927547200910254346804/ 基于VC++6.0的DLL开发 最近在开发一个基于网络的 ...

  9. 用VC++6.0 Sockets API实现聊天室程序

    用VC++6.0 Sockets API实现聊天室程序 1.VC++网络编程及Windows Sockets API简介 VC++对网络编程的支持有socket支持,WinInet支持,MAPI和IS ...

最新文章

  1. CodeForces 679B Bear and Tower of Cubes
  2. Android图片360全景旋转
  3. 《浪潮之巅》读书笔记(中)
  4. sqoop mysql 安装_Sqoop安装及验证_MySQL
  5. adobe stream的最后一行空行_玩转Java8Stream(五、并行Stream)
  6. 用VC++绘制位图按钮
  7. dateutils 工具类_五金工具泡壳封边机
  8. Python内置函数sorted()高级排序用法
  9. 如何限制修改IP地址
  10. Goland的常用快捷键
  11. 软件开发 外包_软件开发外包:选择它的理由
  12. Windows | 管理员权限打开CMD 快捷键
  13. 【ITSM】什么是ITSM,IT部门为什么需要ITSM
  14. npm run build时报错“caniuse-lite is outdated”
  15. Word Maze(单词迷宫)
  16. 手游大话藏宝阁找不到服务器,大话西游手游藏宝阁指定交易在哪里 藏宝阁怎么没有指定我...
  17. wildfly部署springboot项目
  18. 一切编程语言都是纸老虎
  19. GridView分页功能
  20. ClassNotFoundException: org.apache.spark.AccumulatorParam 解决方案

热门文章

  1. 关于Android studio找不到sqlite数据库的解决方法
  2. HDU 4864 Task(贪心或高斯消元)
  3. 教育行业的互联网焦虑症
  4. 跟我学PHP第二篇- 配置Mysql以及PHP WampServer篇(1)
  5. SQL注入漏洞全接触--高级篇
  6. 数据源的配置和使用 视频下载
  7. qqsafe病毒 arp网站挂马 原理剖析-786ts.qqsafe-qqservicesyydswfhuw8ysjftwf.org(转载)
  8. Selenium-基础操作
  9. Python实现将不规范的英文名字首字母大写
  10. Atcoder 084D - Small Multiple(最短路径+思维)