当前位置: 首页 > article >正文

STM32 ADC和DAC详解

ADC

uint16_t Get_ADC1(uint32_t ch)
{
    ADC_ChannelConfTypeDef ADC1_ChanConf;

    ADC1_ChanConf.Channel=ch;                                 //通道
    ADC1_ChanConf.Rank=ADC_REGULAR_RANK_1;                      //1个序列
    ADC1_ChanConf.SamplingTime=ADC_SAMPLETIME_24CYCLES_5;     //采样时间
    ADC1_ChanConf.SingleDiff=ADC_SINGLE_ENDED;                        //单边采集
    ADC1_ChanConf.OffsetNumber=ADC_OFFSET_NONE;
    ADC1_ChanConf.Offset=0;
    HAL_ADC_ConfigChannel(&hadc1,&ADC1_ChanConf);        //通道配置

    HAL_ADC_Start(&hadc1);                               //开启ADC

    HAL_ADC_PollForConversion(&hadc1,50);                //轮询转换

    if(HAL_IS_BIT_SET(HAL_ADC_GetState(&hadc1), HAL_ADC_STATE_REG_EOC))
    {

        return (uint16_t)HAL_ADC_GetValue(&hadc1);          //返回最近一次ADC1规则组的转换结果
    }
    else
    {
        return 0;                //返回最近一次ADC1规则组的转换结果
    }

}

uint16_t adc_value = Get_ADC1(ADC_CHANNEL_1);

Vadc=Vref*adc_value/4096

DAC

void DAC1_Write(uint32_t Channel, uint32_t value)
{
    HAL_DAC_SetValue(&hdac1, Channel, DAC_ALIGN_12B_R, value);
    HAL_DAC_Start(&hdac1, Channel);
}

DAC1_Write(DAC_CHANNEL_1, dac_value);

dac_value=Vdac/Vref*4096


http://www.kler.cn/a/600206.html

相关文章:

  • [React 进阶系列] 组合组件 复合组件
  • 矩阵指数的定义和基本性质
  • [实操]Mysql8 InnoDB引擎主从配置三节点操作流程
  • LeetCode热题100_最长连续序列
  • 保姆级 STM32 HAL 库外部中断教学
  • 使用 Ansible 通过源码编译安装 Nginx 的完整步骤。
  • CSS网格布局Grid
  • C# WinForms 中的回调:从性能到技术层面的全面解析
  • Netty源码—3.Reactor线程模型四
  • 【Qt】QDialog对话框
  • SQL语句---DDL
  • 买卖股票的最佳时机 IV (leetcode 188)
  • 基于SpringBoot的汽车租赁系统
  • 消息队列ActiveMQ、RabbitMQ、RocketMQ、Kafka对比分析和选型
  • 第八:在Go语言项目中使用Zap日志库
  • vue js给元素动态添加动画样式, 改变背景色
  • 单片机 - RAM 与内存、ROM 与硬盘 之间的详细对比总结
  • 【后端开发面试题】每日 3 题(二十)
  • 计算机网络 - OSI 七层模型
  • ffmpeg+QOpenGLWidget显示视频