历史上的今天
今天是:2024年12月11日(星期三)
2019年12月11日 | ARM USB 通信
2019-12-11 来源:eefocus
采用ZLG的动态链接库,动态装载。
ARM是Context-M3-1343。
在C++ Builder 6 中开发的上位机通信软件。
USB通信代码如下:
//---------------------------------------------------------------------------
#include #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[1024],recbuf[1024]; int i; unsigned char Inbyte; for (i = 0; i < sizeof(sendbuf); i++) { sendbuf[i] = Inbyte; //16进制字节放进发送缓冲区4096字节 recbuf[i] = 0; //清空接收缓冲区 } /******************* 下面开始使用动态库 ***********************/ int ret; AnsiString m_Disp = " china"; unsigned char cmd[2],ack; cmd[0] = sizeof(sendbuf) / 256; //需要发送的字节数量的长度的高 8 位 cmd[1] = sizeof(sendbuf) % 256; // 低 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(2, recbuf, sizeof(sendbuf), 1000); if (ret != sizeof(sendbuf)) { if (ret <= 0) { m_Disp = "逻辑端点 2 接收数据错误: 未接收到有效数据。"; } else if (ret > 0) { m_Disp = "逻辑端点 2 接收数据错误: 接收到 部分数据。"; } // MessageBox("逻辑端点 2 接收数据错误"); return; } //显示收到的字节 m_Disp = ""; int temp = 0; temp = recbuf[0] + recbuf[1] * 256; m_Disp= IntToStr(temp) + " "; for (i = 0; i < sizeof(sendbuf); i++) m_Disp = m_Disp + recbuf[i] + " "; Memo1->Text = m_Disp; FreeLibrary(handle); } //---------------------------------------------------------------------------
史海拾趣
|
概述: CN3063是可以用太阳能电池供电的单节锂电池充电管理芯片.该器件 内部包括功率晶体管,应用时不需要外部的电流检测电阻和阻流二极管. 内 ...… 查看全部问答> |
|
一、概述 对于一般控制,设备间连锁可以通过串行网络完成。因此,BOSCH公司开发了CAN总线(Controller Area Network),并已取得国际标准化组织认证(ISO11898),其总线结构可参照I SO/OSI参考模型。同时,国际上一些大的半导体 ...… 查看全部问答> |
|
编译embedded flash出现了impossible constraint in `asm\'错误,不知道怎么解决,是修改makefile文件么?… 查看全部问答> |
|
本人最近在做T-DMB项目,想问问AAC++方面的! 我现在把SL包解析后获得SL包负载数据是如何组织的?我要对AAC++解码,该如何处理SL包的负载? 有搞过这方面的大侠吗?给点提示,定重谢! 我最想知道到底解析音频SL包后的数据是啥格 ...… 查看全部问答> |
|
项目要通过IO端口通讯数据,本人不会汇编,在网上看到可以嵌入汇编,我的代码如下,每次读上来数据都是0xFF,是哪里有问题吗?第一次用evc通过模拟器显示,也不知如何单步执行,比较痛苦。高手指点。 unsigned char pio_inbyte( WORD addr ) { u ...… 查看全部问答> |
|
求助:wince5.0 开发电池充电,并能显示电量充电状态图标? 2440开发板,用电池供电,不能显示电池图标,怎么能显示电池图标,并能显示实时显示电池电量?请各位朋友帮助.万分感激. … 查看全部问答> |




