久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 4564|回復: 5
打印 上一主題 下一主題
收起左側

STM32 ADC+DMA 讀取供電電壓值與內部溫度傳感器值.兩路連續轉換模式

[復制鏈接]
跳轉到指定樓層
樓主
ID:326783 發表于 2019-9-24 22:44 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
ADC讀取供電電壓值與內部溫度傳感器值.兩路連續轉換模式.

vc_adc.c
  1. #include "vc_adc.h"
  2. //__IO u16 ADC_ConvertedValue[4][2];
  3. u16 ADC_ConvertedValue[4][2];
  4. /* 這里的ADC是暫時用來試驗兩路AD轉換,一路是測量電壓,另一路是讀取內部溫度值
  5. ** 暫時是用來測試的,以后測量電流一路.*/
  6. void Vc_AdcInit(void){
  7.   GPIO_InitTypeDef  GPIO_InitStructure;
  8.   ADC_InitTypeDef   ADC_InitStructure;
  9.   RCC_APB2PeriphClockCmd (RCC_APB2Periph_ADC1 | RCC_APB2Periph_GPIOA ,ENABLE );
  10.   RCC_ADCCLKConfig (RCC_PCLK2_Div6 ); /* 72M/6=12M */
  11.   
  12.   GPIO_InitStructure .GPIO_Mode = GPIO_Mode_AIN ;
  13.   GPIO_InitStructure .GPIO_Pin = VADC_PIN; // | CADC_PIN 這里暫時先檢測電壓這一路;
  14.   /* 因為是輸入,所以不需要設置速度 */
  15.   GPIO_Init (ADC_PORT ,&GPIO_InitStructure );
  16.   ADC_DeInit (ADC1 );
  17.   ADC_InitStructure .ADC_Mode = ADC_Mode_Independent ;  /* ADC獨立模式 */
  18.   //ADC_InitStructure .ADC_ScanConvMode = DISABLE ; /* 單通道模式*/
  19.   ADC_InitStructure .ADC_ScanConvMode = ENABLE ;    /* 多通道模式*/
  20.   //ADC_InitStructure .ADC_ContinuousConvMode = DISABLE ; /* 單次模式*/
  21.   ADC_InitStructure .ADC_ContinuousConvMode = ENABLE ;  /* 連續模式*/
  22.   ADC_InitStructure .ADC_ExternalTrigConv = ADC_ExternalTrigConv_None ;
  23.   ADC_InitStructure .ADC_DataAlign = ADC_DataAlign_Right ;
  24.   ADC_InitStructure .ADC_NbrOfChannel = 2;  /* 設置ADC路數為2路*/
  25.   ADC_Init (ADC1, &ADC_InitStructure );
  26.   ADC_TempSensorVrefintCmd (ENABLE );
  27.   ADC_RegularChannelConfig (ADC1 ,ADC_Channel_4 , 1, ADC_SampleTime_239Cycles5);  /* 規則通道1*/
  28.   ADC_RegularChannelConfig (ADC1 ,ADC_Channel_16 ,2, ADC_SampleTime_239Cycles5);  /* 規則通道2*/
  29.   ADC_DMACmd (ADC1 ,ENABLE );
  30.   ADC_Cmd (ADC1 ,ENABLE );
  31.   ADC_ResetCalibration (ADC1 );
  32.   while(ADC_GetResetCalibrationStatus (ADC1));
  33.   ADC_StartCalibration (ADC1 );
  34.   while(ADC_GetCalibrationStatus (ADC1 ));
  35.   ADC_SoftwareStartConvCmd (ADC1 ,ENABLE );
  36. }
  37. void DMA_Config(void){
  38.   
  39.   DMA_InitTypeDef DMA_InitStructure;
  40.   RCC_AHBPeriphClockCmd (RCC_AHBPeriph_DMA1 ,ENABLE );
  41.   DMA_DeInit (DMA1_Channel1);
  42.   DMA_InitStructure .DMA_PeripheralBaseAddr = (u32)&(ADC1 ->DR);
  43.   DMA_InitStructure .DMA_MemoryBaseAddr = (u32)&ADC_ConvertedValue ;
  44.   DMA_InitStructure .DMA_DIR = DMA_DIR_PeripheralSRC ; /* 外設作為數據來源*/
  45.   DMA_InitStructure .DMA_BufferSize =
  46.   DMA_InitStructure .DMA_PeripheralInc = DMA_PeripheralInc_Disable ;  /* 外設地址固定*/
  47.   DMA_InitStructure .DMA_MemoryInc = DMA_MemoryInc_Enable ; /* 內存地址增加*/
  48.   DMA_InitStructure .DMA_PeripheralDataSize = DMA_PeripheralDataSize_HalfWord ; /* 16bit*/
  49.   DMA_InitStructure .DMA_MemoryDataSize = DMA_MemoryDataSize_HalfWord ;
  50.   DMA_InitStructure .DMA_Mode = DMA_Mode_Circular ;
  51.   DMA_InitStructure .DMA_Priority = DMA_Priority_High ;
  52.   DMA_InitStructure .DMA_M2M = DMA_M2M_Disable ;
  53.   DMA_Init (DMA1_Channel1 ,&DMA_InitStructure );
  54.   
  55.   DMA_Cmd (DMA1_Channel1 ,ENABLE );
  56. }

