大俠,對于ch365芯片的配置空間,我有些迷惑。 第一點是:對于它的寄存器說明:“芯片控制寄存器(配置空間40H)(I/O空間偏移0F8H)”我的理解是該寄存器在配置空間的地址是40H,通過I/O基址加偏移量來讀取該寄存器的值,對嗎?我試了用評估版的測試軟件,在配置空間里讀取的值和在I/O空間里讀的值是不一樣的。在I/O中用絕對地址和用基址加偏移地址讀取的值也不一樣。很是奇怪! 第二點就是ch365的芯片狀態(tài)寄存器,它只是說了在配置空間中的地址是42H,那是不是該芯片只能通過配置空間來讀取,不能用I/O來讀??? 第三點就是我在讀取I/O時,用偏移地址方式讀取。偏移地址設(shè)為0F8H和0xF8兩者讀取的數(shù)據(jù)是不一樣的,它們不是都是二進制的嗎?怎么會不一樣?而且在讀雙字和字時,只能用0xF8的偏移地址。用0F8H就彈出提示說地址無效,為什么呀? 第四點就是我現(xiàn)在是用手上的那張評估版,除此沒有任何硬件了。ch365芯片的配置空間介紹是不是和我的評估版設(shè)計硬件時所設(shè)置的配置空間有不同之處。是不是有針對ch365評估版的配置空間的資料介紹?有的話,可否讓小妹參閱下,本人不甚感激?。?! 一定幫幫忙呀!拜托各位了?。。?/p>
第一點:配置空間40H與iI/O空間偏移0F8H讀取的地址是一樣的
第二點:是的
三點:程序中限定了只取一個字節(jié),即兩個字符的長度,所以你用0F8時,末尾的8被截取掉,你可以自己修改程序或只輸入F8來表示地址0xF8
謝謝樓上的,我今天如你說的不加0x或h讀取的數(shù)是一樣的,但是如果加了h或0x,讀取的值就不一樣了,我看了程序,但上面的范圍有說else if ( iChar >= 'A' && iChar <= 'Z' ) mBCD = iChar - 'A' + 0x0a; else if ( iChar >= 'a' && iChar <= 'z' ) mBCD = iChar - 'a' + 0x0a; 如果這樣,它應(yīng)該能識別f以上的字母啊,而且我試了下有時讀取的值也不是全FF
第二就是我用project1.exe來測試時老說不能打開卡,可是我用debug365.exe打開卡時就沒有說卡不能打開,而且如果我關(guān)閉卡后直接刷新就會有提示框,說明我打開卡的操作是完成了。所以就是不知道project1.exe到底為什么說不能打開卡。和語言環(huán)境有關(guān)嗎,而且#include 這個頭文件找不到
我說的截取是取文本框中數(shù)據(jù)的時候截取,與你說的那段代碼無關(guān)
第二,project.exe應(yīng)該是用BCB寫的,如果你沒有BCB環(huán)境就沒有vcl.h,就無法調(diào)用