找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 3649|回復(fù): 2
收起左側(cè)

Proteus仿真單片機(jī)ADC采集,數(shù)據(jù)總是為0

[復(fù)制鏈接]
ID:641486 發(fā)表于 2021-7-26 13:37 | 顯示全部樓層 |閱讀模式
原理圖如下,電壓配置的3.3V,用一個(gè)串口發(fā)送數(shù)據(jù)

1.jpg

HAL庫(kù)開發(fā),STM32CubeMX配置的項(xiàng)目工程

部分程序如下
  1. uint16_t ADC_Value = 0,ADC_Vol = 0;
  2. uint8_t str_buff[64];

  3. void UART_Send()
  4. {
  5.         sprintf((char *)str_buff,"采樣值:%d,電壓值:%d.%d%dV\r\n",ADC_Value,ADC_Vol/100,(ADC_Vol%100)/10,ADC_Vol%10); //格式化輸出
  6.         HAL_UART_Transmit(&huart1,str_buff,sizeof(str_buff),1000);                                                 //串口輸出
  7. }
  8.         
  9. void ADC_Get_Value()
  10. {
  11.         HAL_ADC_Start(&hadc1);
  12.         LED_ON;
  13.         if(HAL_ADC_PollForConversion(&hadc1,10) == HAL_OK)
  14.         {
  15.                 ADC_Value = HAL_ADC_GetValue(&hadc1);
  16.                 ADC_Vol = ADC_Value * 330 /4096;               //轉(zhuǎn)化的電壓值,3.3V,12位
  17.         }
  18.         UART_Send();
  19.         LED_OFF;
  20.         HAL_ADC_Stop(&hadc1);
  21. }
復(fù)制代碼
然后在主函數(shù)main()的while(1)循環(huán)里每個(gè)500ms執(zhí)行ADC_Get_Value()
也就是一直獲取采樣值,然后通過串口發(fā)出去
收到的結(jié)果一直是0
2.JPG
只有當(dāng)我把ADC線直接接到3.3V電源上,才正常獲取采樣值
其他情況都是0,搞了很久看不出錯(cuò)誤在哪兒
有沒有大佬幫忙看看程序的,謝謝大家了



回復(fù)

使用道具 舉報(bào)

ID:1024192 發(fā)表于 2022-5-11 10:03 | 顯示全部樓層
您好,請(qǐng)問解決了嘛?我也遇到了這個(gè)問題
回復(fù)

使用道具 舉報(bào)

ID:626976 發(fā)表于 2022-7-4 11:09 | 顯示全部樓層
您好,請(qǐng)問解決了嘛?我也遇到了這個(gè)問題
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表