BearPi Std 板从入门到放弃 - 引气入体篇(8)(ADC)

简介

基于前面的文章, 缩略STM32CubeMx创建项目的过程,直接添加ADC相关初	始化;
开发板 : Bearpi Std(小熊派标准板)
主芯片: STM32L431RCT6
LED :  PC13 \ 推挽输出即可 \ 高电平点亮 
串口:  Usart1
ADC1:  PC2

步骤

  1. 创建STM32CubeMX
    LED/串口
  2. ADC1初始化
    a. 设置ADC1 通道3单通道输入
    在这里插入图片描述
    b. 设置ADC时钟
    在这里插入图片描述
    c. ADC1 配置
    添加DMA设置
    在这里插入图片描述

采样设置
12bit 采样 / 连续转换启用 / DMA启用
在这里插入图片描述
采样速率
在这里插入图片描述

  1. 生成工程 BearPi_ADC14. 加入用户代码

int main()
{
/* USER CODE BEGIN 1 */
	int16_t adcValue = 0; 
	float voltage = 0.0;
  /* USER CODE END 1 */
	...
  /* USER CODE BEGIN 2 */
	HAL_ADC_Start_DMA(&hadc1, (uint32_t*)&adcValue, 1); // 开启ADC 采样
  /* USER CODE END 2 */

/* USER CODE BEGIN WHILE */
  while (1)
  {
    /* USER CODE END WHILE */

    /* USER CODE BEGIN 3 */
		voltage = adcValue * 3.3 / 4096;
		printf("ADCValue: %d, ADCValue: %f\r\n", adcValue, voltage);
		HAL_Delay(1000);
  }
  /* USER CODE END 3 */
  ...
}

/* USER CODE BEGIN 4 */
/* 采样回调 */
void  HAL_ADC_ConvCpltCallback(ADC_HandleTypeDef* hadc)
{
  if(hadc->Instance == ADC1)
  {
    HAL_GPIO_TogglePin(USER_LED_GPIO_Port, USER_LED_Pin);
  }
}

/* USER CODE END 4 */

前言后说

Vout = Vref * (D / 2^n)
其中Vref代表参考电压,
n为DAC的位数,
D为DAC输入的数字信号。
例如,假设有一个12位分辨率的DAC,参考电压为5V,那么当输入的数字信号为4095(即二进制的111111111111)时,
输出电压应为:Vout = 5V * (4095 / 2^12) = 2.5V。这是因为在这个例子中,
12位DAC的分辨率是2^12,所以最大的输入数字信号是2^12-1=4095。
当输入的数字信号小于最大值时,输出电压会随着输入信号的增大而线性增大;
当输入的数字信号大于最大值时,输出电压将会保持在最大值不变。

本例是12位DAC的分辨率, 且芯片引用电压是3.3V : 公式为 Vout = 3.3 * D / 4095

完整BearPi_ADC1代码

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/222918.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

「音视频处理」音频编码AAC详解,低码率提高音质?

AAC(高级音频编码) 也称为 MPEG-4 音频。数码音频压缩和编码的标准方式。AAC 编码文件可与音乐光盘的质量相匹敌,且声音质量通常等同于或高于以相同或甚至更高的位速率编码的 MP3 文件。 我们按这样的顺序讨论 : 1、 封装格式的…

如何使用 Zotero 导出所选条目的 PDF 文件

如何使用 Zotero 导出所选条目的 PDF 文件 Zotero 是一款强大的参考文献管理工具,但它并不直接提供将整个文件夹导出为 PDF 的选项。不过,您可以使用以下步骤来导出您所选的 Zotero 条目中的 PDF 文件,无需额外的插件。 选择所需的 Zotero 条…

2023年危险化学品生产单位安全生产管理人员证考试题库及危险化学品生产单位安全生产管理人员试题解析

