国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

基于CH32V103系列MCU的ADC采樣設計

CHANBAEK ? 來源:CSDN-借過風景 ? 作者:CSDN-借過風景 ? 2023-01-31 14:21 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

簡介

CH32V103系列是以青稞V3A處理器為核心的32位通用RISC-V MCU,該處理器是基于RISC-V開源指令集設計。片上集成了時鐘安全機制、多級電源管理、通用DMA控制器。此系列具有1路USB2.0主機/設備接口、多通道12位ADC轉換模塊、多通道TouchKey、多組定時器、多路IIC/USART/SPI接口等豐富的外設資源。

本章教程使用CH32V103開發板的ADC1通道1對開發板的VCC引腳和GND引腳進行采樣,并將采樣結果通過串口調試助手打印顯示。

1、ADC及相關函數介紹

CH32V103的ADC模塊包含一個 12 位的逐次逼近型的模擬數字轉換器,最高14MHz的輸入時鐘。支持16個外部通道和2個內部信號源采樣源。可完成通道的單次轉換、連續轉換,通道間自動掃描模式、間斷模式、外部觸發模式等功能。可以通過模擬看門狗功能監測通道電壓是否在閾值范圍內。

關于ADC具體信息,可參考CH32V103應用手冊。ADC標準庫函數具體內容如下:

pYYBAGPYsp-AeiZbAAJBYCGU66k200.png

1.1、void ADC_DeInit(ADC_TypeDef* ADCx)

功 能:將ADCx外圍寄存器初始化為其默認重置值。

輸 入:ADCx:其中x可以是1以選擇ADC外圍設備。

1.2、void ADC_Init(ADC_TypeDef* ADCx, ADC_InitTypeDef* ADC_InitStruct)

功 能:根據ADC_InitStruct中指定的參數初始化ADCx外圍設備。

輸 入:ADCx:其中x可以是1以選擇ADC外圍設備;ADC_InitStruct:指向包含指定ADC外圍設備的配置信息的ADC_InitTypeDef結構的指針。

1.3、void ADC_StructInit(ADC_InitTypeDef* ADC_InitStruct)

功 能:用默認值填充每個ADC_InitStruct成員。

輸 入:ADC_InitStruct:指向包含指定ADC外圍設備的配置信息的ADC_InitTypeDef結構的指針。

1.4、無效ADC_Cmd(ADC_TypeDef* ADCx,函數狀態新狀態)

功 能:啟用或禁用指定的ADC外圍設備。

輸 入:ADCx:其中x可以是1以選擇ADC外圍設備; NewState:啟用或禁用。

1.5、無效ADC_DMACmd(ADC_TypeDef* ADCx,功能狀態新狀態)

功 能:啟用或禁用指定的ADC DMA請求。

輸 入:ADCx:其中x可以是1以選擇ADC外圍設備; NewState:啟用或禁用。

1.6、無效ADC_ITConfig(ADC_TypeDef* ADCx, uint16_t ADC_IT, FunctionalState NewState)

功 能:啟用或禁用指定的ADC中斷。

輸 入:ADCx:其中x可以是1以選擇ADC外圍設備; ADC_IT:指定要啟用或禁用的ADC中斷源。 NewState:啟用或禁用。

1.7、無效ADC_ResetCalibration(ADC_TypeDef* ADCx)

功 能:重置所選ADC校準寄存器。

輸 入:ADCx:其中x可以是1以選擇ADC外圍設備。

1.8、標志狀態ADC_GetResetCalibrationStatus(ADC_TypeDef* ADCx)

功 能:獲取所選ADC重置校準寄存器狀態。

輸 入:ADCx:其中x可以是1以選擇ADC外圍設備。

1.9、無效ADC_StartCalibration(ADC_TypeDef* ADCx)

功 能:啟動所選ADC校準過程。

輸 入:ADCx:其中x可以是1以選擇ADC外圍設備。

1.10、標志狀態ADC_GetCalibrationStatus(ADC_TypeDef* ADCx)

功 能:獲取所選ADC校準狀態。

輸 入:ADCx:其中x可以是1以選擇ADC外圍設備。

1.11、無效ADC_SoftwareStartConvCmd(ADC_TypeDef* ADCx,函數狀態新狀態)

