本帖最后由 jinglixixi 于 2020-9-20 09:09 編輯
CH579M 具有14個通道的12位ADC模數轉換器,并支持14通道觸摸按鍵。此外,還有一個內部電池檢測通道和一個內部溫度傳感器檢測通道。其中的電池檢測通道適用于低功耗產品的電源管理和報警,而溫度傳感器檢測通道也是一種維護低功耗產品可靠工作的主要手段。 由于所用的是12位ADC模數轉換器,故其采樣的數值范圍是0~4095。 通過對例程的驗證,其運行結果如圖1所示。 圖1 運行結果
由運行結果可知,它能夠讀取到ChipID、指定單通道的采樣值、指定差分通道的采樣值、指定觸摸按鍵通道的采樣值及使用中斷方式進行采樣。 為更好地感知外部世界的變化,在實際應用中有多種傳感器被廣泛使用。而傳感器主要有3類,即模擬信號型、數字信號型及脈沖信號型。其中數字信號型的特點是直接獲得數字結果,無需進行數值標度變換;而模擬信號型,則獲得的是模擬信號需要進行數值變換及線性處理等。 在按圖2所示,外接電位器的情況下可觀察信號變換的結果。
圖2 電位器模擬信號源
圖3 電位器提供模擬信號
圖4 PA0通道9采樣
圖5 PA5通道1采樣
數據采集主程序: - int main()
- {
- UINT8 i;
- signed short RoughCalib_Value=0;
- DebugInit();
- PRINT( "\n2.Single channel sampling...\n");
- GPIOA_ModeCfg(GPIO_Pin_5, GPIO_ModeIN_Floating); //GPIO_Pin_0
- ADC_ExtSingleChSampInit( SampleFreq_3_2, ADC_PGA_0 );
- GPIOA_ModeCfg(GPIO_Pin_5, GPIO_ModeIN_Floating);
- RoughCalib_Value = ADC_DataCalib_Rough();
- PRINT("=%d \n", RoughCalib_Value);
- while(1)
- {
- ADC_ChannelCfg(1 ); // ADC_ChannelCfg( 9 )
- abcBuff[i] = ADC_ExcutSingleConver() + RoughCalib_Value;
- ADC_DataCalib_Fine( &abcBuff[i], ADC_PGA_0 );
- PRINT("%d ", abcBuff[i]);
- mDelaymS(500);
- }
- }
復制代碼
|