题库来源:安全生产模拟考试一点通公众号小程序 2023年危险化学品生产单位安全生产管理人员证考试题库及危险化学品生产单位安全生产管理人员试题解析是安全生产模拟考试一点通结合(安监局)特种作业人员操作证考试大纲和(质检局&a…

二叉树链式结构

1.前置说明 我们手动构建一棵二叉树: 注意:上述代码并不是创建二叉树的方式 从概念中可以看出,二叉树定义是递归式的,因此后序基本操作中基本都是按照该概念实现的 2.二叉树的遍历 2.1前序、中序以及后序遍历 学习二叉树结构&a…

基于c++版本链队列改-Python版本链队列基础理解

##基于链表的队列实现 可以将链表的“头节点”和“尾节点”分别视为“队首”和“队尾”,规定队尾仅可添加节点,队首仅可删除节点。 ##图解 ##基于链表的队列实现代码 class ListNode:"""定义链表"""def __init__(self)…

Nexus搭建npm私库(角色管理、上传脚本)

安装Nexus 官网下载 https://www.sonatype.com/products/sonatype-nexus-oss-download 进入官网下载,最新下载方式需要输入个人信息才能下载了 选择对应的系统进行下载 Windows 推荐也下载 UNIX 版本(Windows 版本配置比较难改) 如果没有下…

​LeetCode解法汇总2477. 到达首都的最少油耗

目录链接: 力扣编程题-解法汇总_分享记录-CSDN博客 GitHub同步刷题项目: https://github.com/September26/java-algorithms 原题链接:力扣(LeetCode)官网 - 全球极客挚爱的技术成长平台 描述: 给你一棵 …

org.springframework.jdbc.datasource.lookup.AbstractRoutingDataSource

DynamicDataSource-CSDN博客 /** Copyright 2002-2020 the original author or authors.** Licensed under the Apache License, Version 2.0 (the "License");* you may not use this file except in compliance with the License.* You may obtain a copy of the L…

排序算法基本原理及实现2

📑打牌 : da pai ge的个人主页 🌤️个人专栏 : da pai ge的博客专栏 ☁️宝剑锋从磨砺出,梅花香自苦寒来 🌤️冒泡排序 &#x1…

解决mybatis-plus中,当属性为空的时候,update方法、updateById方法无法set null,直接忽略了

问题描述 当indexId set 22的时候是可以set的 我们发现sql语句也是正常的 表中数据也被更改了 但是当我们indexId为空的时候 sql语句中没有了set indexId这一属性。。 既然属性都没了,表是肯定没做修改的 问题解决 在实体类对应的字段上加注解TableField(strategy…

每日一练【有效三角形的个数】

一、题目描述 611. 有效三角形的个数 给定一个包含非负整数的数组 nums ,返回其中可以组成三角形三条边的三元组个数。 示例 1: 输入: nums [2,2,3,4] 输出: 3 解释:有效的组合是: 2,3,4 (使用第一个 2) 2,3,4 (使用第二个 2) 2,2,3示例 2: 输入: nums [4,2…

《WebGIS快速开发教程》第5版“惊喜”更新啦

我的书籍《WebGIS快速开发教程》第5版,经过忙碌的编写,终于发布啦! 先给大家看看新书的封面: 这次的封面我们经过了全新的设计,不同于以往的任何一个版本。从封面就可以看出第5版肯定有不小的更新。 那么我们话不多说…

ChatGPT,作为一种强大的自然语言处理模型,具备显著优势,能够帮助您在各个领域取得突破

2023年随着OpenAI开发者大会的召开,最重磅更新当属GPTs,多模态API,未来自定义专属的GPT。微软创始人比尔盖茨称ChatGPT的出现有着重大历史意义,不亚于互联网和个人电脑的问世。360创始人周鸿祎认为未来各行各业如果不能搭上这班车…

Linux服务器部署XXL-JOB

参考文档及下载地址:分布式任务调度平台XXL-JOB 1 从git拉取XXL-JOB代码 我们的大部分变动,是发生在xxl-job-admin,最终将这个模块打包成jar包部署在linux服务器上。 2 执行数据库脚本 doc\db\tables_xxl_job.sql 3 修改pom文件&#xff0c…

【Linux】信号的保存和捕捉

文章目录 一、信号的保存——信号的三个表——block表,pending表,handler表sigset_t信号集操作函数——用户层sigprocmask和sigpending——内核层 二、信号的捕捉重谈进程地址空间(第三次)用户态和内核态sigaction可重入函数volat…

语义分割 LR-ASPP网络学习笔记 (附代码)

论文地址:https://arxiv.org/abs/1905.02244 代码地址:https://github.com/WZMIAOMIAO/deep-learning-for-image-processing/tree/master/pytorch_segmentation/lraspp 1.是什么? LR-ASPP是一个轻量级语义分割网络,它是在Mobil…

如何做好软文推广的选题?媒介盒子分享常见套路

选题是软文推广的重中之重,主题选得好,不仅能够戳到用户,提高转化率,还能让各位运营的写作效率大幅度提升,今天媒介盒子就来和大家分享软文选题的常见套路,助力各位品牌进行选题。 一、 根据产品选题 软文…

安卓开发APP应用程序和苹果iOS开发APP应用程序有什么区别?

随着智能手机和平板电脑在全球的普及,APP移动应用已成为日常生活中不可或缺的组成部分。从社交网络到电子商务平台,从个人理财到游戏娱乐,APP几乎渗透了人们所有的活动领域。在开发APP时,开发者通常要面对两大主流平台&#xff1a…

鸿蒙4.0开发笔记之ArkTS语法基础的UI描述、基础组件的使用与如何查看组件是否有参数(八)

文章目录 一、声明式UI描述1、无/有参数组件2、如何查看组件是否有参数 二、Image组件的使用三、组件的属性设置四、补充1、使用组件的成员函数配置组件的事件方法2、配置子组件3、多组件嵌套 一、声明式UI描述 在HarmonyOS的ArkTS语法中,万物皆组件。ArkTS以声明方…

Spring-Boot---配置文件

文章目录 配置文件的作用配置文件的格式PropertiesProperties基本语法读取Properties配置文件 ymlyml基本语法读取yml配置文件 Properties VS Yml 配置文件的作用 整个项目中所有重要的数据都是在配置文件中配置的,具有非常重要的作用。比如: 数据库的…