• 大小: 424KB
    文件类型: .zip
    金币: 2
    下载: 1 次
    发布日期: 2022-12-30
  • 语言: 其他
  • 标签: STM32  模数转换  

资源简介

STM32单片机经典模数转换程序,程序简单易懂,便于移植开发。

资源截图

代码片段和文件信息

/*-------------------------------------------------------------------------------
文件名称:usart.c
文件描述:adc库函数
硬件平台:尼莫M3S开发板
           ----------------------------------------------------
          |                                                    |
          | PC1 - ADC1 连接外部电压(通过一个滑动变阻器分压)|
          |                                                    |
           ----------------------------------------------------
编写整理:shifang
固件库  :V3.5
技术论坛:www.doflye.net
备    注:通过简单修改可以移植到其他开发板,部分资料来源于网络。
---------------------------------------------------------------------------------*/

#include “adc.h“

#define ADC1_DR_Address    ((u32)0x40012400+0x4c)

__IO uint16_t ADC_ConvertedValue;


/*
 * 函数名:ADC1_GPIO_Config
 * 描述  :使能ADC1和DMA1的时钟,初始化PC.01
 * 输入  : 无
 * 输出  :无
 * 调用  :内部调用
 */
static void ADC1_GPIO_Config(void)
{
GPIO_InitTypeDef GPIO_InitStructure;

/* Enable DMA clock */
RCC_AHBPeriphClockCmd(RCC_AHBPeriph_DMA1 ENABLE);

/* Enable ADC1 and GPIOC clock */
RCC_APB2PeriphClockCmd(RCC_APB2Periph_ADC1 | RCC_APB2Periph_GPIOC ENABLE);

/* Configure PC.01  as analog input */
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_1;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AIN;
GPIO_Init(GPIOC &GPIO_InitStructure); // PC1输入时不用设置速率
}


/* 函数名:ADC1_Mode_Config
 * 描述  :配置ADC1的工作模式为MDA模式
 * 输入  : 无
 * 输出  :无
 * 调用  :内部调用
 */
static void ADC1_Mode_Config(void)
{
DMA_InitTypeDef DMA_InitStructure;
ADC_InitTypeDef ADC_InitStructure;

/* DMA channel1 configuration */
DMA_DeInit(DMA1_Channel1);
DMA_InitStructure.DMA_PeripheralbaseAddr = ADC1_DR_Address;  //ADC地址    定义DMA外设基地址
DMA_InitStructure.DMA_MemorybaseAddr = (u32)&ADC_ConvertedValue;//内存地址
DMA_InitStructure.DMA_DIR = DMA_DIR_PeripheralSRC; //外设作为数据传输的来源;DMA_DIR_PeripheralDST-外设作为数据传输的目的地
DMA_InitStructure.DMA_BufferSize = 1;
DMA_InitStructure.DMA_PeripheralInc = DMA_PeripheralInc_Disable;//外设地址固定
DMA_InitStructure.DMA_MemoryInc = DMA_MemoryInc_Disable;  //内存地址固定
DMA_InitStructure.DMA_PeripheralDataSize = DMA_PeripheralDataSize_HalfWord; //半字
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);

/* Enable DMA channel1 */
DMA_Cmd(DMA1_Channel1 ENABLE);

/* ADC1 configuration */

ADC_InitStructure.ADC_Mode = ADC_Mode_Independent; //独立ADC模式
ADC_InitStructure.ADC_ScanConvMode = DISABLE ;   //禁止扫描模式,扫描模式用于多通道采集
ADC_InitStructure.ADC_ContinuousConvMode = ENABLE; //开启连续转换模式,即不停地进行ADC转换
ADC_InitStructure.ADC_ExternalTrigConv = ADC_ExternalTrigConv_None; //不使用外部触发转换
ADC_InitStructure.ADC_DataAlign = ADC_DataAlign_Right;  //采集数据右对齐
ADC_InitStructure.ADC_NbrOfChannel = 1;   //要转换的通道数目1    取值范围是1~16
ADC_Init(ADC1 &ADC_InitStructure);

/*配置ADC时钟,为PCLK2的8分频,即9Hz*/
RCC_ADCCLKConfig(RCC_PCLK

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2019-01-17 11:01  STM32-ADC转换\
     目录           0  2019-01-17 11:01  STM32-ADC转换\HARDWAE\
     目录           0  2019-01-17 11:00  STM32-ADC转换\HARDWAE\adc\
     文件        4142  2018-11-03 17:12  STM32-ADC转换\HARDWAE\adc\adc.c
     文件         192  2015-03-02 14:48  STM32-ADC转换\HARDWAE\adc.h
     目录           0  2019-01-17 11:00  STM32-ADC转换\HARDWAE\beep\
     文件        1075  2015-01-28 15:46  STM32-ADC转换\HARDWAE\beep\beep.c
     文件         395  2015-01-28 15:55  STM32-ADC转换\HARDWAE\beep.h
     目录           0  2019-01-17 11:00  STM32-ADC转换\HARDWAE\delay\
     文件        1843  2015-01-28 11:12  STM32-ADC转换\HARDWAE\delay\delay.c
     文件         285  2015-01-28 11:13  STM32-ADC转换\HARDWAE\delay.h
     目录           0  2019-01-17 11:00  STM32-ADC转换\HARDWAE\key\
     文件        1517  2015-01-28 11:21  STM32-ADC转换\HARDWAE\key\key.c
     文件         391  2015-01-28 11:21  STM32-ADC转换\HARDWAE\key.h
     目录           0  2019-01-17 11:00  STM32-ADC转换\HARDWAE\led\
     文件        1187  2015-01-28 11:13  STM32-ADC转换\HARDWAE\led\led.c
     文件         601  2015-01-28 11:13  STM32-ADC转换\HARDWAE\led.h
     目录           0  2019-01-17 11:00  STM32-ADC转换\HARDWAE\timer\
     文件        1703  2015-01-28 15:35  STM32-ADC转换\HARDWAE\timer\timer.c
     文件         194  2015-01-28 15:35  STM32-ADC转换\HARDWAE\timer.h
     目录           0  2019-01-17 11:00  STM32-ADC转换\HARDWAE\usart\
     文件        3416  2015-03-03 08:55  STM32-ADC转换\HARDWAE\usart\usart.c
     文件         190  2015-03-02 14:50  STM32-ADC转换\HARDWAE\usart.h
     目录           0  2019-01-17 11:00  STM32-ADC转换\USER\
     文件        1387  2015-03-25 18:37  STM32-ADC转换\USER\main.c
     文件      352957  2018-11-03 15:24  STM32-ADC转换\USER\main.crf
     文件        1337  2018-11-03 15:24  STM32-ADC转换\USER\main.d
     文件      391760  2018-11-03 15:24  STM32-ADC转换\USER\main.o
     文件        3259  2011-04-04 19:03  STM32-ADC转换\USER\stm32f10x_conf.h
     文件        4474  2015-01-27 14:29  STM32-ADC转换\USER\stm32f10x_it.c
     文件      347783  2018-11-03 15:24  STM32-ADC转换\USER\stm32f10x_it.crf
............此处省略10个文件信息

评论

共有 条评论