国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

STM32 CubeMX ADC采集 單通道,多通道,內(nèi)部溫度(輪詢,DMA,中斷)(HAL庫)

這篇具有很好參考價值的文章主要介紹了STM32 CubeMX ADC采集 單通道,多通道,內(nèi)部溫度(輪詢,DMA,中斷)(HAL庫)。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

STM32 CubeMX ADC采集(HAL庫)



ADC介紹

12位ADC是一種逐次逼近型模擬數(shù)字轉(zhuǎn)換器。它有多達18個通道,可測量16個外部和2個內(nèi)部
信號源。各通道的A/D轉(zhuǎn)換可以單次、連續(xù)、掃描或間斷模式執(zhí)行。ADC的結(jié)果可以左對齊或右
對齊方式存儲在16位數(shù)據(jù)寄存器中。
模擬看門狗特性允許應(yīng)用程序檢測輸入電壓是否超出用戶定義的高/低閥值。
ADC的輸入時鐘不得超過14MHz,它是由PCLK2經(jīng)分頻產(chǎn)生。

ADC主要特征

● 12位分辨率(最小識別電壓)
● 轉(zhuǎn)換結(jié)束、注入轉(zhuǎn)換結(jié)束和發(fā)生模擬看門狗事件時產(chǎn)生中斷
● 單次和連續(xù)轉(zhuǎn)換模式
● 從通道0到通道n的自動掃描模式
● 自校準
● 帶內(nèi)嵌數(shù)據(jù)一致性的數(shù)據(jù)對齊
● 采樣間隔可以按通道分別編程
● 規(guī)則轉(zhuǎn)換和注入轉(zhuǎn)換均有外部觸發(fā)選項
● 間斷模式
● 雙重模式(帶2個或以上ADC的器件)
● ADC轉(zhuǎn)換時間:
─ STM32F103xx增強型產(chǎn)品:時鐘為56MHz時為1μs(時鐘為72MHz為1.17μs)
─ STM32F101xx基本型產(chǎn)品:時鐘為28MHz時為1μs(時鐘為36MHz為1.55μs)
─ STM32F102xxUSB型產(chǎn)品:時鐘為48MHz時為1.2μs
─ STM32F105xx和STM32F107xx產(chǎn)品:時鐘為56MHz時為1μs(時鐘為72MHz為1.17μs)
● ADC供電要求:2.4V到3.6V
● ADC輸入范圍:VREF- ≤ VIN ≤ VREF+
● 規(guī)則通道轉(zhuǎn)換期間有DMA請求產(chǎn)生。


STM32 CubeMX ADC采集 單通道,多通道,內(nèi)部溫度(輪詢,DMA,中斷)(HAL庫),STM32 CubeMX,stm32,嵌入式硬件,單片機

Vref+的電壓(2.4~3.6)就是ADC參考電壓2.4V(相當于秤砣)

最小識別電壓值:2.4/4096≈0.6mv(不考慮誤差)

STM32 CubeMX ADC采集 單通道,多通道,內(nèi)部溫度(輪詢,DMA,中斷)(HAL庫),STM32 CubeMX,stm32,嵌入式硬件,單片機

一、STM32 CubeMX設(shè)置

開啟連續(xù)掃描使能,1.5采樣周期
STM32 CubeMX ADC采集 單通道,多通道,內(nèi)部溫度(輪詢,DMA,中斷)(HAL庫),STM32 CubeMX,stm32,嵌入式硬件,單片機
我們設(shè)置 PCLK2=72M,經(jīng)過 ADC 預(yù)分頻器能分頻到最大的時鐘只能是 12M,采樣周期設(shè)置為 1.5 個周期,算出最短的轉(zhuǎn)換時間為 1.17us,
STM32 CubeMX ADC采集 單通道,多通道,內(nèi)部溫度(輪詢,DMA,中斷)(HAL庫),STM32 CubeMX,stm32,嵌入式硬件,單片機

二、代碼部分

