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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? ch37d51.c

?? CH372調(diào)試程序,軟件代碼及編譯好的執(zhí)行程序
?? C
?? 第 1 頁 / 共 2 頁
字號:
		}
	}
	return( FALSE );
}

BOOL	CH375DBG_ReadSFR( ULONG addr, PUCHAR data ) {  // 從SFR一個單元讀取數(shù)據(jù)
// 輸入?yún)?shù): addr 指定SFR的地址
//           data 指向一個字節(jié)變量單元,用于存放讀出的數(shù)據(jù)
	USB_DOWN_PKT	down;
	USB_UP_PKT		up;
	ULONG			len;
	down.mCommand = USB_CMD_MEM_ACCESS | USB_CMD_MEM_W_BYTE | USB_CMD_MEM_S_SFR;
	down.mCommandNot = ~ down.mCommand;
	down.u.mDword = addr;
	down.mLength = 1;
	len = mOFFSET( USB_DOWN_PKT, mBuffer );
	if ( CH375WriteData( CH375DBG_Index, &down, &len ) ) {   // 寫出命令塊
		len = sizeof( USB_UP_PKT );
		if ( CH375ReadData( CH375DBG_Index, &up, &len ) ) {  // 讀取應(yīng)答塊
			if ( up.mStatus == ERR_SUCCESS && up.mCommandNot == down.mCommandNot && up.mLength >= 1 ) {  // 操作成功,并且返回數(shù)據(jù)
				*data = up.mBuffer[0];  // 返回數(shù)據(jù)
				return( TRUE );
			}
		}
	}
	return( FALSE );
}

BOOL	CH375DBG_WriteSFR( ULONG addr, UCHAR data ) {  // 向SFR一個單元寫入數(shù)據(jù)
// 輸入?yún)?shù): addr 指定SFR的地址
//           data 指定準(zhǔn)備寫入的數(shù)據(jù)
	USB_DOWN_PKT	down;
	USB_UP_PKT		up;
	ULONG			len;
	down.mCommand = USB_CMD_MEM_ACCESS | USB_CMD_MEM_W_BYTE | USB_CMD_MEM_S_SFR | USB_CMD_MEM_DIR_WR;
	down.mCommandNot = ~ down.mCommand;
	down.u.mDword = addr;
	down.mLength = 1;
	down.mBuffer[0] = data;
	len = mOFFSET( USB_DOWN_PKT, mBuffer ) + down.mLength;
	if ( CH375WriteData( CH375DBG_Index, &down, &len ) ) {   // 寫出命令塊
		len = sizeof( USB_UP_PKT );
		if ( CH375ReadData( CH375DBG_Index, &up, &len ) ) {  // 讀取應(yīng)答塊
			if ( up.mStatus == ERR_SUCCESS && up.mCommandNot == down.mCommandNot ) {  // 操作成功
				return( TRUE );
			}
		}
	}
	return( FALSE );
}

BOOL	CH375DBG_ReadIRAM( ULONG StartAddr, PUCHAR buffer, UCHAR count ) {  // 從內(nèi)部RAM讀取數(shù)據(jù)塊
// 輸入?yún)?shù): StartAddr 指定內(nèi)部RAM的起始地址
//           buffer 指向一個足夠大的數(shù)據(jù)緩沖區(qū),用于存放讀出的數(shù)據(jù)塊
//           count 指定讀取的字節(jié)數(shù)
	USB_DOWN_PKT	down;
	USB_UP_PKT		up;
	ULONG			len;
	if ( count > MAX_DATA_SIZE ) return( FALSE );  // 限制單次處理的數(shù)據(jù)長度,可以與單片機程序的MAX_DATA_SIZE一起同步修改為更大或更小的值
	down.mCommand = USB_CMD_MEM_ACCESS | USB_CMD_MEM_W_BYTE | USB_CMD_MEM_S_IRAM;
	down.mCommandNot = ~ down.mCommand;
	down.u.mDword = StartAddr;
	down.mLength = count;
	len = mOFFSET( USB_DOWN_PKT, mBuffer );
	if ( CH375WriteData( CH375DBG_Index, &down, &len ) ) {   // 寫出命令塊
		len = sizeof( USB_UP_PKT );
		if ( CH375ReadData( CH375DBG_Index, &up, &len ) ) {  // 讀取應(yīng)答塊
			if ( up.mStatus == ERR_SUCCESS && up.mCommandNot == down.mCommandNot && up.mLength >= count ) {  // 操作成功,并且返回數(shù)據(jù)
				for ( len = 0; len < (ULONG)count; len ++ ) buffer[ len ] = up.mBuffer[ len ];  // 返回數(shù)據(jù)
				return( TRUE );
			}
		}
	}
	return( FALSE );
}

