stm32使用單通道規則組ADC

Driver_ADC.c

如果需要關閉adc轉換,只需要設置CNT,將其置為0,后面再轉換一次就停止了。

#include "Driver_ADC.h"void Driver_ADC1_Init(void)
{/* 1. 時鐘配置 *//* 1.1 adc時鐘 */RCC->APB2ENR |= RCC_APB2ENR_ADC1EN;RCC->CFGR |= RCC_CFGR_ADCPRE_1;RCC->CFGR &= ~RCC_CFGR_ADCPRE_0;/* 1.2 gpio的時鐘 */RCC->APB2ENR |= RCC_APB2ENR_IOPCEN;/* 2. gpio工作模式: PC0 模擬輸入  CNF=00 MODE=00 */GPIOC->CRL &= ~(GPIO_CRL_CNF0 | GPIO_CRL_MODE0);/* 2. ADC相關配置 *//* 2.1 禁用掃描模式. 只有一個通道不用掃描 */ADC1->CR1 &= ~ADC_CR1_SCAN;/* 2.2 啟用連續轉換模式 CR2=CONT 1*/ADC1->CR2 |= ADC_CR2_CONT;/* 2.3 數據對齊方式: 右對齊 左對齊 */ADC1->CR2 &= ~ADC_CR2_ALIGN;/* 2.4 設置采樣時間 ADC_SMPR1  010=13.5周期*/ADC1->SMPR1 &= ~(ADC_SMPR1_SMP10_2 | ADC_SMPR1_SMP10_0);ADC1->SMPR1 |= ADC_SMPR1_SMP10_1;/* 2.6 通道組的配置 *//* 2.6.1 配置幾個通道需要轉換 */ADC1->SQR1 &= ~ADC_SQR1_L;/* 2.6.1 把通道號配置到組里面.  */ADC1->SQR3 &= ~ADC_SQR3_SQ1; /* 先把5位清零 */ADC1->SQR3 |= 10 << 0;       /* 設置最后5位 *//* 2.7 選擇軟件觸發 */ADC1->CR2 &= ~ADC_CR2_EXTTRIG; /* 禁用規則組的外部轉換 */ADC1->CR2 |= ADC_CR2_EXTSEL;  /* 選擇使用軟件觸發ADC */
}void Driver_ADC1_StartConvert(void)
{/* 1. 上電: 把ADC從休眠模式喚醒 */ADC1->CR2 |= ADC_CR2_ADON;/* 2. 執行校準 */ADC1->CR2 |= ADC_CR2_CAL;while (ADC1->CR2 & ADC_CR2_CAL);/* 3. ADON = 1, 開始轉換 0>1 從休眠模式喚醒 1->1 開始 */ADC1->CR2 |= ADC_CR2_ADON;/* 4. 使用軟件開始轉換規則通道 */;ADC1->CR2 |= ADC_CR2_SWSTART;/* 5. 等待首次轉換完成 */while((ADC1->SR & ADC_SR_EOC) == 0);}double Driver_ADC1_ReadV(void)
{// 12位的ADC 范圍 [0, 4095]return ADC1->DR * 3.3 / 4095;
}

Driver_ADC.h

#ifndef __DRIVER_ADC_H
#define __DRIVER_ADC_H#include "stm32f10x.h"void Driver_ADC1_Init(void);void Driver_ADC1_StartConvert(void);double Driver_ADC1_ReadV(void);
double Driver_ADC1_ReadV(void);#endif

main.c

#include "Driver_USART.h"#include "Delay.h"
#include "Driver_ADC.h"int main()
{Driver_USART1_Init();printf("ADC單通道\r\n");Driver_ADC1_Init();Driver_ADC1_StartConvert();while (1){double v = Driver_ADC1_ReadV();printf("v = %.2f\r\n", v);Delay_s(1);}
}

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/43289.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/43289.shtml
英文地址,請注明出處:http://en.pswp.cn/web/43289.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

bev 之 fastBEV

