欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136
標題:
STM32 ADC+DMA 讀取供電電壓值與內部溫度傳感器值.兩路連續(xù)轉換模式
[打印本頁]
作者:
LanSeXinQing
時間:
2019-9-24 22:44
標題:
STM32 ADC+DMA 讀取供電電壓值與內部溫度傳感器值.兩路連續(xù)轉換模式
ADC讀取供電電壓值與內部溫度傳感器值.兩路連續(xù)轉換模式.
vc_adc.c
#include "vc_adc.h"
//__IO u16 ADC_ConvertedValue[4][2];
u16 ADC_ConvertedValue[4][2];
/* 這里的ADC是暫時用來試驗兩路AD轉換,一路是測量電壓,另一路是讀取內部溫度值
** 暫時是用來測試的,以后測量電流一路.*/
void Vc_AdcInit(void){
GPIO_InitTypeDef GPIO_InitStructure;
ADC_InitTypeDef ADC_InitStructure;
RCC_APB2PeriphClockCmd (RCC_APB2Periph_ADC1 | RCC_APB2Periph_GPIOA ,ENABLE );
RCC_ADCCLKConfig (RCC_PCLK2_Div6 ); /* 72M/6=12M */
GPIO_InitStructure .GPIO_Mode = GPIO_Mode_AIN ;
GPIO_InitStructure .GPIO_Pin = VADC_PIN; // | CADC_PIN 這里暫時先檢測電壓這一路;
/* 因為是輸入,所以不需要設置速度 */
GPIO_Init (ADC_PORT ,&GPIO_InitStructure );
ADC_DeInit (ADC1 );
ADC_InitStructure .ADC_Mode = ADC_Mode_Independent ; /* ADC獨立模式 */
//ADC_InitStructure .ADC_ScanConvMode = DISABLE ; /* 單通道模式*/
ADC_InitStructure .ADC_ScanConvMode = ENABLE ; /* 多通道模式*/
//ADC_InitStructure .ADC_ContinuousConvMode = DISABLE ; /* 單次模式*/
ADC_InitStructure .ADC_ContinuousConvMode = ENABLE ; /* 連續(xù)模式*/
ADC_InitStructure .ADC_ExternalTrigConv = ADC_ExternalTrigConv_None ;
ADC_InitStructure .ADC_DataAlign = ADC_DataAlign_Right ;
ADC_InitStructure .ADC_NbrOfChannel = 2; /* 設置ADC路數(shù)為2路*/
ADC_Init (ADC1, &ADC_InitStructure );
ADC_TempSensorVrefintCmd (ENABLE );
ADC_RegularChannelConfig (ADC1 ,ADC_Channel_4 , 1, ADC_SampleTime_239Cycles5); /* 規(guī)則通道1*/
ADC_RegularChannelConfig (ADC1 ,ADC_Channel_16 ,2, ADC_SampleTime_239Cycles5); /* 規(guī)則通道2*/
ADC_DMACmd (ADC1 ,ENABLE );
ADC_Cmd (ADC1 ,ENABLE );
ADC_ResetCalibration (ADC1 );
while(ADC_GetResetCalibrationStatus (ADC1));
ADC_StartCalibration (ADC1 );
while(ADC_GetCalibrationStatus (ADC1 ));
ADC_SoftwareStartConvCmd (ADC1 ,ENABLE );
}
void DMA_Config(void){
DMA_InitTypeDef DMA_InitStructure;
RCC_AHBPeriphClockCmd (RCC_AHBPeriph_DMA1 ,ENABLE );
DMA_DeInit (DMA1_Channel1);
DMA_InitStructure .DMA_PeripheralBaseAddr = (u32)&(ADC1 ->DR);
DMA_InitStructure .DMA_MemoryBaseAddr = (u32)&ADC_ConvertedValue ;
DMA_InitStructure .DMA_DIR = DMA_DIR_PeripheralSRC ; /* 外設作為數(shù)據(jù)來源*/
DMA_InitStructure .DMA_BufferSize =
DMA_InitStructure .DMA_PeripheralInc = DMA_PeripheralInc_Disable ; /* 外設地址固定*/
DMA_InitStructure .DMA_MemoryInc = DMA_MemoryInc_Enable ; /* 內存地址增加*/
DMA_InitStructure .DMA_PeripheralDataSize = DMA_PeripheralDataSize_HalfWord ; /* 16bit*/
DMA_InitStructure .DMA_MemoryDataSize = DMA_MemoryDataSize_HalfWord ;
DMA_InitStructure .DMA_Mode = DMA_Mode_Circular ;
DMA_InitStructure .DMA_Priority = DMA_Priority_High ;
DMA_InitStructure .DMA_M2M = DMA_M2M_Disable ;
DMA_Init (DMA1_Channel1 ,&DMA_InitStructure );
DMA_Cmd (DMA1_Channel1 ,ENABLE );
}
復制代碼
vc_adc.h
#ifndef _vc_adc_H
#define _vc_adc_H
#include "stm32f10x.h"
/*電壓ADC--PA4(ADC12-IN$)
**電流ADC--PA3(ADC12-IN3)
*/
#define VADC_PIN GPIO_Pin_4
#define CADC_PIN GPIO_Pin_3
#define ADC_PORT GPIOA
extern void Vc_AdcInit(void);
extern void DMA_Config(void);
#endif
復制代碼
作者:
GXTongg
時間:
2020-11-23 08:35
那個dma傳輸數(shù)據(jù)長度需要,填二維數(shù)組的長度嗎?
作者:
06123
時間:
2023-6-16 11:36
2個文件,不是工程
作者:
herohuang
時間:
2023-6-17 11:59
這代碼能用?配置環(huán)境是怎樣的?
作者:
herohuang
時間:
2023-6-17 12:00
這代碼能用,能不能詳細把配置環(huán)境也貼出來
作者:
nxplpcexpresso
時間:
2024-2-7 23:24
這里有
歡迎光臨 (http://m.raoushi.com/bbs/)
Powered by Discuz! X3.1