BOOL	CH375DBG_WriteIRAM( ULONG StartAddr, PUCHAR buffer, UCHAR count ) {  // 向內(nèi)部RAM寫入數(shù)據(jù)塊
// 輸入?yún)?shù): StartAddr 指定內(nèi)部RAM的起始地址
//           buffer 指向一個數(shù)據(jù)緩沖區(qū),存放準(zhǔn)備寫入的數(shù)據(jù)塊
//           count 指定寫入的字節(jié)數(shù)
	USB_DOWN_PKT	down;
	USB_UP_PKT		up;
	ULONG			len;
	if ( count > MAX_DATA_SIZE ) return( FALSE );  // 限制單次處理的數(shù)據(jù)長度,可以與單片機程序的MAX_DATA_SIZE一起同步修改為更大或更小的值
	down.mCommand = USB_CMD_MEM_ACCESS | USB_CMD_MEM_W_BYTE | USB_CMD_MEM_S_IRAM | USB_CMD_MEM_DIR_WR;
	down.mCommandNot = ~ down.mCommand;
	down.u.mDword = StartAddr;
	down.mLength = count;
	for ( len = 0; len < (ULONG)count; len ++ ) down.mBuffer[ len ] = buffer[ len ];
	len = mOFFSET( USB_DOWN_PKT, mBuffer ) + down.mLength;
	if ( CH375WriteData( CH375DBG_Index, &down, &len ) ) {   // 寫出命令塊
		len = sizeof( USB_UP_PKT );
		if ( CH375ReadData( CH375DBG_Index, &up, &len ) ) {  // 讀取應(yīng)答塊
			if ( up.mStatus == ERR_SUCCESS && up.mCommandNot == down.mCommandNot ) {  // 操作成功
				return( TRUE );
			}
		}
	}
	return( FALSE );
}

BOOL	CH375DBG_ReadXRAM( ULONG StartAddr, PUCHAR buffer, UCHAR count ) {  // 從外部RAM讀取數(shù)據(jù)塊
// 輸入?yún)?shù): StartAddr 指定外部RAM的起始地址
//           buffer 指向一個足夠大的數(shù)據(jù)緩沖區(qū),用于存放讀出的數(shù)據(jù)塊
//           count 指定讀取的字節(jié)數(shù)
	USB_DOWN_PKT	down;
	USB_UP_PKT		up;
	ULONG			len;
	if ( count > MAX_DATA_SIZE ) return( FALSE );  // 限制單次處理的數(shù)據(jù)長度,可以與單片機程序的MAX_DATA_SIZE一起同步修改為更大或更小的值
	down.mCommand = USB_CMD_MEM_ACCESS | USB_CMD_MEM_W_BYTE | USB_CMD_MEM_S_XRAM;
	down.mCommandNot = ~ down.mCommand;
	down.u.mDword = StartAddr;
	down.mLength = count;
	len = mOFFSET( USB_DOWN_PKT, mBuffer );
	if ( CH375WriteData( CH375DBG_Index, &down, &len ) ) {   // 寫出命令塊
		len = sizeof( USB_UP_PKT );
		if ( CH375ReadData( CH375DBG_Index, &up, &len ) ) {  // 讀取應(yīng)答塊
			if ( up.mStatus == ERR_SUCCESS && up.mCommandNot == down.mCommandNot && up.mLength >= count ) {  // 操作成功,并且返回數(shù)據(jù)
				for ( len = 0; len < (ULONG)count; len ++ ) buffer[ len ] = up.mBuffer[ len ];  // 返回數(shù)據(jù)
				return( TRUE );
			}
		}
	}
	return( FALSE );
}

