![]() |
發布時間: 2021-7-22 23:53
正文摘要:我想用STM32F401的最小系統板做一個ADC模數轉換讀出相應的電壓值,但是現在遇到的問題就是,無論我將ADC對應的PA1引腳接到GND還是V5,它轉化后的電壓值都是0.00幾(按理說GND應該是0,V5應該是5伏)。然后ADC通道測 ... |
y∩__∩y 發表于 2021-7-24 20:26 沒有變量進行儲存是啥意思呀,不是存給temp了嗎 |
daemondong 發表于 2021-7-23 08:43 麻煩幫忙看看是什么的問題 |
temp=(float)adcx*3.3/4096要這樣寫才對,要把括號去掉,不然3.3/4096都等于零了,而且這計算的結果也沒有變量進行儲存 |
cpu小白白 發表于 2021-7-23 08:43 你好,第一點就是測量的GND接單片機的GND,然后模擬信號的值接單片機的ADC引腳對吧 2.這些我都檢查了,感覺沒有問題 3.ADC歷程怎么找呀,引腳我換過了也沒用 量程檢查過了,不是這個的問題 |
lishengaha 發表于 2021-7-24 07:14 你好,16 18是ADC測出來的值。不是公式轉換后的電壓值 |
daemondong 發表于 2021-7-23 08:43 void Adc_Init(void) { ADC_InitTypeDef ADC_InitStructure; ADC_CommonInitTypeDef ADC_CommonInitStructure; GPIO_InitTypeDef GPIO_InitStructure; RCC_APB2PeriphClockCmd(RCC_AHB1Periph_GPIOA |RCC_APB2Periph_ADC1 , ENABLE ); // // GPIO_InitStructure.GPIO_Pin = GPIO_Pin_1; //PA1 GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AIN; GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL ;// GPIO_Init(GPIOA, &GPIO_InitStructure); RCC_APB2PeriphResetCmd(RCC_APB2Periph_ADC1,ENABLE); // RCC_APB2PeriphResetCmd(RCC_APB2Periph_ADC1,DISABLE); // // // // ADC_CommonInitStructure.ADC_Mode = ADC_Mode_Independent; // ADC_CommonInitStructure.ADC_TwoSamplingDelay = ADC_TwoSamplingDelay_5Cycles;// ADC_CommonInitStructure.ADC_DMAAccessMode = ADC_DMAAccessMode_Disabled; // ADC_CommonInitStructure.ADC_Prescaler = ADC_Prescaler_Div4; // ADC_CommonInit(&ADC_CommonInitStructure); // // ADC_InitStructure.ADC_Resolution = ADC_Resolution_12b; // ADC_InitStructure.ADC_ScanConvMode = DISABLE;// ADC_InitStructure.ADC_ContinuousConvMode = DISABLE;// ADC_InitStructure.ADC_ExternalTrigConvEdge = ADC_ExternalTrigConvEdge_None;// ADC_InitStructure.ADC_DataAlign = ADC_DataAlign_Right; // ADC_InitStructure.ADC_NbrOfConversion = 1; // ADC_Init(ADC1, &ADC_InitStructure); // ADC_Cmd(ADC1, ENABLE); //開啟ADC } |
stm32的參考電壓都是直接接電源的也就是3.3v。。你這個16 18是咋算出來的,首先公式肯定錯了,看你adc轉換出的 數字結果 |
查一下手冊,看看硬件連接是否符合要求,參考電壓是否選對。 |
Adc_Init()的代碼要發上來,應該是初始化的問題。 |
1.測量電壓的時候要共地,不知道你公地沒有 2.看一下ADC是否使能,時鐘是否打開等等,配置問題,查看一下初始化引腳是否對應。 3.上面三個都不對,找ADC歷程走一遍(換個引腳) 107的ADC都是3.3V的量程,407的不太清楚量程,要是3.3最好不要接5v的吧 |