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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2552|回復: 0
收起左側

ADC-單通道采集(DMA)

[復制鏈接]
ID:297076 發表于 2018-3-26 10:04 | 顯示全部樓層 |閱讀模式

bsp_adc.h文件內容:

1. #ifndef __ADC_H__

2. #define __ADC_H__

3.  

4. /* 包含頭文件----------------------------------------------------------------*/

5. #include "stm32f1xx_hal.h"

6.  

7. /* 類型定義------------------------------------------------------------------*/

8. /* 宏定義 --------------------------------------------------------------------*/

9. // 注意:用作ADC采集的IO必須沒有復用,否則采集電壓會有影響

10./********************ADC輸入通道(引腳)配置**************************/

11.//#define ADCx_RCC_CLK_ENABLE()           __HAL_RCC_ADC1_CLK_ENABLE()

12.//#define ADCx_RCC_CLK_DISABLE()          __HAL_RCC_ADC1_CLK_DISABLE()

13.//#define DMAx_RCC_CLK_ENABLE()           __HAL_RCC_DMA1_CLK_ENABLE()

14.//#define ADCx                            ADC1

15.//#define ADC_DMAx_CHANNELn               DMA1_Channel1

16.//#define ADC_DMAx_CHANNELn_IRQn          DMA1_Channel1_IRQn

17.//#define ADC_DMAx_CHANNELn_IRQHANDLER    DMA1_Channel1_IRQHandler

18.

19.#define ADCx_RCC_CLK_ENABLE()           __HAL_RCC_ADC3_CLK_ENABLE()

20.#define ADCx_RCC_CLK_DISABLE()          __HAL_RCC_ADC3_CLK_DISABLE()

21.#define DMAx_RCC_CLK_ENABLE()           __HAL_RCC_DMA2_CLK_ENABLE()

22.#define ADCx                            ADC3

23.#define ADC_DMAx_CHANNELn               DMA2_Channel5

24.#define ADC_DMAx_CHANNELn_IRQn          DMA2_Channel4_5_IRQn

25.#define ADC_DMAx_CHANNELn_IRQHANDLER    DMA2_Channel4_5_IRQHandler

26.

27.#define ADC_GPIO_ClK_ENABLE()           __HAL_RCC_GPIOC_CLK_ENABLE()

28.#define ADC_GPIO                        GPIOC

29.//#define ADC_GPIO_PIN                  GPIO_PIN_0       // 連接至板載精密可調電阻(需加跳帽)

30.//#define ADC_CHANNEL                   ADC_CHANNEL_10    // 連接至板載精密可調電阻(需加跳帽)

31.#define ADC_GPIO_PIN                    GPIO_PIN_1       // 連接至板載光敏電阻(需加跳帽)

32.#define ADC_CHANNEL                     ADC_CHANNEL_11    // 連接至板載光敏電阻(需加跳帽)

33.              

34./* 擴展變量------------------------------------------------------------------*/

35.extern ADC_HandleTypeDef hadcx;

36.extern DMA_HandleTypeDef hdma_adcx;

37./* 函數聲明------------------------------------------------------------------*/

38.void MX_ADCx_Init(void);

39.

40.#endif /* __ADC_H__ */

41.

42./******************* (C) COPYRIGHT 2015-2020 硬石嵌入式開發團隊 *****END OF FILE****/

43.


bsp_adc.c文件內容:

1. /**

2.   ******************************************************************************

3.   * 文件名程: bsp_adc.c

4.   * 作    者: 硬石嵌入式開發團隊

5.   * 版    本: V1.0

6.   * 編寫日期: 2015-10-04

7.   * 功    能: 板載ADC電壓采集底層驅動程序

8.   *******************************************************************************/

9. /* 包含頭文件----------------------------------------------------------------*/

10.#include "adc/bsp_adc.h"

11.

12./* 私有類型定義--------------------------------------------------------------*/

13./* 私有宏定義----------------------------------------------------------------*/

14./* 私有變量------------------------------------------------------------------*/

15.ADC_HandleTypeDef hadcx;

16.DMA_HandleTypeDef hdma_adcx;

17./* 擴展變量 ------------------------------------------------------------------*/

18./* 私有函數原形--------------------------------------------------------------*/

19./* 函數體--------------------------------------------------------------------*/

20./**

21.  * 函數功能: AD轉換初始化

22.  * 輸入參數: 無

23.  * 返 回 值: 無

24.  * 說    明:無

25.  */

26.void MX_ADCx_Init(void)

27.{

28.  ADC_ChannelConfTypeDef sConfig;

29.

30.  // ADC功能配置

31.  hadcx.Instance = ADCx;

32.  hadcx.Init.ScanConvMode = ADC_SCAN_DISABLE;

33.  hadcx.Init.ContinuousConvMode = ENABLE;

34.  hadcx.Init.DiscontinuousConvMode = DISABLE;

35.  hadcx.Init.ExternalTrigConv = ADC_SOFTWARE_START;

36.  hadcx.Init.DataAlign = ADC_DATAALIGN_RIGHT;

37.  hadcx.Init.NbrOfConversion = 1;

38.  HAL_ADC_Init(&hadcx);

39.

40.  // 配置采樣通道

41.  sConfig.Channel = ADC_CHANNEL;

42.  sConfig.Rank = 1;

43.  sConfig.SamplingTime = ADC_SAMPLETIME_55CYCLES_5;

44.  HAL_ADC_ConfigChannel(&hadcx, &sConfig);

45.}

