查看: 1304|回复: 0

【STM32746G-Discovery】ADC的使用

[复制链接]
  • TA的每日心情
    奋斗
    2023-7-6 08:48
  • 签到天数: 169 天

    连续签到: 1 天

    [LV.7]常住居民III

    发表于 2016-7-11 09:33:06 | 显示全部楼层 |阅读模式
    分享到:
    前期回顾:
    【STM32746G-Discovery】jpg图片解码显示
    https://jingyan.eeboard.com/article/75261
    【STM32746G-Discovery】基于FreeRTOS的Fatfs文件系统
    https://jingyan.eeboard.com/article/75259
    【STM32F746G-Discovery】网络LwIP
    https://jingyan.eeboard.com/article/75254
    大厂风范——Intel Edison开发板
    https://jingyan.eeboard.com/article/75253
    魔兽世界插件开发语言的开发环境
    https://jingyan.eeboard.com/article/75252


    F7上的12 位ADC 是逐次趋近型模数转换器。它具有多达19 个复用通道,可测量来自16 个外部源、两个内部源和VBAT 通道的信号。这些通道的A/D 转换可在单次、连续、扫描或不连续采样模式下进行。ADC 的结果存储在一个左对齐或右对齐的16 位数据寄存器中。ADC 具有模拟看门狗特性,允许应用检测输入电压是否超过了用户自定义的阈值上限或下限。
    ADC 主要特性有:

    ADC 具有两个时钟方案
    1、模拟电路时钟:ADCCLK,对于所有ADC 均通用
    2、用于数字接口的时钟
    ADC有16 条复用通道。可以将转换分为两组:常规转换和注入转换。每个组包含一个转换序列,该序列可按任意顺序在任意通道上完成。
    比较常用的是DMA的方式。
    ADC的配置使用了ADC_ChannelConfTypeDef结构体。

    ADC_HandleTypeDef结构体

    ADC初始化配置程序。
    AdcHandle.Instance          = ADCx;    AdcHandle.Init.ClockPrescaler        = ADC_CLOCKPRESCALER_PCLK_DIV4;  AdcHandle.Init.Resolution            = ADC_RESOLUTION_12B;  AdcHandle.Init.ScanConvMode          = DISABLE;                       /* Sequencer disabled (ADC conversion on only 1 channel: channel set on rank 1) */  AdcHandle.Init.ContinuousConvMode    = ENABLE;                        /* Continuous mode disabled to have only 1 conversion at each conversion trig */  AdcHandle.Init.DiscontinuousConvMode = DISABLE;                       /* Parameter discarded because sequencer is disabled */  AdcHandle.Init.NbrOfDiscConversion   = 0;  AdcHandle.Init.ExternalTrigConvEdge  = ADC_EXTERNALTRIGCONVEDGE_NONE;        /* Conversion start trigged at each external event */  AdcHandle.Init.ExternalTrigConv      = ADC_EXTERNALTRIGCONV_T1_CC1;  AdcHandle.Init.DataAlign             = ADC_DATAALIGN_RIGHT;  AdcHandle.Init.NbrOfConversion       = 1;  AdcHandle.Init.DMAContinuousRequests = ENABLE;  AdcHandle.Init.EOCSelection          = DISABLE;通道配置程序。
    sConfig.Channel      = ADC_CHANNEL_8;  sConfig.Rank         = 1;  sConfig.SamplingTime = ADC_SAMPLETIME_3CYCLES;  sConfig.Offset       = 0;程序会根据ADC的结果来点亮或熄灭LED灯。
    回复

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /2 下一条

    手机版|小黑屋|与非网

    GMT+8, 2024-4-20 13:39 , Processed in 0.120237 second(s), 17 queries , MemCache On.

    ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

    苏公网安备 32059002001037号

    Powered by Discuz! X3.4

    Copyright © 2001-2020, Tencent Cloud.