HAL_ADC_PollForConversion(ADC_HandleTypeDef* hadc, uint32_t Timeout);
  HAL_ADCEx_Calibration_Start(&hadc1);    //AD校準
  HAL_ADC_Start_IT(&hadc1); //開啟ADC中斷轉(zhuǎn)換
  ADC_Value =HAL_ADC_GetValue(&hadc1);

STM32 CubeMX ADC采集 單通道,多通道,內(nèi)部溫度(輪詢,DMA,中斷)(HAL庫),STM32 CubeMX,stm32,嵌入式硬件,單片機
STM32 CubeMX ADC采集 單通道,多通道,內(nèi)部溫度(輪詢,DMA,中斷)(HAL庫),STM32 CubeMX,stm32,嵌入式硬件,單片機

三,單通道輪詢采樣速度

測試方法:
{(adc轉(zhuǎn)換時間+io反轉(zhuǎn)時間)-io反轉(zhuǎn)時間} =adc轉(zhuǎn)換速度

STM32 CubeMX ADC采集 單通道,多通道,內(nèi)部溫度(輪詢,DMA,中斷)(HAL庫),STM32 CubeMX,stm32,嵌入式硬件,單片機

STM32 CubeMX ADC采集 單通道,多通道,內(nèi)部溫度(輪詢,DMA,中斷)(HAL庫),STM32 CubeMX,stm32,嵌入式硬件,單片機

IO口直接反轉(zhuǎn)
STM32 CubeMX ADC采集 單通道,多通道,內(nèi)部溫度(輪詢,DMA,中斷)(HAL庫),STM32 CubeMX,stm32,嵌入式硬件,單片機
STM32 CubeMX ADC采集 單通道,多通道,內(nèi)部溫度(輪詢,DMA,中斷)(HAL庫),STM32 CubeMX,stm32,嵌入式硬件,單片機
測得實際轉(zhuǎn)換時間:3us-0.3us=2.7.us

理論值:上面我們設(shè)置ADC時鐘12Mhz,采樣一次最短時間位1.17us
注釋:

可編程的通道采樣時間:TCONV = 采樣時間+ 12.5個周期
**例如**:
當ADCCLK=14MHz,采樣時間為1.5周期
 TCONV = 1.5 + 12.5 = 14周期 = **1μs**
 我們設(shè)置 PCLK2=72M,經(jīng)過 ADC 預(yù)分頻器能分頻到最大的時鐘只能是 12M,采樣周期設(shè)置為 1.5 個周期,算出最短的轉(zhuǎn)換時間為 1.17us,

四、內(nèi)部溫度傳感器

STM32 CubeMX ADC采集 單通道,多通道,內(nèi)部溫度(輪詢,DMA,中斷)(HAL庫),STM32 CubeMX,stm32,嵌入式硬件,單片機
STM32 CubeMX ADC采集 單通道,多通道,內(nèi)部溫度(輪詢,DMA,中斷)(HAL庫),STM32 CubeMX,stm32,嵌入式硬件,單片機
STM32 CubeMX ADC采集 單通道,多通道,內(nèi)部溫度(輪詢,DMA,中斷)(HAL庫),STM32 CubeMX,stm32,嵌入式硬件,單片機

	HAL_ADC_Start(&hadc1);	//啟動ADC轉(zhuǎn)換
	HAL_ADC_PollForConversion(&hadc1,10);	//等待轉(zhuǎn)換完成,10ms表示超時時間
 AD_Value = HAL_ADC_GetValue(&hadc1);	//讀取ADC轉(zhuǎn)換數(shù)據(jù)(12位數(shù)據(jù))
 
//		HAL_GPIO_TogglePin(GPIOA, GPIO_PIN_8);
		Vol_Value = AD_Value*(3.3/4096);	//AD值乘以分辨率即為電壓值
	printf("ADC1_IN16 VOL value: %.2fV\r\n",Vol_Value);
	Temperature = (1.43 - Vol_Value)/0.0043 + 25;	//根據(jù)公式算出溫度值
	printf("MCU Internal Temperature: %.2f\r\n",Temperature);