功 能:啟用或禁用所選ADC軟件啟動轉換。

輸 入:ADCx:其中x可以是1以選擇ADC外圍設備; NewState:啟用或禁用。

1.12、FlagStatus ADC_GetSoftwareStartConvStatus(ADC_TypeDef* ADCx)

功 能:獲取所選ADC軟件開始轉換狀態。

輸 入:ADCx:其中x可以是1以選擇ADC外圍設備。

1.13、void ADC_DiscModeChannelCountConfig(ADC_TypeDef* ADCx, uint8_t Number)

功 能:為所選ADC常規組通道配置不連續模式。

輸 入:ADCx:其中x可以是1以選擇ADC外圍設備;Number:指定不連續模式常規通道計數值。

1.14、void ADC_DiscModeCmd(ADC_TypeDef* ADCx, FunctionalState NewState)

功 能:為指定的ADC啟用或禁用常規組通道上的不連續模式。

輸 入:ADCx:其中x可以是1以選擇ADC外圍設備;NewState:啟用或禁用。

1.15、void ADC_RegularChannelConfig(ADC_TypeDef* ADCx, uint8_t ADC_Channel, uint8_t Rank, uint8_t ADC_SampleTime)

功 能:為所選ADC常規通道配置其在序列器中的相應列組及其采樣時間。

輸 入:ADCx:其中x可以是1以選擇ADC外圍設備;ADC_Channel:要配置的ADC信道;Rank:常規組序列器中的等級;ADC_SampleTime:要為所選通道設置的采樣時間值。

1.16、void ADC_ExternalTrigConvCmd(ADC_TypeDef* ADCx, FunctionalState NewState)

功 能:通過外部觸發器啟用或禁用ADCx轉換。

輸 入:ADCx:其中x可以是1以選擇ADC外圍設備;NewState:啟用或禁用。

1.17、uint16_t ADC_GetConversionValue(ADC_TypeDef* ADCx)

功 能:返回常規通道的最后一個ADCx轉換結果數據。

輸 入:ADCx:其中x可以是1以選擇ADC外圍設備。

1.18、uint32_t ADC_GetDualModeConversionValue(void)

功 能:以雙模式返回最后一個ADC1和ADC2轉換結果數據。

輸 入:無。

1.19、void ADC_AutoInjectedConvCmd(ADC_TypeDef* ADCx, FunctionalState NewState)

功 能:啟用或禁用所選ADC在常規轉換后自動注入組轉換。

輸 入:ADCx:其中x可以是1以選擇ADC外圍設備;NewState:啟用或禁用。

1.20、void ADC_InjectedDiscModeCmd(ADC_TypeDef* ADCx, FunctionalState NewState)

功 能:為指定的ADC啟用或禁用注入組通道的不連續模式。

輸 入:ADCx:其中x可以是1以選擇ADC外圍設備;NewState:啟用或禁用。

1.21、void ADC_ExternalTrigInjectedConvConfig(ADC_TypeDef* ADCx, uint32_t ADC_ExternalTrigInjecConv)

功 能:為注入通道轉換配置ADCx外部觸發器。

輸 入:ADCx:其中x可以是1以選擇ADC外圍設備;ADC_ExternalTrigInjecConv:指定開始注入轉換的ADC觸發器。

1.22、void ADC_ExternalTrigInjectedConvCmd(ADC_TypeDef* ADCx, FunctionalState NewState)

功 能:通過外部觸發器啟用或禁用ADCx注入通道轉換。

輸 入:ADCx:其中x可以是1以選擇ADC外圍設備;NewState:啟用或禁用。

1.23、void ADC_SoftwareStartInjectedConvCmd(ADC_TypeDef* ADCx, FunctionalState NewState)

功 能:啟用或禁用注入通道轉換的所選ADC啟動。

輸 入:ADCx:其中x可以是1以選擇ADC外圍設備;NewState:啟用或禁用。

1.24、FlagStatus ADC_GetSoftwareStartInjectedConvCmdStatus(ADC_TypeDef* ADCx)

功 能:獲取所選ADC軟件開始注入轉換狀態。

輸 入:ADCx:其中x可以是1以選擇ADC外圍設備。

