牢騷
TI能不能把文檔跟例程什麼的寫的清楚點?最起碼給的例程能夠跑的通吧?就這麼一個簡簡單單的ADC折騰我3個多小時,我也是很服氣的(好吧,是我太浮躁了,沒沉下心認真的研讀TI寫的雖然“規範”但又臭又長的代碼。層層封裝考慮多線程,這很好,每個開發者都想跟linux那樣直接用戶層一個open,一個read就可以完成任務那種,但關鍵是封裝完不能用,開發人員還看不到底層代碼,這就很讓人呵呵)
正文
廢話不說了,簡單粗暴的不管多線,代碼如下:
#include <driverlib/aux_adc.h>
#include <driverlib/aux_wuc.h>
……
uint32_t ADC_Read(void)
{
AUXWUCClockEnable(AUX_WUC_MODCLKEN0_ANAIF_M|AUX_WUC_MODCLKEN0_AUX_ADI4_M);
AUXADCSelectInput(ADC_COMPB_IN_AUXIO0);
AUXADCEnableSync(AUXADC_REF_FIXED,AUXADC_SAMPLE_TIME_2P7_US, AUXADC_TRIGGER_MANUAL);
AUXADCGenManualTrigger();
uint32_t ADCVal = AUXADCReadFifo();
AUXADCDisable();
return ADCVal;
};
代碼參考了多人的帖子、國內TI官方論壇、國外TI官方論壇,實在是太多了,一時說不過來了,原作者如果看到了請聯繫我我會把原帖子鏈接放上去
我記得CSDN上有一篇帖子跟我這個很類似,就是AUXWUCClockEnable這個函數這裏用的是TI已經廢除(??那都找不到)AUX_WUC_MODCLKEN0_SOC_M這個宏定義,導致一直無法編譯通過。
對了,CC2640的ADC對應關係請參考:
https://e2echina.ti.com/question_answer/wireless_connectivity/bluetooth/f/103/t/147467
TI官方論壇這個帖子的最後一樓,即 ADCBufCC26XX.h 裏的內容。裏面有通道對應引腳關係。
以上。