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

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

相关文章:

  • 使用 HBuilder 打包 ruoyi-mall-uniapp 并在微信开发者工具中模拟运行的教程
  • 第二章:影响优化的计算机行为_《C++性能优化指南》notes
  • Elasticsearch DSL查询语法
  • ES 字段的映射定义了字段的类型及其行为
  • 142. 环形链表 II——考察数学,难!
  • k8s存储介绍(二)Secret
  • 【AI News | 20250325】每日AI进展
  • 救生滚钩,高效救援的多功能生命守护者|鼎跃安全
  • 详解图卷积网络
  • 游戏引擎学习第183天
  • MyBatis-Plus缓存机制深度解析与SpringBoot整合实战
  • [c语言日寄MAX]深度解析:大小端字节序
  • 36.评论日记
  • MySQL颠覆版系列————MySQL新特性(开启数据库的新纪元)下篇
  • [Windows] 图吧工具箱
  • Enovia许可管理系统的安装和配置
  • 如何快速下载并安装 Postman?
  • 从医疗大模型到综合医疗智能体:算法、架构与路径全流程分析
  • java -jar 指定spring配置文件
  • Ubuntu 24.04 启动后某些应用程序启动非常慢
  • 网站域名个人备案跟企业备案/深圳华强北新闻最新消息今天
  • wordpress wap跳转/东莞seo网站优化排名
  • 2在线做网站/seo培训班
  • 班级品牌建设/做seo网页价格
  • 诸城网站制作/南昌seo排名外包
  • 网站的三级页面怎么做/seo视频教学网站