1.25、void ADC_InjectedChannelConfig(ADC_TypeDef* ADCx, uint8_t ADC_Channel, uint8_t Rank, uint8_t ADC_SampleTime)

功 能:為所選ADC注入通道配置其在序列器中的相應秩及其采樣時間。

輸 入:ADCx:其中x可以是1以選擇ADC外圍設備;ADC_Channel:要配置的ADC信道;Rank:注入組序列器中的秩;ADC_SampleTime:要為所選通道設置的采樣時間值。

1.26、void ADC_InjectedSequencerLengthConfig(ADC_TypeDef* ADCx, uint8_t Length)

功 能:配置注入通道的序列器長度。

輸 入:ADCx:其中x可以是1以選擇ADC外圍設備;Length:序列器的長度。

1.27、void ADC_SetInjectedOffset(ADC_TypeDef* ADCx, uint8_t ADC_InjectedChannel, uint16_t Offset)

功 能:設置注入通道轉換值偏移。

輸 入:ADCx:其中x可以是1以選擇ADC外圍設備;Offset:所選ADC注入通道的偏移值。

1.28、uint16_t ADC_GetInjectedConversionValue(ADC_TypeDef* ADCx, uint8_t ADC_InjectedChannel)

功 能:ADC返回注入通道的結果。

輸 入:ADCx:其中x可以是1以選擇ADC外圍設備;ADC_InjectedChannel:轉換后的ADC注入通道。

1.29、void ADC_AnalogWatchdogCmd(ADC_TypeDef* ADCx, uint32_t ADC_AnalogWatchdog)

功 能:啟用或禁用單個/所有常規或注入通道上的模擬看門狗。

輸 入:ADCx:其中x可以是1以選擇ADC外圍設備;ADC_AnalogWatchdog:ADC模擬看門狗配置。

1.30、void ADC_AnalogWatchdogThresholdsConfig(ADC_TypeDef* ADCx, uint16_t HighThreshold,uint16_t LowThreshold)

功 能:配置模擬看門狗的高閾值和低閾值。

輸 入:ADCx:其中x可以是1以選擇ADC外圍設備;HighThreshold:ADC模擬看門狗高閾值;LowThreshold:ADC模擬看門狗低閾值。

1.31、void ADC_AnalogWatchdogSingleChannelConfig(ADC_TypeDef* ADCx, uint8_t ADC_Channel)

功 能:配置模擬看門狗保護的單通道。

輸 入:ADCx:其中x可以是1以選擇ADC外圍設備;ADC_Channel:為模擬看門狗配置的ADC信道。

1.32、void ADC_TempSensorVrefintCmd(FunctionalState NewState)

功 能:啟用或禁用溫度傳感器和Vrefint通道。

輸 入:NewState:啟用或禁用。

1.33、FlagStatus ADC_GetFlagStatus(ADC_TypeDef* ADCx, uint8_t ADC_FLAG)

功 能:檢查是否設置了指定的ADC標志。

輸 入:ADCx:其中x可以是1以選擇ADC外圍設備;ADC_FLAG:指定要檢查的標志。

1.34、void ADC_ClearFlag(ADC_TypeDef* ADCx, uint8_t ADC_FLAG)

功 能:清除ADCx的掛起標志。

輸 入:ADCx:其中x可以是1以選擇ADC外圍設備;ADC_FLAG:指定要清除的標志。

1.35、ITStatus ADC_GetITStatus(ADC_TypeDef* ADCx, uint16_t ADC_IT)

功 能:檢查指定的ADC中斷是否已發生。

輸 入:ADCx:其中x可以是1以選擇ADC外圍設備;ADC_IT:指定要檢查的ADC中斷源。

1.36、void ADC_ClearITPendingBit(ADC_TypeDef* ADCx, uint16_t ADC_IT)

功 能:清除ADCx的中斷掛起位。

輸 入:ADCx:其中x可以是1以選擇ADC外圍設備;ADC_IT:指定要清除的ADC中斷掛起位。

1.37、s32 TempSensor_Volt_To_Temper(s32 Value)

功 能:內部溫度傳感器電壓與溫度之間的關系。

輸 入:Value:電壓值。

以上函數均為庫函數內部函數,在進行使用時只需在程序中進行調用即可。

2、硬件設計

