請(qǐng)問技術(shù),我用的是msp430f149內(nèi)部的12位ad,出來的數(shù)據(jù)是12位的,而usb傳輸只有8位,我也知道要分兩次傳輸,但就是不知道該怎么寫程序,能否給提示一下,還有從AD數(shù)據(jù)緩存區(qū)取數(shù)據(jù)時(shí),該怎么定義數(shù)據(jù)類型阿,如果定義char的,那高4位就沒了,定義為int/float,那么出來的就是bcd碼,郁悶啊,盼恢復(fù)
可以定義為int類型的,上傳2次 unsigned short int ADC; //ADC數(shù)據(jù) CH375_WR_CMD_PORT(CMD_WR_USB_DATA7); //通過端點(diǎn)2上傳 delay2us(); CH375_WR_DAT_PORT(2); //寫入數(shù)據(jù)長度 CH375_WR_DAT_PORT(ADC); //寫入低8位 CH375_WR_DAT_PORT(ADC>>8); //寫入高8位
實(shí)際的AD采集芯片,對(duì)于8位單片機(jī)的話,實(shí)際上是通過12個(gè)I/O引腳來讀取數(shù)據(jù),那么,你可以用兩個(gè)8位的char型數(shù)據(jù)將12位的數(shù)據(jù)保存下來,然后按照你的高位和低為組合成一個(gè)16位的數(shù)據(jù),或者你直接將數(shù)據(jù)寫到372里面去,上位機(jī)通信的時(shí)候,只需要區(qū)分你取到的數(shù)據(jù)是高位還是低為,如果是高位的話,把高位的前4位屏蔽掉,和低8位數(shù)據(jù)在組合成你要采集的12位的數(shù)據(jù).