46.

47./**

48.  * 函數功能: ADC外設初始化配置

49.  * 輸入參數: hadc:AD外設句柄類型指針

50.  * 返 回 值: 無

51.  * 說    明: 該函數被HAL庫內部調用

52.  */

53.void HAL_ADC_MspInit(ADC_HandleTypeDef* hadc)

54.{

55.  GPIO_InitTypeDef GPIO_InitStruct;

56.  if(hadc->Instance==ADCx)

57.  {

58.    /* 外設時鐘使能 */

59.    ADCx_RCC_CLK_ENABLE();

60.   

61.    /* AD轉換通道引腳時鐘使能 */

62.    ADC_GPIO_ClK_ENABLE();

63.   

64.    /* DMA時鐘使能 */

65.    DMAx_RCC_CLK_ENABLE();

66.      

67.    /* AD轉換通道引腳初始化 */

68.    GPIO_InitStruct.Pin = ADC_GPIO_PIN;

69.    GPIO_InitStruct.Mode = GPIO_MODE_ANALOG;

70.    HAL_GPIO_Init(ADC_GPIO, &GPIO_InitStruct);

71.

72.    /* DMA外設初始化配置 */  

73.    hdma_adcx.Instance = ADC_DMAx_CHANNELn;

74.    hdma_adcx.Init.Direction = DMA_PERIPH_TO_MEMORY;

75.    hdma_adcx.Init.PeriphInc = DMA_PINC_DISABLE;

76.    hdma_adcx.Init.MemInc = DMA_MINC_ENABLE;

77.    hdma_adcx.Init.PeriphDataAlignment =DMA_PDATAALIGN_HALFWORD;

78.    hdma_adcx.Init.MemDataAlignment = DMA_MDATAALIGN_HALFWORD;

79.    hdma_adcx.Init.Mode = DMA_CIRCULAR;

80.    hdma_adcx.Init.Priority = DMA_PRIORITY_HIGH;

81.    HAL_DMA_Init(&hdma_adcx);

82.    /* 連接DMA */

83.    __HAL_LINKDMA(hadc,DMA_Handle,hdma_adcx);

84.   

85.    /* 外設中斷優先級配置和使能中斷 */

86.    HAL_NVIC_SetPriority(ADC_DMAx_CHANNELn_IRQn, 0, 0);

87.    HAL_NVIC_EnableIRQ(ADC_DMAx_CHANNELn_IRQn);

88.  }

89.}

90.

91./**

92.  * 函數功能: ADC外設反初始化配置

93.  * 輸入參數: hadc:AD外設句柄類型指針

94.  * 返 回 值: 無

95.  * 說    明: 該函數被HAL庫內部調用

96.  */

97.void HAL_ADC_MspDeInit(ADC_HandleTypeDef* hadc)

98.{

99.  if(hadc->Instance==ADCx)

100. {

101.    /* 禁用ADC外設時鐘 */

102.    ADCx_RCC_CLK_DISABLE();

103.  

104.    /* AD轉換通道引腳反初始化 */

105.    HAL_GPIO_DeInit(ADC_GPIO, ADC_GPIO_PIN);

106.

107.    /* DMA外設反初始化*/

108.    HAL_DMA_DeInit(hadc->DMA_Handle);

109.  }

110.}

回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 1级毛片| wwww.xxxx免费 | 成人二区| av永久| 中文字幕亚洲视频 | 中文字幕第一页在线 | 看一级毛片 | 成人在线视频免费观看 | 午夜天堂精品久久久久 | 91久久国产精品 | 青青久在线视频 | 精品久久久久久久久久久下田 | 91视频一区 | 亚洲欧美中文字幕 | 亚洲国产一区在线 | www亚洲免费国内精品 | 一本色道久久综合亚洲精品高清 | 天天夜夜人人 | 精品视频一二区 | 欧美激情va永久在线播放 | 亚洲国产精品成人无久久精品 | av免费网站在线观看 | 国产精品久久久久久久久久久免费看 | 午夜爱爱毛片xxxx视频免费看 | 欧美视频三区 | 青青草网站在线观看 | 一区二区免费在线 | 91 视频网站 | www.男人天堂.com | 国产一区二区在线视频 | 伊人久久综合 | 亚洲欧美在线观看 | 蜜桃在线视频 | 国产激情91久久精品导航 | 欧美高清性xxxxhd | 国产精品久久国产精品久久 | 视频精品一区二区三区 | 日本三级在线网站 | 亚洲一区电影 | 九九热这里只有精品6 | 成人福利在线视频 |