BOOL	CH375DBG_WriteXRAM( ULONG StartAddr, PUCHAR buffer, UCHAR count ) {  // 向外部RAM寫入數(shù)據(jù)塊
// 輸入?yún)?shù): StartAddr 指定外部RAM的起始地址
//           buffer 指向一個數(shù)據(jù)緩沖區(qū),存放準(zhǔn)備寫入的數(shù)據(jù)塊
//           count 指定寫入的字節(jié)數(shù)
	USB_DOWN_PKT	down;
	USB_UP_PKT		up;
	ULONG			len;
	if ( count > MAX_DATA_SIZE ) return( FALSE );  // 限制單次處理的數(shù)據(jù)長度,可以與單片機程序的MAX_DATA_SIZE一起同步修改為更大或更小的值
	down.mCommand = USB_CMD_MEM_ACCESS | USB_CMD_MEM_W_BYTE | USB_CMD_MEM_S_XRAM | USB_CMD_MEM_DIR_WR;
	down.mCommandNot = ~ down.mCommand;
	down.u.mDword = StartAddr;
	down.mLength = count;
	for ( len = 0; len < (ULONG)count; len ++ ) down.mBuffer[ len ] = buffer[ len ];
	len = mOFFSET( USB_DOWN_PKT, mBuffer ) + down.mLength;
	if ( CH375WriteData( CH375DBG_Index, &down, &len ) ) {   // 寫出命令塊
		len = sizeof( USB_UP_PKT );
		if ( CH375ReadData( CH375DBG_Index, &up, &len ) ) {  // 讀取應(yīng)答塊
			if ( up.mStatus == ERR_SUCCESS && up.mCommandNot == down.mCommandNot ) {  // 操作成功
				return( TRUE );
			}
		}
	}
	return( FALSE );
}

BOOL	CH375DBG_ReadROM( ULONG StartAddr, PUCHAR buffer, UCHAR count ) {  // 從程序ROM讀取數(shù)據(jù)塊
// 輸入?yún)?shù): StartAddr 指定程序ROM的起始地址
//           buffer 指向一個足夠大的數(shù)據(jù)緩沖區(qū),用于存放讀出的數(shù)據(jù)塊
//           count 指定讀取的字節(jié)數(shù)
	USB_DOWN_PKT	down;
	USB_UP_PKT		up;
	ULONG			len;
	if ( count > MAX_DATA_SIZE ) return( FALSE );  // 限制單次處理的數(shù)據(jù)長度,可以與單片機程序的MAX_DATA_SIZE一起同步修改為更大或更小的值
	down.mCommand = USB_CMD_MEM_ACCESS | USB_CMD_MEM_W_BYTE | USB_CMD_MEM_S_ROM;
	down.mCommandNot = ~ down.mCommand;
	down.u.mDword = StartAddr;
	down.mLength = count;
	len = mOFFSET( USB_DOWN_PKT, mBuffer );
	if ( CH375WriteData( CH375DBG_Index, &down, &len ) ) {   // 寫出命令塊
		len = sizeof( USB_UP_PKT );
		if ( CH375ReadData( CH375DBG_Index, &up, &len ) ) {  // 讀取應(yīng)答塊
			if ( up.mStatus == ERR_SUCCESS && up.mCommandNot == down.mCommandNot && up.mLength >= count ) {  // 操作成功,并且返回數(shù)據(jù)
				for ( len = 0; len < (ULONG)count; len ++ ) buffer[ len ] = up.mBuffer[ len ];  // 返回數(shù)據(jù)
				return( TRUE );
			}
		}
	}
	return( FALSE );
}

UCHAR	CH375DBG_GetPortP1( VOID ) {  // 獲取MCS51單片機端口P1的狀態(tài)
// 輸出結(jié)果: 返回當(dāng)前端口狀態(tài)值
	UCHAR	d;
	CH375DBG_ReadSFR( 0x90, &d );  // 從SFR一個單元讀取數(shù)據(jù)
	return( d );
}

VOID	CH375DBG_PutPortP1( UCHAR d ) {  // 設(shè)置MCS51單片機端口P1的狀態(tài)
// 輸入?yún)?shù): d 指定新的端口狀態(tài)值
	CH375DBG_WriteSFR( 0x90, d );  // 向SFR一個單元寫入數(shù)據(jù)
}


#ifdef __cplusplus
}
#endif
#endif		// _CH375_DBG_H

