亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? unit1.cpp

?? Ch372開發軟硬件詳細資料,硬件為CH372+8051 軟件為VB或VC皆有
?? CPP
字號:
//---------------------------------------------------------------------------

#include <vcl.h>
#pragma hdrstop

#include <stdio.h>
#include "Unit1.h"
#include "CH375DLL.H"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
UINT	mKeyCode = 0xff;		// 按鍵編號
HWND        mSaveDialogMain;	// 主對話框

//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
    mCaptionInform = " 信息提示 ";
    mIndex = 0;
    edtN1->Text = "";
    edtCmd->Text = "";
    edtInt->Text = "";
    mSaveDialogMain = this->Handle;

    if ( LoadLibrary( "CH375DLL.DLL" ) == NULL )  // 加載DLL失敗,可能未安裝到系統中
    {
        Application->MessageBox("無法加載CH375的DLL", "information", MB_ICONSTOP | MB_OK );
    }
    else if ( CH375OpenDevice(0) == INVALID_HANDLE_VALUE ) // 使用之前必須打開設備
    {
        Application->MessageBox("無法打開CH375設備", "information", MB_ICONSTOP | MB_OK );
    }
    CH375SetTimeout( mIndex, 3000, 3000 );  // 設置USB數據讀寫的超時,超過3000mS未完成讀寫將強制返回,避免一直等待下去
    CH375SetExclusive( mIndex, FALSE );  // 臨時設置共享使用當前CH375設備,因為下面設置中斷服務程序時需要使用當前這個CH375設備

    // 下面加載中斷服務程序,中斷服務程序是在應用層執行的,其線程優先級是THREAD_PRIORITY_TIME_CRITICAL
    // 當單片機有事需要通知計算機時,可以用CMD_WR_USB_DATA5命令寫入中斷特征數據,計算機的mInterruptEvent線程將會收到該中斷特征數據
    // 然后mInterruptEvent線程向主程序發出消息進行處理,mInterruptEvent線程相當于中斷服務程序,代替主程序定時查詢單片機
    CH375SetIntRoutine( mIndex, mInterruptEvent );

    CH375SetExclusive( mIndex, TRUE );  // 設置獨占使用當前CH375設備,在此之后其它應用程序不能同時使用當前這個CH375設備

}

//---------------------------------------------------------------------------
void __fastcall TForm1::btnSendClick(TObject *Sender)
{
    mCOMMAND_PACKET mDemoReq;
    UINT 		mLength;
    UCHAR       mEnterBuffer[8];
    if(edtN1->GetTextLen()>0)
    {
        UCHAR	mBcdCode;
        UCHAR	mNumber;
        strcpy(mEnterBuffer,edtN1->Text.c_str());
        if ( mEnterBuffer[0] == ' ' ) mBcdCode = 0x10;  // 空格
        else if ( mEnterBuffer[0] == '=' ) mBcdCode = 0x13;
        else if ( mEnterBuffer[0] == '.' ) mBcdCode = 0x1a;
        else mBcdCode = mCharToBcd( mEnterBuffer[0] );
        // 如果輸入一個字符和一個小數點,則在字符右下角追加小數點
        if ( edtN1->GetTextLen() >= 2 && mEnterBuffer[1] == '.' ) mBcdCode |= 0x80;
        if ( mBcdCode != 0xff )  // 輸入的字符有效
        {
            mNumber = 7;  // 以最高位為左,最低位為右,所以N1對應位7,N8對應0
            mDemoReq.mCommandCode = DEMO_CH451_CMD;
            mDemoReq.mCommandCodeNot = ~ DEMO_CH451_CMD;
            mDemoReq.mParameter[2] = 0x08 | mNumber;  // CH451命令:加載字數據到指定數碼管
            mDemoReq.mParameter[1] = mBcdCode;  // 字數據,對應于BCD譯碼方式
            mLength = CONST_CMD_LEN;	// 命令包的長度
            if ( CH375WriteData( mIndex, (void *)&mDemoReq, (unsigned long *)&mLength ) )  // 通過CH375發送數據,成功
// 如果輸入時mLength大于64,則成功返回時,為了更加可靠,可以檢查實際發送的長度是否符合
            {
                mEnterBuffer[1] = 0;  // 字符串結束符,只要一個字符
             //   SetDlgItemText( hDialog, LOWORD( wParam ), mEnterBuffer );   //設置按鈕上的字符
            }
            else Application->MessageBox( "CH375WriteData 失敗", mCaptionInform, MB_OK | MB_ICONERROR );
        }
        else Application->MessageBox( "請輸入字符0-9,A-F或者空格", mCaptionInform, MB_OK | MB_ICONERROR );
    }
    else
        Application->MessageBox("請輸入字符0-9,A-F或者空格",mCaptionInform,MB_OK|MB_ICONSTOP);
    
}
//---------------------------------------------------------------------------