本章教程通過ADC1通道1讀取開發板VCC引腳和GND引腳ADC值,并通過串口調試助手打印顯示出來。

3、軟件設計

CH32V103C8T6的ADC_IN1在PC1和PA1引腳,本文使用PA1,通過PA1讀取開發板VCC引腳ADC值和GND引腳ADC值,具體程序如下:

adc.h文件

poYBAGPYsp-AS7GDAAAiYDJgDuY260.png

adc.c文件

poYBAGPYsp-AIZ8DAAGU2QUTIy0169.png

main.c文件

pYYBAGPYsp-ALylAAABPmwu5f7U645.png

main.c文件主要進行相關函數的初始化以及打印輸出通過ADC_IN1讀取到的ADC值。

4、下載驗證

將編譯好的程序下載到開發板并復位,用杜邦線將PA1引腳分別與VCC引腳和GND引腳連接,讀取ADC值。注意,此處VCC引腳連接3.3V。串口打印情況具體如下:

當連接GND引腳時:

pYYBAGPYsp-AOof4AACQezQnTZ0394.png

當連接VCC(3.3V)引腳時:

poYBAGPYsp-ARd7mAACYgCxi8sw513.png

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • mcu
    mcu
    +關注

    關注

    147

    文章

    18925

    瀏覽量

    398157
  • adc
    adc
    +關注

    關注

    100

    文章

    7511

    瀏覽量

    555970
  • 采樣
    +關注

    關注

    1

    文章

    128

    瀏覽量

    26477
  • RISC-V
    +關注

    關注

    48

    文章

    2886

    瀏覽量

    53003
  • CH32V103
    +關注

    關注

    1

    文章

    13

    瀏覽量

    1427
  • ch32
    +關注

    關注

    0

    文章

    74

    瀏覽量

    1253
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    CH32V203系列RISC-V增強低功耗MCU單片機

    在當今智能設備與物聯網應用迅速發展的背景下,對微控制器的性能、功耗與外設集成提出了更高要求。CH32V203系列作為一款基于32位RISC-V內核設計的工業級增強型低功耗通用MCU單片
    的頭像 發表于 01-30 16:16 ?258次閱讀
    <b class='flag-5'>CH32V</b>203<b class='flag-5'>系列</b>RISC-<b class='flag-5'>V</b>增強低功耗<b class='flag-5'>MCU</b>單片機

    CH32V系列MCU單片機網絡小票打印機方案應用

    在智能零售與物聯網設備快速普及的今天,傳統小票打印機在連接靈活性、多終端協同及響應速度上面臨全新挑戰。為此,我們推出基于CH32V系列MCU單片機的高性能網絡小票打印機方案,以強大的核心處理能力與豐富的集成外設,為商用打印領域帶
    的頭像 發表于 01-21 16:31 ?694次閱讀
    <b class='flag-5'>CH32V</b><b class='flag-5'>系列</b><b class='flag-5'>MCU</b>單片機網絡小票打印機方案應用

    智能電表方案MCU單片機CH32V307系列

    智能電表作為現代電網數據采集的關鍵設備,承擔著電能計量、用電監測與遠程管理的重要職能。其核心在于穩定、高效且功能豐富的控制單元。針對這一需求,英尚代理沁恒推出搭載MCU單片機CH32V307系列的智能電表解決方案,憑借其出色的互
    的頭像 發表于 01-12 17:12 ?648次閱讀
    智能電表方案<b class='flag-5'>MCU</b>單片機<b class='flag-5'>CH32V</b>307<b class='flag-5'>系列</b>

    沁恒高性價比MCU單片機血氧儀應用方案

    推出的基于RISC-V內核的CH32V103系列MCU單片機,以其高性價比與豐富的外設資源,成為該類應用的理想選擇。
    的頭像 發表于 01-12 16:37 ?513次閱讀
    沁恒高性價比<b class='flag-5'>MCU</b>單片機血氧儀應用方案

    MCU微控制器CH32L103高速電吹風方案

    MCU微控制器是整個電吹風控制系統的指揮中心。英尚微推出的高速電吹風方案,以MCU微控制器CH32L103為主控微控制器,幫助高速電吹風實現高效率、低噪音、高智能和全保護的性能。CH32L10
    的頭像 發表于 11-27 16:20 ?431次閱讀

    CW32的ADC視線,DMA擴展采樣思路

    CH1 用于將 ADC 的轉換結果傳輸到 RAM 中,如將采樣 6 個 ADC 通道,因此傳輸次數 CNT為 6,源地址固定為 ADC
    發表于 11-13 08:09

    ADC12DJ4000RF RF采樣12位ADC技術手冊

    ADC12DJ4000RF器件是一款射頻采樣千兆采樣模數轉換器(ADC),可直接對直流至10 GHz以上的輸入頻率進行采樣
    的頭像 發表于 10-31 13:59 ?620次閱讀
    <b class='flag-5'>ADC</b>12DJ4000RF RF<b class='flag-5'>采樣</b>12位<b class='flag-5'>ADC</b>技術手冊

    ADC08DJ5200RF RF采樣8位ADC技術手冊

    ADC08DJ5200RF器件是一款射頻采樣千兆采樣模數轉換器(ADC),可直接對從直流到10GHz以上的輸入頻率進行采樣。該
    的頭像 發表于 10-31 11:39 ?567次閱讀
    <b class='flag-5'>ADC</b>08DJ5200RF  RF<b class='flag-5'>采樣</b>8位<b class='flag-5'>ADC</b>技術手冊

    ADC3648/ADC3649 ADC 產品文檔總結

    供 -158.5dBFS/Hz (500MSPS) 的噪聲頻譜密度。 高能效ADC架構在500MSPS時功耗為300mW/ch,并以較低的采樣率(250MSPS時為250mW/ch
    的頭像 發表于 10-23 10:29 ?596次閱讀
    <b class='flag-5'>ADC</b>3648/<b class='flag-5'>ADC</b>3649 <b class='flag-5'>ADC</b> 產品文檔總結

    沁恒CH592F開發中遇到的ADC采樣不準及解決方案

    沒有找到,本來想偷懶,不想看數據手冊,現在沒有辦法了,只能拿出手冊仔細查看了,不看不知道,一看嚇一跳,這個ch592f與我們平時用的MCUadc都不同,下面我貼出來,免得大家以后再繼續踩坑。 下面再編譯下載,終于在串口打印出正
    發表于 09-16 15:07

    定時器觸發3路ADC同時采樣指定次數

    示例目的 控制 3 路 ADC 相等時間間隔,采樣 N 次。 注:本應用筆記對應的代碼是基于雅特力提供的V2.x.x 板級支持包(BSP)而開發,對于其他版本BSP,需要注意使用上的區別。 支持
    發表于 09-10 16:06

    高性能射頻采樣ADCADC32RF5x系列技術解析

    Texas Instruments ADC32RF5x射頻采樣數據轉換器是單核14位、2.6 GSPS至3 GSPS、雙通道模數轉換器 (ADC),支持輸入頻率高達3GHz的射頻采樣
    的頭像 發表于 08-15 11:45 ?1270次閱讀
    高性能射頻<b class='flag-5'>采樣</b><b class='flag-5'>ADC</b>:<b class='flag-5'>ADC</b>32RF5x<b class='flag-5'>系列</b>技術解析

    Cortex-M MCU應用程序移植到RV32 MCU中的問題解析

    發布RV32 MCU GD32VF103;沁恒微電子發布CH32VCH32X、CH32L系列R
    的頭像 發表于 06-27 14:31 ?1982次閱讀
    Cortex-M <b class='flag-5'>MCU</b>應用程序移植到RV32 <b class='flag-5'>MCU</b>中的問題解析

    酒店智能化都用到哪些芯片之高速互聯型MCU CH32V317

    PHY) 4.SDI0、DVP數字視頻接口 5.雙12位ADC,16路觸摸按鍵,雙12位DAC 憑借這些優勢,CH32V317芯片已在多個行業實現規模應用,成為智能設備開發的首選MCU之一。
    發表于 05-30 17:02

    CH32V303/305/307/317工業級通用微控制器數據手冊

    CH32V 系列是基于青稞 RISC-V 內核設計的工業級通用微控制器,包括 CH32V305 連接型 MCU
    的頭像 發表于 05-15 17:37 ?2954次閱讀
    <b class='flag-5'>CH32V</b>303/305/307/317工業級通用微控制器數據手冊