ARM USB 通信(转)
ARM USB 通信
采用ZLG的动态链接库,动态装载。
ARM是Context-M3-1343。
在C++ Builder 6 中开发的上位机通信软件。
USB通信代码如下:
//--------------------------------------------------------------------------- #include <vcl.h>
#pragma hdrstop #include "Unit1.h"
//#include "zyUSBDev.h" //---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//--------------------------------------------------------------------------- void __fastcall TForm1::Button1Click(TObject *Sender)
{
unsigned char sendbuf[],recbuf[];
int i; unsigned char Inbyte;
for (i = ; i < sizeof(sendbuf); i++)
{
sendbuf[i] = Inbyte; //16进制字节放进发送缓冲区4096字节
recbuf[i] = ; //清空接收缓冲区
} /******************* 下面开始使用动态库 ***********************/
int ret;
AnsiString m_Disp = " china";
unsigned char cmd[],ack;
cmd[] = sizeof(sendbuf) / ; //需要发送的字节数量的长度的高 8 位
cmd[] = sizeof(sendbuf) % ; // 低 8 位 HINSTANCE handle;
FARPROC lpFarProc;
int __stdcall (*pFun)(int,unsigned char*,int,int);//change handle = LoadLibrary("zyUSBDev.dll");
lpFarProc = GetProcAddress(handle, "zyUSB_ReadData");
pFun = (int(__stdcall*)(int,unsigned char*,int,int))lpFarProc; //__cdecl //第五步: 用逻辑端点2, 接收来自 USB 设备的大量数据
ret = pFun(, recbuf, sizeof(sendbuf), );
if (ret != sizeof(sendbuf))
{
if (ret <= )
{
m_Disp = "逻辑端点 2 接收数据错误: 未接收到有效数据。";
}
else if (ret > )
{
m_Disp = "逻辑端点 2 接收数据错误: 接收到 部分数据。";
} // MessageBox("逻辑端点 2 接收数据错误");
return;
} //显示收到的字节
m_Disp = "";
int temp = ;
temp = recbuf[] + recbuf[] * ;
m_Disp= IntToStr(temp) + " ";
for (i = ; i < sizeof(sendbuf); i++)
m_Disp = m_Disp + recbuf[i] + " "; Memo1->Text = m_Disp;
FreeLibrary(handle);
}
//---------------------------------------------------------------------------
ARM USB 通信(转)的更多相关文章
- 使用Wireshark捕捉USB通信数据
USB,是英文Universal Serial Bus(通用串行总线)的缩写,而其中文简称为“通串线”,是一个外部总线标准,用于规范电脑与外部设备的连接和通讯.USB接口支持设备的即插即用和热插拔功能 ...
- Ubuntu虚拟机与Window、Arm的通信
Ubuntu虚拟机与Window的通信安装有Ubuntu14.04的虚拟机VMware,将虚拟机的网络适配器配置成NAT类型(默认使用VMnet8进行通信),此时将Ubuntu的IP地址设置成与VMn ...
- C#基于LibUsbDotNet实现USB通信(一)
网上C#USB通信的资料比较少, 基本上都是基于LibUsbDotNet 和 CyUsb, 关于打印机设备的还有一个OPOS. 本篇文章基于LibUsbDotNet. 1. 下载并安装 LibUsbD ...
- usb通信小结
2010-07-25 16:52:00 目前了解了usb通信层面的一些基础知识如下.如果有空还要再了解hid报告描述符及协议的数据包波形. 一,USB的一些基本概念 1. 管道(Pipe) 是主机和设 ...
- VC++ 6.0 C8051F340 USB 通信 CAN 数据解析
// HelloWorld.cpp : Defines the entry point for the console application. // /*********************** ...
- 基于usb4java实现的java下的usb通信
项目地址:点击打开 使用java开发的好处就是跨平台,基本上java的开发的程序在linux.mac.MS上都可以运行,对应这java的那句经典名言:一次编写,到处运行.这个项目里面有两种包选择,一个 ...
- VS2015 C# 编写USB通信上位机时,改变net框架导致DLL调用失败的问题解决方法
最近在写USB通信的上位机,调用了windows里的DLL,开发环境:64位WIN7 .VS2015.NET4.5.2:开发完成后在自己的电脑可用,在32位电脑.NET其他版本以及WIN10的环境下不 ...
- 【转】Android实战技巧之四十九:Usb通信之USB Host
零 USB背景知识 USB是一种数据通信方式,也是一种数据总线,而且是最复杂的总线之一. 硬件上,它是用插头连接.一边是公头(plug),一边是母头(receptacle).例如,PC上的插座就是母头 ...
- USB:USB通信中的端点(endpoint)和四种传输模式
USB的传输模式有4种,分别是控制传输(Control Transfer).中断传输(Interrupt Transfer).批量传输或叫块传输(Bulk Transfer).实时传输或叫同步传输(I ...
随机推荐
- 进程中join方法的使用
在进程中:join方法 是让主进程等待子进程运行完毕后再执行主进程的.(即主进程阻塞) 示例 # -*- coding: utf-8 -*- from multiprocessing import P ...
- GCC编译流程浅析
GCC-GCC编译流程浅析 序言 对于大多数程序员而言,大家都知道gcc是什么,但是如果不接触到linux平台下的开发,鲜有人真正了解gcc的编译流程,因为windows+IDE的开发模式简直是一条龙 ...
- synchronize——对象锁和类锁
最近在研究Java 多线程的只是,经常能看到synchronize关键字,以前只是一眼带过,没有细究,今天趁这个机会,整理下 synchronize作为多线程关键字,是一种同步锁,它可以修饰以下几种对 ...
- scala 中的匹配模式
unapply 仅作匹配,不作其它输出.返回 Boolean 值 object UpperCase { def unapply(s: String): Boolean = s.toUpperCase ...
- onreadystatechange和onload区别分析
onreadystatechange和onload区别分析 script加载 IE的script 元素只支持onreadystatechange事件,不支持onload事件. FireFox,Op ...
- 给jenkins更换工作空间
如果使用jenkins的默认工作空间,它默认安放在 /var/lib/jenkins 目录下,但这个在分配Linux磁盘的时候,一般为40G,时间长或者项目多的话,很容易将磁盘空间占满,所以我们需要将 ...
- Hive中的SQL执行计划--几乎所有的SQL都有
explain SQL 会解释SQL的执行过程
- 关于吲哚美辛(NSAIDS)对袢利尿药的影响。
吲哚美辛 一方面是解热镇痛抗炎药,是最强的PG合成酶抑制药之一,另一方面,吲哚美辛可于袢利尿药如呋塞米.依他尼酸竞争近曲小管有机酸分泌途径,可以影响后者的排泄和作用. 吲哚美辛可以抑制前列腺素的合成, ...
- Web API design
Web API design 28 minutes to read Most modern web applications expose APIs that clients can use to i ...
- 2019.12.07 java计算
class Demo05{ public static void main(String[] args) { int a=1; a++; int b=1 + a++ + a + a++; System ...