復制代碼

vc_adc.h
  1. #ifndef _vc_adc_H
  2. #define _vc_adc_H
  3. #include "stm32f10x.h"
  4. /*電壓ADC--PA4(ADC12-IN$)
  5. **電流ADC--PA3(ADC12-IN3)
  6. */
  7. #define VADC_PIN  GPIO_Pin_4
  8. #define CADC_PIN  GPIO_Pin_3
  9. #define ADC_PORT  GPIOA
  10. extern void Vc_AdcInit(void);
  11. extern void DMA_Config(void);


  12. #endif
復制代碼


分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏4 分享淘帖 頂 踩1
回復

使用道具 舉報

沙發
ID:379993 發表于 2020-11-23 08:35 | 只看該作者
那個dma傳輸數據長度需要,填二維數組的長度嗎?
回復

使用道具 舉報

板凳
ID:195666 發表于 2023-6-16 11:36 | 只看該作者
2個文件,不是工程
回復

使用道具 舉報

地板
ID:101305 發表于 2023-6-17 11:59 | 只看該作者
這代碼能用?配置環境是怎樣的?
回復

使用道具 舉報

5#
ID:101305 發表于 2023-6-17 12:00 | 只看該作者
這代碼能用,能不能詳細把配置環境也貼出來
回復

使用道具 舉報

6#
ID:1102070 發表于 2024-2-7 23:24 來自觸屏版 | 只看該作者
這里有
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 欧美一区二区三区在线观看视频 | 欧美h版 | 久久不卡| 欧美成人aaa级毛片在线视频 | 一区二区在线免费播放 | k8久久久一区二区三区 | 国产亚洲欧美日韩精品一区二区三区 | 中文字幕一区二区三区四区 | 欧美成人免费 | 国产美女永久免费无遮挡 | 久草电影网 | 福利视频大全 | 中文字幕欧美日韩 | 久久久久一区 | 国产精品一区在线 | 91色视频在线观看 | 懂色av一区二区三区在线播放 | 欧美成人精品一区二区男人看 | 久久精品国产一区二区电影 | 亚洲视频在线免费观看 | 欧美美女二区 | 一区二区三区四区不卡 | 久久久久成人精品亚洲国产 | 一区视频在线 | 国产精品不卡 | 欧美男人天堂 | 国产精品久久久亚洲 | 久久黄网 | 国产91精品网站 | 欧美日韩亚洲国产综合 | 国产精品视频在线免费观看 | 久色一区 | 成人在线视频一区 | 精品国产乱码久久久久久丨区2区 | 青青草精品视频 | 精品乱码一区二区三四区 | 日韩一级电影免费观看 | 日韩在线小视频 | 无人区国产成人久久三区 | 亚洲成人一级 | 欧美精品乱码久久久久久按摩 |