/* **************************************************************************************************** */
// 主程序示例

#if 0
main( void ) {
	UCHAR	v, i, p1;
	UCHAR	buf[32];
	if ( CH375DBG_GetFirmwareInfo( &v ) )  // 獲取調(diào)試固件程序的版本,并取消未完成的上傳數(shù)據(jù)塊
		printf( "This Firmware Version is %02X \n", v );
	else return(1);  // 無法打開CH372/CH375,可能未工作或者單片機未執(zhí)行調(diào)試程序
	if ( CH375DBG_ReadIRAM( 0x20, buf, 10 ) ) {  // 從內(nèi)部RAM讀取數(shù)據(jù)塊,從20H地址開始的10個字節(jié)
		printf( "Read Internal RAM address 20H-29H: " );
		for ( i=0; i<10; i++ ) printf( "%02X ", buf[i] );
		printf( "\n" );
	}
	else printf( "Read Internal RAM ERROR !\n" );
	p1 = CH375DBG_GetPortP1( );  // 獲取MCS51單片機端口P1的狀態(tài)
	p1 &= ~ 0x10;  // P1.4=0
	CH375DBG_PutPortP1( p1 );  // 設(shè)置MCS51單片機端口P1的狀態(tài)
	if ( CH375DBG_WriteSFR( 0x99, '$' ) ) {  // 向SFR一個單元寫入數(shù)據(jù),寫SBUF,如果事先單片機已經(jīng)設(shè)置串口發(fā)送使能,則能夠?qū)⒆址?從串口發(fā)出
		printf( "Write char $ to SFR-SBUF\n" );
	}
	else printf( "Write SFR ERROR !\n" );
	CH375DBG_CloseExit( );  //關(guān)閉CH372/CH375設(shè)備
}
#endif

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久99精品一区二区三区三区| 成人免费视频播放| 欧美videos大乳护士334| 国产v日产∨综合v精品视频| 亚洲综合激情另类小说区| 国产亚洲一本大道中文在线| 欧美日韩高清一区二区三区| 懂色av一区二区在线播放| 久久成人久久鬼色| 日韩码欧中文字| 久久色在线观看| 日韩欧美一级片| 777久久久精品| 欧美日韩一区小说| 欧美在线免费观看亚洲| 91网站最新地址| 成人三级在线视频| eeuss影院一区二区三区| 久久精品国产亚洲aⅴ| 久久99精品久久久久久国产越南| 久久国产精品第一页| fc2成人免费人成在线观看播放| 秋霞国产午夜精品免费视频| 久久久www成人免费毛片麻豆| 欧美久久久久免费| 91同城在线观看| 欧美亚洲免费在线一区| 91理论电影在线观看| 一本大道久久a久久精二百| 狠狠色丁香久久婷婷综| 高清日韩电视剧大全免费| 国产麻豆91精品| 91免费看视频| 7777精品伊人久久久大香线蕉完整版 | 午夜一区二区三区视频| 精品一区二区三区av| 99re免费视频精品全部| 欧美三区在线视频| 久久久久久麻豆| 亚洲人123区| 成人性视频免费网站| 在线播放欧美女士性生活| 国产日韩高清在线| 日韩高清不卡在线| 91丨porny丨户外露出| 欧美不卡一区二区| 亚洲一区二区三区激情| 另类小说图片综合网| 欧美美女bb生活片| 欧美高清视频一二三区 | 亚洲一区二区视频在线| 高清不卡一区二区| 久久久久97国产精华液好用吗| 久久精品99久久久| 欧美日韩免费电影| 丝袜诱惑亚洲看片| 欧美人狂配大交3d怪物一区| 亚洲综合免费观看高清完整版在线 | 欧美片网站yy| 久久久久99精品国产片| 美日韩一级片在线观看| 欧美日韩免费一区二区三区| 尤物在线观看一区| 色香色香欲天天天影视综合网| 亚洲视频在线一区二区| 欧美一区三区二区| jiyouzz国产精品久久| 亚洲午夜一二三区视频| 欧美一区二区视频在线观看 | 亚洲美女视频在线观看| 欧美精品v国产精品v日韩精品 | 看电视剧不卡顿的网站| 欧美精品一区二区三区蜜桃| 久久国产视频网| 亚洲人亚洲人成电影网站色| 欧美怡红院视频| 91免费观看视频| 国产盗摄精品一区二区三区在线| 亚洲伦理在线精品| 国产女人水真多18毛片18精品视频| 欧美日韩亚洲不卡| 91福利国产精品| 奇米精品一区二区三区在线观看 | 久久久久久久久一| 99久久久精品免费观看国产蜜| 丝袜美腿亚洲色图| 中文字幕乱码日本亚洲一区二区 | 色婷婷综合久久久中文一区二区| 丁香婷婷综合激情五月色| 狠狠色综合色综合网络| 亚洲gay无套男同| 亚洲三级电影网站| 国产精品私房写真福利视频| 日韩一级精品视频在线观看| 这里只有精品视频在线观看| 91网站最新网址| 97久久久精品综合88久久| 99久久国产综合精品麻豆| 国产乱一区二区| 国产老肥熟一区二区三区| 波多野洁衣一区| 555夜色666亚洲国产免| 欧美三级日韩三级| 亚洲私人影院在线观看| 亚洲乱码国产乱码精品精小说| 中文字幕制服丝袜一区二区三区| 亚洲国产激情av| 亚洲激情校园春色| 亚洲在线免费播放| 丝袜诱惑亚洲看片| 福利电影一区二区三区| 欧美视频在线一区二区三区| 国产精品毛片a∨一区二区三区| 一区在线播放视频| 亚洲激情自拍视频| 天天色天天操综合| 丁香亚洲综合激情啪啪综合| 欧美日韩久久一区二区| 中文字幕av在线一区二区三区| 亚洲成人你懂的| 国产99久久久国产精品 | 亚洲国产精品一区二区www在线| 亚洲成在线观看| 成人综合日日夜夜| 欧美三级电影在线观看| 日韩欧美一二三| 五月激情丁香一区二区三区| 欧美另类高清zo欧美| 一区二区日韩电影| 久久国产乱子精品免费女| 99久久国产免费看| 日韩片之四级片| 亚洲综合一二区| 欧美午夜精品免费| 亚洲成av人综合在线观看| 欧美日韩性生活| 日韩专区一卡二卡| 91日韩在线专区| 欧美成人性战久久| 蜜桃视频在线观看一区| 欧美性受极品xxxx喷水| 国产亚洲污的网站| 成人中文字幕合集| 欧美一级片在线观看| 国产精品理论在线观看| 国产91高潮流白浆在线麻豆 | 欧美三级日韩在线| 国产农村妇女精品| 欧美日韩aaa| 成人性生交大合| 亚洲日本在线a| 欧美色图天堂网| 亚洲网友自拍偷拍| 久久精品在线观看| 欧美日韩在线亚洲一区蜜芽| 久久国产尿小便嘘嘘| 久久久亚洲欧洲日产国码αv| 丁香桃色午夜亚洲一区二区三区| 欧美精品三级日韩久久| 久久av资源网| 中文字幕佐山爱一区二区免费| 91电影在线观看| 成人黄色在线看| 婷婷开心激情综合| 久久久久亚洲蜜桃| 在线观看日韩国产| 国内不卡的二区三区中文字幕| 亚洲国产成人在线| 久久久精品日韩欧美| 91精品国产综合久久久久| 国产专区欧美精品| 亚洲美女偷拍久久| 国产女人aaa级久久久级| 欧美一级片在线看| 国产精品私人影院| 成人综合婷婷国产精品久久 | 日本不卡一二三区黄网| 欧美亚洲国产一区二区三区va | 夜夜夜精品看看| 91一区二区在线观看| 国产精品视频你懂的| 狠狠色丁香久久婷婷综合丁香| 日韩一区二区三区免费观看| 日韩精品乱码免费| 欧美精品粉嫩高潮一区二区| 亚洲电影一级黄| 欧美一区二区三区免费观看视频 | 久久综合久久综合久久| 精品一区二区三区在线播放视频 | 国产精品嫩草影院com| 国产美女在线观看一区| 久久久久久久综合狠狠综合| 激情成人综合网| 精品99999| 免费观看久久久4p| 国产欧美一区二区三区沐欲| 北岛玲一区二区三区四区| 国产精品美女www爽爽爽| 91猫先生在线| 一区二区三区视频在线看|