STM32 CubeMX ADC采集 單通道,多通道,內(nèi)部溫度(輪詢,DMA,中斷)(HAL庫),STM32 CubeMX,stm32,嵌入式硬件,單片機

多通道輪詢方式

設(shè)置 CubeMX

STM32 CubeMX ADC采集 單通道,多通道,內(nèi)部溫度(輪詢,DMA,中斷)(HAL庫),STM32 CubeMX,stm32,嵌入式硬件,單片機
STM32 CubeMX ADC采集 單通道,多通道,內(nèi)部溫度(輪詢,DMA,中斷)(HAL庫),STM32 CubeMX,stm32,嵌入式硬件,單片機

修改代碼部分

STM32 CubeMX ADC采集 單通道,多通道,內(nèi)部溫度(輪詢,DMA,中斷)(HAL庫),STM32 CubeMX,stm32,嵌入式硬件,單片機

int main(void)
{
  /* USER CODE BEGIN 1 */
int aa=0;
  /* USER CODE END 1 */

  /* MCU Configuration--------------------------------------------------------*/

  /* Reset of all peripherals, Initializes the Flash interface and the Systick. */
  HAL_Init();

  /* USER CODE BEGIN Init */

  /* USER CODE END Init */

  /* Configure the system clock */
  SystemClock_Config();

  /* USER CODE BEGIN SysInit */

  /* USER CODE END SysInit */

  /* Initialize all configured peripherals */
  MX_GPIO_Init();
  MX_ADC1_Init();
  MX_USART1_UART_Init();
  /* USER CODE BEGIN 2 */
  HAL_ADCEx_Calibration_Start(&hadc1);    //AD校準
 
//	printf("Test int:   i = %d\r\n", aa);		// printf輸出int型數(shù)據(jù)
 int  ADC_value[5];
 char i=0;
  /* USER CODE END 2 */

  /* Infinite loop */
  /* USER CODE BEGIN WHILE */
  while (1)
  {
    /* USER CODE END WHILE */

    /* USER CODE BEGIN 3 */
		for(i=0;i<5;i++)
		{
		   HAL_ADC_Start(&hadc1);     //啟動ADC轉(zhuǎn)換
		   HAL_ADC_PollForConversion(&hadc1, 50);   //等待轉(zhuǎn)換完成,50為最大等待時間,單位為ms
			 ADC_value[i]=HAL_ADC_GetValue(&hadc1);
		}
    
		printf("ADC value 0 PA0: %d \r\n",ADC_value[0]);
		printf("ADC value 1 PA1: %d \r\n",ADC_value[1]);
		printf("ADC value 2 PA2: %d \r\n",ADC_value[2]);
		printf("ADC value 3 PA3: %d \r\n",ADC_value[3]);
		printf("ADC value 4 PA4: %d \r\n",ADC_value[4]);
		HAL_Delay(1000);
// AD_Value = HAL_ADC_GetValue(&hadc1);	//讀取ADC轉(zhuǎn)換數(shù)據(jù)(12位數(shù)據(jù))
// 
		HAL_GPIO_TogglePin(GPIOA, GPIO_PIN_8);
//		Vol_Value = AD_Value*(3.3/4096);	//AD值乘以分辨率即為電壓值
//	aa
//	Temperature = (1.43 - Vol_Value)/0.0043 + 25;	//根據(jù)公式算出溫度值
//	printf("MCU Internal Temperature: %.2f\r\n",Temperature);
 
  }
  /* USER CODE END 3 */
}

實驗現(xiàn)象

PA0接地;PA1接VCC;PA2接地;PA3浮空;PA4浮空

STM32 CubeMX ADC采集 單通道,多通道,內(nèi)部溫度(輪詢,DMA,中斷)(HAL庫),STM32 CubeMX,stm32,嵌入式硬件,單片機

總結(jié)

以上就是今天要講的內(nèi)容,本文僅僅簡單介紹了ADC的使用,而ADC提供了大量能使我們快速便捷地處理數(shù)據(jù)的函數(shù)和方法。文章來源地址http://www.zghlxwxcb.cn/news/detail-739381.html

