微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 测试测量 > Labview > cy7c68013A控制传输通信上位机下位机程序源码详解

cy7c68013A控制传输通信上位机下位机程序源码详解

时间:10-02 整理:3721RD 点击:
cy7c68013A控制传输通信上位机下位机程序源码详解
(1)上行数据发送
下位机程序:
#define SC_SendData    0xAC        // Setup command: 发送数据    USB->PC      0xAC

case SC_SendData:            // 发送数据         USB->PC
    if(DR_USB2PC());
    break;

// 发送数据   设备->主机
BOOL DR_USB2PC(void)                //请求码0xAC
{
    int i;
    for(i=0;i EP0BUF[i]
    }
    EP0BCH=0;
    EP0BCL=0x40;                  // 一次发送64个数据
    EZUSB_Delay(100);            // 延迟100毫秒
    EP0CS|=bmHSNAK;                // 握手信号                                       
    return(TRUE);                //返回TRUE,函数过程结束
}

上位机程序:
void CSJCJVCDlg::OnButton6()
{
    // TODO: Add your control notification handler code here
    CString str;
    LONG buflen=64;
    ept->Target =TGT_DEVICE;
    ept->ReqType=REQ_VENDOR;
    ept->Direction=DIR_FROM_DEVICE;
    ept->ReqCode=0xAC;                //请求码,从设备到主机的数据传输
    ept->Value =0;
    ept->Index=0;
    PUCHAR buf=new UCHAR[64];
    ZeroMemory(buf,64);                //初始化数组为零数组
    ept->XferData(buf,buflen);            //接收数据
    str.Format("和=%d",buf[0]+buf[1]+buf[2]);
    SetDlgItemText(IDC_EDIT2,str);
}
(2)下行数据发送
上位机程序:
//  下行数据,主机->USB
void CSJCJVCDlg::OnButton5()
{
    // TODO: Add your control notification handler code here
    int i;
    ept->Target =TGT_DEVICE;
    ept->ReqType=REQ_VENDOR;
    ept->Direction=DIR_TO_DEVICE;
    ept->ReqCode=0xAB;            //发送请求码,从主机到设备的数据传输
    ept->Value =0;
    ept->Index=0;
    PUCHAR buf=new UCHAR[64];
    ZeroMemory(buf,64);
    LONG buflen=64;
    //buf[0]=0xAB;
    for(i=0;i XferData(buf,buflen);        //发送数据
}

下位机程序:
#define SC_ReceiveData    0xAB            // Setup command: 接收数据     PC->USB      0xAB
case SC_ReceiveData:                 // 接收数据        PC->USB
    if(DR_PC2USB());
    break;
// 发送数据   设备->主机
BOOL DR_USB2PC(void)                //请求码0xAC
{
    int i;
    for(i=0;i EP0BUF[i]
    }
    EP0BCH=0;
    EP0BCL=0x40;                  // 一次发送64个数据
    EZUSB_Delay(100);            // 延迟100毫秒
    EP0CS|=bmHSNAK;                // 握手信号                                       
    return(TRUE);                //返回TRUE,函数过程结束
}


非常不错的参考

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top