void __fastcall TForm1::btnCloseClick(TObject *Sender)
{
    CH375CloseDevice( mIndex );
    this->Close();
}
//---------------------------------------------------------------------------

void __fastcall TForm1::btnCmdClick(TObject *Sender)
{
    mCOMMAND_PACKET mDemoReq;
    UINT 		mLength;
    UCHAR       mEnterBuffer[8];
  //  UINT	mBufferLength = 0;
    if ( edtCmd->GetTextLen() >= 3 )  // 已經輸入數據,并且長度超過3位
    {
        UCHAR	mBcdCode[3];
        strcpy(mEnterBuffer,edtCmd->Text.c_str());
        mBcdCode[0] = mCharToBcd( mEnterBuffer[0] );
        mBcdCode[1] = mCharToBcd( mEnterBuffer[1] );
        mBcdCode[2] = mCharToBcd( mEnterBuffer[2] );
        if ( mBcdCode[0] != 0xff && mBcdCode[1] != 0xff && mBcdCode[2] != 0xff )  // 輸入的三個字符都有效
        {
            mDemoReq.mCommandCode = DEMO_CH451_CMD;
            mDemoReq.mCommandCodeNot = ~ DEMO_CH451_CMD;
            mDemoReq.mParameter[2] = mBcdCode[0];  // CH451命令:高4位
            mDemoReq.mParameter[1] = mBcdCode[1] << 4 | mBcdCode[2];  // 低8位的字節數據
            mLength = CONST_CMD_LEN;	// 命令包的長度
            if ( CH375WriteData( mIndex, (void *)&mDemoReq, (unsigned long *)&mLength ) )  // 通過CH375發送數據,成功
                Application->MessageBox( "命令成功發送到CH451", mCaptionInform, MB_OK );
            else Application->MessageBox( "CH375WriteData 失敗", mCaptionInform, MB_OK | MB_ICONERROR );
        }
        else Application->MessageBox( "請輸入3個字符0-9,A-F", mCaptionInform, MB_OK | MB_ICONERROR );
    }
    else Application->MessageBox( "請至少輸入3個字符0-9,A-F", mCaptionInform, MB_OK | MB_ICONERROR );
}
//---------------------------------------------------------------------------

UCHAR	TForm1::mCharToBcd(	UCHAR	iChar )  // 輸入的ASCII字符
{
	UCHAR	mBCD;
	if ( iChar >= '0' && iChar <= '9' ) mBCD = iChar -'0';
	else if ( iChar >= 'A' && iChar <= 'F' ) mBCD = iChar - 'A' + 0x0a;
	else if ( iChar >= 'a' && iChar <= 'f' ) mBCD = iChar - 'a' + 0x0a;
	else mBCD = 0xff;
	return( mBCD );
}
void __fastcall TForm1::edtN1KeyPress(TObject *Sender, char &Key)
{
    if(Key == 13)
        this->btnSend->Click();

}
//---------------------------------------------------------------------------

void __fastcall TForm1::edtCmdKeyPress(TObject *Sender, char &Key)
{
    if(Key == 13)
        this->btnCmd->Click();
}
//---------------------------------------------------------------------------