前面我們提到bev 之 LSS, 知道視覺的BEV方案的主要痛點在于: 1、depth 的預測 2、圖像特征到BEV特征之間的視圖變換消耗大量計算 LSS 為什么需要D維深度 占據大量消耗的原因是LSS 對每個圖像特征點引入深度D&#xff0c;即假設每個像素上存在可能的D維深度。也就是假設不同像…

ubuntu18虛擬機克隆后不能上網和磁盤損壞問題

小學期直接給學弟學妹們自己配好的克隆的虛擬機&#xff0c;結果出現了這兩種問題&#xff0c;參考了網上好多資料&#xff0c;太多了忘了存了&#xff0c;花了好久的時間才解決&#xff0c;這里記錄一下。 磁盤損壞問題&#xff1a; 網絡無法連同問題&#xff0c;ip addr發現…

特征融合篇 | YOLOv10改進之在Neck網絡中添加加權雙向特征金字塔BiFPN

前言&#xff1a;Hello大家好&#xff0c;我是小哥談。在計算機視覺任務中&#xff0c;特征金字塔網絡&#xff08;FPN&#xff09;是一種常用的方法&#xff0c;它通過構建不同尺度的特征圖來捕獲不同尺度的目標。然而&#xff0c;傳統的FPN存在一些缺點&#xff0c;如特征融合…

解鎖Postman的API參數化:動態請求的秘訣

&#x1f511; 解鎖Postman的API參數化&#xff1a;動態請求的秘訣 在API測試的世界里&#xff0c;參數化是構建靈活、可重用請求的關鍵。Postman作為API開發和測試的領軍工具&#xff0c;提供了強大的參數化功能&#xff0c;允許用戶創建動態、個性化的API請求。本文將深入探…

計算機網絡--tcpdump和iptable設置、內核參數優化策略

tcpdump工具 tcpdump命令&#xff1a; 選項字段&#xff1a; 過濾表達式&#xff1a; 實用命令&#xff1a; TCP三次握手抓包命令&#xff1a; #客戶端執行tcpdump 抓取數據包 tcpdump -i etho tcp and host 192.168.12.36 and port 80 -W timeout.pcapnetstat命令 netst…

7.10飛書一面面經

問題描述 Redis為什么快&#xff1f; 這個問題我遇到過&#xff0c;但是沒有好好總結&#xff0c;導致答得很亂。 答&#xff1a;Redis基于內存操作&#xff1a; 傳統的磁盤文件操作相比減少了IO&#xff0c;提高了操作的速度。 Redis高效的數據結構&#xff1a;Redis專門設計…

java算法day11

二叉樹的遞歸遍歷二叉樹的非遞歸遍歷寫法層序遍歷 遞歸怎么寫&#xff1f; 按照三要素可以保證寫出正確的遞歸算法&#xff1a; 1.確定遞歸函數的參數和返回值&#xff1a; 確定哪些參數是遞歸的過程中需要處理的&#xff0c;那么就在遞歸函數里加上這個參數&#xff0c; 并且…

第二證券:銷量暴跌95%,這一巨頭市值蒸發超3000億元!

在多重要素刺激下&#xff0c;PCB工作站上風口。 波音銷量墮入停滯 6月僅售出3架客機 據央視財經&#xff0c;在一系列丑聞的影響下&#xff0c;波音公司本年出售遭到明顯沖擊。當地時間9日&#xff0c;波音發布的數據閃現&#xff0c;在以前一個月&#xff0c;該公司僅賣出…

關于Java面向對象的一些問題(2024.7.10)