到了這里,關(guān)于STM32 CubeMX ADC采集 單通道,多通道,內(nèi)部溫度(輪詢,DMA,中斷)(HAL庫)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔相關(guān)法律責任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • STM-32:ADC模數(shù)轉(zhuǎn)換器—ADC單通道轉(zhuǎn)換/ADC多通道轉(zhuǎn)換

    STM-32:ADC模數(shù)轉(zhuǎn)換器—ADC單通道轉(zhuǎn)換/ADC多通道轉(zhuǎn)換

    ADC(Analog-Digital Converter),意即模擬-數(shù)字轉(zhuǎn)換器,簡稱模數(shù)轉(zhuǎn)換器。ADC可以將引腳上連續(xù)變化的模擬電壓轉(zhuǎn)換為內(nèi)存中存儲的數(shù)字變量,建立模擬電路到數(shù)字電路的橋梁。與ADC相對應(yīng),從數(shù)字電路到模擬電路的橋梁即DAC(Digital-Analog Convertor),數(shù)模轉(zhuǎn)換器。 DAC不是唯一可以

    2024年02月09日
    瀏覽(23)
  • STM32入門筆記08_ADC模數(shù)轉(zhuǎn)換器+案例: ADC單通道&ADC多通道

    STM32入門筆記08_ADC模數(shù)轉(zhuǎn)換器+案例: ADC單通道&ADC多通道

    ADC(Analog-Digtal Converter) 模擬-數(shù)字轉(zhuǎn)換器 ADC可以將引腳上連續(xù)變化的模擬電壓轉(zhuǎn)換為內(nèi)存中存儲的數(shù)字變量, 建立模擬電路到數(shù)字電路的橋梁 12位逐次逼近型ADC, 1us轉(zhuǎn)換時間 輸入電壓范圍: 0~3.3V, 轉(zhuǎn)換結(jié)果范圍: 0~4095 18個輸入通道, 可測量16個外部和2個內(nèi)部信號源 規(guī)則組和注入組

    2024年02月04日
    瀏覽(55)
  • STM32 hal庫使用筆記(五)ADC—單通道/雙通道DMA傳輸

    STM32 hal庫使用筆記(五)ADC—單通道/雙通道DMA傳輸

    實現(xiàn)目的:利用ADC采集光敏傳感器/煙霧傳感器的值,并利用串口打印 實驗平臺:正點原子精英版 一、簡介 1.DMA的介紹 參考:STM32 hal庫使用筆記(四)DMA—內(nèi)存到內(nèi)存/內(nèi)存到外設(shè)_亂碼小伙的博客-CSDN博客 2.ADC簡介 ? ? ?ADC(Analog-Digital Converter)模擬-數(shù)字轉(zhuǎn)換器 ADC可以將引腳

    2024年02月03日
    瀏覽(21)
  • 實驗(六):ADC應(yīng)用:獨立模式單通道采集實驗

    實驗(六):ADC應(yīng)用:獨立模式單通道采集實驗

    實驗?zāi)康模?1. 學習對ADC基礎(chǔ)功能的使用; 2. 掌握KEIL5的仿真與調(diào)試。 任務(wù): 1.?? 根據(jù)要求編寫程序,并寫出原理性注釋; 2. 將檢查程序運行的結(jié)果,分析一下是否正確; 3. 完成所建工程的驗證調(diào)試。 貼片滑動變阻器的動觸點通過連接至STM32 芯片的ADC 通道引腳。當我們使

    2024年02月15日
    瀏覽(23)
  • STM32自學?AD單通道

    STM32自學?AD單通道

    ? 程序的最終運行成果: 當轉(zhuǎn)動電位器時,數(shù)值和電壓值發(fā)生變化 #include \\\"stm32f10x.h\\\" #include \\\"stm32f10x_adc.h\\\" #include \\\"ad.h\\\" #include \\\"stdint.h\\\" void ad_Init(void) { ?/* ?初始化步驟: ?1.開啟GPIO時鐘和ADC時鐘,配置ADCCLK ?2.配置GPIO,模擬輸入模式 ?3.配置多路開關(guān) ?4.配置ADC轉(zhuǎn)換器 ?5.開啟

    2024年03月21日
    瀏覽(28)
  • STM32CubeMX配置STM32G031多通道ADC采集(HAL庫開發(fā))

    STM32CubeMX配置STM32G031多通道ADC采集(HAL庫開發(fā))

    時鐘配置HSI主頻配置64M ?勾選打開8個通道的ADC ?使能連續(xù)轉(zhuǎn)換模式 ?配置好串口,選擇異步模式 配置好需要的開發(fā)環(huán)境并獲取代碼 ?修改main.c 串口重定向 ?串口重定向一定要勾選Use Micro LIB ?獲取ADC通道值 主函數(shù)? ?串口輸出

    2024年02月15日
    瀏覽(31)
  • STM32CubeMx配置ADC(多通道采集+DMA讀取數(shù)據(jù))(HAL庫開發(fā))

    STM32CubeMx配置ADC(多通道采集+DMA讀取數(shù)據(jù))(HAL庫開發(fā))

    目錄 1、函數(shù)配置過程(這是標準庫配置過程): 2、STM32CubeMx配置過程 ?3、main函數(shù)源文件 采集5路ADC數(shù)據(jù),并用串口printf()函數(shù)打印出來。 實驗現(xiàn)象:? ADC轉(zhuǎn)換的初始條件: 1、使能 2、觸發(fā)源條件完成(這個需要自己配置)利用:HAL_ADC_Start_DMA()函數(shù); ADC中HAL開發(fā)優(yōu)勢就是,

    2023年04月08日
    瀏覽(27)
  • HAL庫配置ADC_1_單通道配置

    HAL庫配置ADC_1_單通道配置

    ??在使用ADC外設(shè)前,先查看下芯片手冊,看下ADC的特點。 ??ADC的使用,一定是有參考電壓的,在使用時要注意,芯片手冊上關(guān)于ADC參考電壓的范圍。 通常正參考電壓VREF+連接到VCC,負參考電壓VREF-連接到GND ??通過框圖可以了解ADC的工作流程。 ??下面是ADC比較常用的參數(shù)說

    2024年02月04日
    瀏覽(28)
  • STM32CubeMX配置STM32G031多通道ADC + DMA采集(HAL庫開發(fā))

    STM32CubeMX配置STM32G031多通道ADC + DMA采集(HAL庫開發(fā))

    ?時鐘配置HSI主頻配置64M ?勾選打開8個通道的ADC ?使能連續(xù)轉(zhuǎn)換模式 ?添加DMA ?DMA模式選擇循環(huán)模式 ?使能DMA連續(xù)請求 采樣時間配置160.5 轉(zhuǎn)換次數(shù)為8 ?配置好8次轉(zhuǎn)換的順序 ?配置好串口,選擇異步模式 配置好需要的開發(fā)環(huán)境并獲取代碼 ?修改main.c 串口重定向 ?串口重定向

    2024年02月08日
    瀏覽(41)
  • 基于 VITA57.4 標準的單通道 6GSPS 12 位采樣 ADC,單通道 6GSPS 16 位采樣 DAC 子卡模塊

    基于 VITA57.4 標準的單通道 6GSPS 12 位采樣 ADC,單通道 6GSPS 16 位采樣 DAC 子卡模塊

    概述 FMC147 是一款單通道 6.4GSPS(或者配置成 2 通道 3.2GSPS)采樣率的 12 位 AD 采集、單通道 6GSPS(或配置成 2 通道 3GSPS) 采樣率 16 位 DA 輸出子卡模塊,該板卡為 FMC+標準,符合 VITA57.4 規(guī)范,該模塊可以作為一個理想的 IO 單元耦合至 FPGA 前端,ADC 數(shù)字端通過 16lane 通道的 JE

    2023年04月16日
    瀏覽(24)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包