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

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

?? ch37d51.c

?? 南京沁恒電子有限公司USB通用設備接口芯片資料
?? 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 ) ) {  // 讀取應答塊
			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 指定準備寫入的數(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 ) ) {  // 讀取應答塊
			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 ) ) {  // 讀取應答塊
			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ū),存放準備寫入的數(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 ) ) {  // 讀取應答塊
			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 ) ) {  // 讀取應答塊
			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ū),存放準備寫入的數(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 ) ) {  // 讀取應答塊
			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 ) ) {  // 讀取應答塊
			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é)果: 返回當前端口狀態(tài)值
	UCHAR	d;
	CH375DBG_ReadSFR( 0x90, &d );  // 從SFR一個單元讀取數(shù)據(jù)
	return( d );
}

VOID	CH375DBG_PutPortP1( UCHAR d ) {  // 設置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 );  // 設置MCS51單片機端口P1的狀態(tài)
	if ( CH375DBG_WriteSFR( 0x99, '$' ) ) {  // 向SFR一個單元寫入數(shù)據(jù),寫SBUF,如果事先單片機已經(jīng)設置串口發(fā)送使能,則能夠?qū)⒆址?從串口發(fā)出
		printf( "Write char $ to SFR-SBUF\n" );
	}
	else printf( "Write SFR ERROR !\n" );
	CH375DBG_CloseExit( );  //關閉CH372/CH375設備
}
#endif

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美xxxx老人做受| 国产精品久久久久久一区二区三区| 欧美xxxxxxxxx| 亚洲综合无码一区二区| 黄网站免费久久| 欧美亚洲日本一区| 国产日产欧美一区二区视频| 天堂影院一区二区| 91色在线porny| 国产欧美日韩三级| 美女视频黄久久| 欧美乱妇一区二区三区不卡视频| 中文字幕在线视频一区| 激情综合色综合久久| 欧美日本精品一区二区三区| 国产精品大尺度| 国产激情91久久精品导航| 日韩免费电影网站| 天天影视涩香欲综合网| 欧美亚一区二区| 亚洲精品v日韩精品| 成人在线一区二区三区| 精品国产污污免费网站入口 | 欧美三级蜜桃2在线观看| 国产精品福利一区| 国产大陆精品国产| 国产欧美日韩不卡| 国产suv精品一区二区6| 久久婷婷综合激情| 国产一区二区精品久久91| 欧美电影免费提供在线观看| 免费成人av资源网| 精品乱码亚洲一区二区不卡| 久久97超碰色| 久久久久久日产精品| 国产激情视频一区二区三区欧美 | 精品裸体舞一区二区三区| 久久成人免费电影| 久久综合国产精品| 精品一区二区三区免费毛片爱| 欧美α欧美αv大片| 国产传媒久久文化传媒| 国产精品久久久久久久久动漫| av网站一区二区三区| 中文字幕一区二区视频| 色女孩综合影院| 日韩中文字幕亚洲一区二区va在线 | 久久夜色精品一区| 国产成人免费高清| 亚洲手机成人高清视频| 欧美午夜精品久久久| 日本欧美韩国一区三区| 2024国产精品| 91麻豆自制传媒国产之光| 一区二区三区中文字幕| 91麻豆精品国产| 国产大片一区二区| 香蕉久久一区二区不卡无毒影院| 777久久久精品| 成人综合婷婷国产精品久久蜜臀| 亚洲一区二区视频| 久久综合色播五月| 91香蕉国产在线观看软件| 免费一区二区视频| 国产精品―色哟哟| 这里只有精品免费| caoporn国产精品| 日本伊人色综合网| 国产精品国产三级国产| 欧美电影在线免费观看| 成人午夜视频在线| 蜜臀av一区二区在线免费观看| 欧美国产在线观看| 日韩一级视频免费观看在线| 成人性生交大片免费看视频在线| 亚洲成av人片观看| 中文字幕在线观看一区二区| 欧美成人一区二区三区| 一本色道a无线码一区v| 黄色小说综合网站| 日韩精品1区2区3区| 自拍偷在线精品自拍偷无码专区| 日韩三级伦理片妻子的秘密按摩| 色天使色偷偷av一区二区| 国产激情一区二区三区桃花岛亚洲| 日韩精品久久理论片| 亚洲精品免费在线播放| 国产色一区二区| 精品蜜桃在线看| 欧美日韩国产高清一区二区三区| jiyouzz国产精品久久| 免费在线看成人av| 视频一区欧美精品| 一区二区三区91| 亚洲女人的天堂| 欧美国产在线观看| 欧美国产精品一区二区| 欧美一级午夜免费电影| 欧美日韩国产综合草草| 一本久久a久久精品亚洲| www.欧美色图| 国产成人h网站| 国产成人av在线影院| 精品一区二区三区的国产在线播放| 天堂蜜桃91精品| 日本美女视频一区二区| 亚洲高清视频的网址| 夜夜嗨av一区二区三区四季av | 国产亚洲欧美日韩日本| 欧美一区二区三区四区高清| 欧美视频中文字幕| 色婷婷国产精品综合在线观看| av资源站一区| a美女胸又www黄视频久久| 91麻豆国产自产在线观看| 色婷婷av一区二区三区之一色屋| a美女胸又www黄视频久久| 91麻豆国产自产在线观看| 91视频国产观看| 欧美日本一道本| 日韩午夜在线观看| 欧美videossexotv100| 精品粉嫩超白一线天av| 久久久精品一品道一区| 欧美激情一区在线观看| 亚洲少妇30p| 亚洲一区二区三区精品在线| 午夜a成v人精品| 毛片一区二区三区| 精久久久久久久久久久| 成+人+亚洲+综合天堂| 91一区二区在线观看| 欧美日韩视频专区在线播放| 欧美一区二区啪啪| 国产色一区二区| 亚洲一级在线观看| 免费成人美女在线观看.| 国产成人啪免费观看软件| 色综合久久六月婷婷中文字幕| 欧美日韩中文另类| 2欧美一区二区三区在线观看视频 337p粉嫩大胆噜噜噜噜噜91av | 中文字幕一区三区| 亚洲精品一卡二卡| 日韩高清一区在线| 国产精品1区2区3区| 色综合视频一区二区三区高清| 欧美精品高清视频| 久久久久久久久伊人| 亚洲激情自拍偷拍| 久久国产福利国产秒拍| 成人精品gif动图一区| 欧美日韩久久久久久| 精品电影一区二区| 一区二区在线观看不卡| 激情国产一区二区| 欧美体内she精高潮| 久久久99精品免费观看| 亚洲电影中文字幕在线观看| 国产裸体歌舞团一区二区| 欧美午夜精品久久久久久超碰| 久久久亚洲精品一区二区三区 | 国产福利精品一区二区| 欧美日韩在线观看一区二区| 国产日韩欧美亚洲| 日韩av电影天堂| 91久久香蕉国产日韩欧美9色| 日韩手机在线导航| 亚洲美女少妇撒尿| 国产精品伊人色| 欧美精品三级在线观看| 1000精品久久久久久久久| 精品一区二区三区不卡| 5月丁香婷婷综合| 亚洲精品欧美激情| 成人一区二区三区在线观看| 欧美一区二区在线视频| 亚洲影院久久精品| 北条麻妃一区二区三区| 久久久亚洲精华液精华液精华液| 日韩av在线发布| 欧美日韩免费观看一区三区| 亚洲人吸女人奶水| 成人免费毛片app| 国产午夜久久久久| 久久99精品久久久久久国产越南| 欧美人妇做爰xxxⅹ性高电影| 亚洲精品久久7777| 91搞黄在线观看| 一区二区三区四区亚洲| 9久草视频在线视频精品| 欧美国产日韩a欧美在线观看 | 免费看欧美女人艹b| 欧美日韩黄色一区二区| 亚洲图片一区二区| 在线亚洲免费视频| 一区二区不卡在线播放| 在线看国产一区| 亚洲国产欧美日韩另类综合 | 午夜不卡av免费| 69p69国产精品|