package question20240710;public class Question {/*1. 什么叫做多態&#xff0c;條件是什么&#xff1f;2. 使用多態特性&#xff0c;帶來了什么樣的好處&#xff1f;3. 使用多態特性&#xff0c;注意什么樣的弊端&#xff1f;4. 關于多態的弊端我們如何解決&#xff1f;5. 在…

excel有條件提取單元格特定文本(篩選純文字的單元格或含有數字的單元格、單元格提取不同的文本長度)

實際工作背景 需要對導出的銀行流水中的數十個村以及對應的村小組進行分組統計&#xff0c;但是初始的表格中村和小組是混在一起的&#xff0c;如下圖所示&#xff1a; 目的&#xff1a;將大樹村和大樹村小組名稱分別篩選出來 1.觀察發現&#xff0c;大樹村小組的單元格第4…

代碼隨想錄算法訓練營第四十九天| 647. 回文子串、 516.最長回文子序列

647. 回文子串 題目鏈接&#xff1a;647. 回文子串 文檔講解&#xff1a;代碼隨想錄 狀態&#xff1a;不會 思路&#xff1a; dp[i][j] 表示字符串 s 從索引 i 到索引 j 這一段子串是否為回文子串。 當s[i]與s[j]不相等&#xff0c;那沒啥好說的了&#xff0c;dp[i][j]一定是fa…

構建與操作共享棧

歸納編程學習的感悟, 記錄奮斗路上的點滴, 希望能幫到一樣刻苦的你! 如有不足歡迎指正! 共同學習交流! ??歡迎各位→點贊 ??+ 收藏? + 留言???既然選擇了遠方,當不負青春,砥礪前行! 共享棧是一種優化的棧實現方式,它允許兩個或多個棧共享同一段連續的內存空間…

Tkinter 部件使用教程

tkinter學習教程 C語言中文網Tkinter教程 菜鳥編程-Python GUI編程(Tkinter) tkinter基本組件 messagebox 【tkinter標準對話框】messagebox&#xff1a;信息傳遞&#xff0c;消息對話框&#xff01; bind bind事件信息 listbox Tkinter 組件詳解之Listbox radiobutton Tkinter…

數據結構——Trie

題目&#xff1a; 維護一個字符串集合&#xff0c;支持兩種操作&#xff1a; I x 向集合中插入一個字符串 x&#x1d465;&#xff1b;Q x 詢問一個字符串在集合中出現了多少次。 共有 N&#x1d441; 個操作&#xff0c;所有輸入的字符串總長度不超過 10^5&#xff0c;字符串僅…

【分布式系統】Ceph對象存儲系統之RGW接口

目錄 一.對象存儲概述 二.創建RGW接口 1.在管理節點創建一個 RGW 守護進程 2.創建成功后默認情況下會自動創建一系列用于 RGW 的存儲池 3.默認情況下 RGW 監聽 7480 號端口 4.開啟 httphttps &#xff0c;更改監聽端口 5.在 rgw 節點上查看端口 6.在客戶端訪問驗證 7.…

Mybatis study

一、Mybatis Plus mybatis-plus指定實體類字段不查詢 加標簽 TableField(exist false) Spring Data Jpa學習 干我們這行&#xff0c;啥時候懈怠&#xff0c;就意味著長進的停止&#xff0c;長進的停止就意味著被淘汰&#xff0c;只能往前沖&#xff0c;直到鳳凰涅槃的一天&am…

【onnx】onnxruntime-gpu無法使用問題

every blog every motto: You can do more than you think. https://blog.csdn.net/weixin_39190382?typeblog 0. 前言 onnxruntime-gpu無法使用 1. 正文 CUDA版本&#xff1a;12.1 nvcc -VCUDNN的版本 cat /usr/include/cudnn_version.h |grep CUDNN_MAJOR -A 2說明: 可…

C#中的Dictionary

Dictionary<TKey, TValue> 是一個泛型集合&#xff0c;它存儲鍵值對&#xff08;key-value pairs&#xff09;&#xff0c;其中每個鍵&#xff08;key&#xff09;都是唯一的。這個集合類提供了快速的數據插入和檢索功能&#xff0c;因為它是基于哈希表實現的。 注意 ke…

拉曼操作維護使用手冊(中英文對照)

1 INTRODUCTION 介紹 This document contains information needed to install and operate the Laser Gas Analyzer (LGA). The information contained herein is believed to be accurate and reliable, however, inaccuracies and omissions of pertinent information are po…

Vue 3 組件通信全解:從基礎到高級技巧

引言 Vue 3 引入了 Composition API&#xff0c;這為組件通信帶來了新的靈活性和強大的功能。 組件通信基礎 組件的定義和作用 在前端開發中&#xff0c;組件可以被看作是構建用戶界面的獨立單元。它封裝了特定的功能和樣式&#xff0c;可以被重復使用&#xff0c;并且可以…