VOID	CALLBACK	mInterruptEvent(  // 中斷服務程序
	PUCHAR			iBuffer )  // 指向一個緩沖區,提供當前的中斷特征數據
{

// CH375產生中斷后,產生一個消息通知主程序
	if ( iBuffer[0] == 1 )  // 檢查中斷特征數據
	{
		mKeyCode = iBuffer[1] & 0x3f;  // 返回的鍵值,則單片機存放在中斷特征數據緩沖區的第2字節
		Form1->btnInt->Click();
	}
	else if ( iBuffer[0] == 2 )
        Form1->btnRe->Click();
   
// 如果使用中斷特征數據,則根據該數據作相應的處理
/*
	switch( iBuffer[0] )
	{
		case 1: 中斷特征數據為1
		case 2: 中斷特征數據為2
		.....
		case 6: 中斷特征數據為6
	}
*/
}
void __fastcall TForm1::btnIntClick(TObject *Sender)
{
    UCHAR buf[8];
   // sprintf(buf,"02x%",mKeyCode);
 //   SetDlgItemText(this,edtInt,buf);
    edtInt->Text=AnsiString(mKeyCode+1);
}
//---------------------------------------------------------------------------

void __fastcall TForm1::btnReClick(TObject *Sender)
{
    edtInt->Text = "0";
}
//---------------------------------------------------------------------------

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
在线视频你懂得一区| 日本一区二区三区高清不卡| 国产一区二区免费在线| 亚洲午夜免费视频| 亚洲欧洲精品成人久久奇米网| 久久久亚洲午夜电影| 精品久久五月天| 日韩精品一区二区三区中文精品| 欧美人牲a欧美精品| 欧美日韩免费不卡视频一区二区三区| 91激情五月电影| 欧美天天综合网| 欧美一区二区三区四区五区 | 中文字幕欧美激情| 欧美色中文字幕| 91精品免费观看| 一本大道久久a久久精二百| 国产成人99久久亚洲综合精品| 另类小说欧美激情| 久久精品999| 国产高清不卡二三区| 95精品视频在线| av动漫一区二区| 色哟哟亚洲精品| 欧美一区国产二区| 精品国产电影一区二区| 欧美国产日产图区| 亚洲欧美视频在线观看视频| 亚洲一区二区三区四区不卡| 蜜臀久久99精品久久久画质超高清| 激情小说欧美图片| 成人亚洲精品久久久久软件| 91在线免费视频观看| 91麻豆精品国产91久久久久久| 日韩精品一区在线观看| 国产精品美女视频| 日韩电影网1区2区| 国产精品一区二区在线观看不卡| 91在线观看美女| 欧美一区二区三区四区久久| 国产性色一区二区| 亚洲国产精品欧美一二99| 韩日av一区二区| 在线精品视频免费播放| 精品国产91九色蝌蚪| 亚洲精品免费播放| 国内精品久久久久影院薰衣草 | 久久精品免费观看| 95精品视频在线| 久久久久久毛片| 天堂成人国产精品一区| 成人免费视频app| 欧美一区二区三区小说| 亚洲欧美日韩中文字幕一区二区三区 | 国产成人综合自拍| 国产精品美日韩| 精品亚洲成a人| 欧美群妇大交群中文字幕| 欧美激情在线观看视频免费| 免费成人在线网站| 欧美性猛片xxxx免费看久爱| 国产人妖乱国产精品人妖| 久久国产精品99久久久久久老狼| 色婷婷久久一区二区三区麻豆| 国产色综合久久| 麻豆高清免费国产一区| 在线精品视频一区二区| 亚洲人123区| 91麻豆免费观看| 国产精品久久久久久久久晋中 | 精品欧美黑人一区二区三区| 亚洲自拍偷拍欧美| 91在线一区二区三区| 久久精品一区二区三区av| 精品亚洲成a人在线观看| 91精品在线免费观看| 亚洲色大成网站www久久九九| 成人不卡免费av| 欧美激情综合在线| 成人免费视频一区二区| 国产精品国产三级国产aⅴ无密码 国产精品国产三级国产aⅴ原创 | 欧美va天堂va视频va在线| 美女性感视频久久| 在线观看亚洲a| 亚洲国产精品自拍| 欧美情侣在线播放| 蜜桃视频免费观看一区| 欧美一区二区三区性视频| 美腿丝袜亚洲一区| 欧美精品一区二区三区久久久| 久久超碰97人人做人人爱| 精品国产乱码久久久久久久久| 国产一区二区三区av电影 | 在线免费观看视频一区| 亚洲女子a中天字幕| 在线精品视频一区二区三四| 亚洲丰满少妇videoshd| 欧美精品在线一区二区| 久久激情五月婷婷| 国产日韩欧美综合一区| caoporen国产精品视频| 亚洲精品中文字幕乱码三区| 欧美做爰猛烈大尺度电影无法无天| 亚洲国产日韩av| 日韩欧美中文字幕公布| 国产精品亚洲人在线观看| 亚洲欧洲一区二区在线播放| 色8久久精品久久久久久蜜| 亚洲成人黄色影院| 久久中文娱乐网| 色域天天综合网| 日日骚欧美日韩| 中文一区在线播放 | 午夜在线成人av| 欧美成人aa大片| 91视频精品在这里| 奇米888四色在线精品| 国产嫩草影院久久久久| 日本国产一区二区| 国产麻豆精品视频| 亚洲一区在线电影| 国产欧美日韩综合| 欧美人与性动xxxx| 99re成人精品视频| 秋霞国产午夜精品免费视频| 国产精品盗摄一区二区三区| 欧美日韩国产不卡| 99视频精品在线| 韩国女主播一区二区三区| 亚洲另类色综合网站| 久久综合久久鬼色中文字| 欧美色国产精品| 91在线一区二区| 国产成人综合精品三级| 日本怡春院一区二区| 一区二区三区加勒比av| 久久精品水蜜桃av综合天堂| 欧美乱妇15p| 欧美午夜精品久久久久久孕妇| 国产一区二区福利| 久久国内精品自在自线400部| 亚洲综合图片区| 亚洲美女偷拍久久| 亚洲欧美在线高清| 中文字幕欧美区| 日本一区免费视频| 久久久不卡网国产精品一区| 欧美日本一区二区在线观看| 91国产精品成人| 在线精品视频免费观看| 色综合网色综合| 一本一道波多野结衣一区二区| 成人一级片在线观看| 国产成人av网站| 成人永久免费视频| 福利视频网站一区二区三区| 国产精品 欧美精品| 国产在线麻豆精品观看| 国产在线视视频有精品| 国模少妇一区二区三区| 国产尤物一区二区| 国产精品一区二区三区99| 国产最新精品免费| 国产九九视频一区二区三区| 国内精品视频一区二区三区八戒| 麻豆精品视频在线观看视频| 麻豆精品精品国产自在97香蕉 | 国产精品一区二区在线观看不卡 | 国产欧美日韩视频一区二区| 国产亚洲短视频| 国产精品久久久久一区二区三区共| 中文字幕精品综合| 国产精品久久久久四虎| 亚洲乱码国产乱码精品精可以看| 亚洲一本大道在线| 亚洲成人av一区二区三区| 日韩高清一区在线| 韩国一区二区视频| 成人精品在线视频观看| 色噜噜狠狠一区二区三区果冻| 欧美在线999| 日韩三级视频在线观看| 国产丝袜美腿一区二区三区| 综合av第一页| 日本亚洲欧美天堂免费| 久久精品久久99精品久久| 国产福利一区二区三区在线视频| 成人精品视频一区二区三区| 欧洲一区在线观看| 久久影音资源网| 亚洲精品视频自拍| 黄一区二区三区| 色婷婷综合中文久久一本| 日韩午夜三级在线| 亚洲视频在线观看三级| 美女性感视频久久| 色激情天天射综合网| 亚洲精品一区二区三区99| 一区二区三区**美女毛片| 蜜桃视频第一区免费观看|