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

ADC单通道采集实验

设置的步骤如下;

#include "adc.h"ADC_HandleTypeDef adc_handle ={0};
void adc_init(void)
{adc_handle.Instance= ADC1;                                               //ADC的基地址adc_handle.Init.DataAlign = ADC_DATAALIGN_RIGHT;                         //对齐方式adc_handle.Init.ScanConvMode =ADC_SCAN_DISABLE;                          //扫描方式 不扫描adc_handle.Init.ContinuousConvMode =DISABLE;                             //转换的方式    不连续转换adc_handle.Init.NbrOfConversion = 1;                                     //转换的个数    因为就一个通道所以就一个转换adc_handle.Init.DiscontinuousConvMode =DISABLE;                          //转换的模式 不用adc_handle.Init.NbrOfDiscConversion =0; adc_handle.Init.ExternalTrigConv =ADC_SOFTWARE_START;                    //触发的模式   软件触发HAL_ADC_Init(&adc_handle);HAL_ADCEx_Calibration_Start(&adc_handle);}
void HAL_ADC_MspInit(ADC_HandleTypeDef* hadc)
{if(hadc->Instance ==ADC1){RCC_PeriphCLKInitTypeDef adc_clk_init ={0}; GPIO_InitTypeDef gpio_init_struct ={0};__HAL_RCC_ADC1_CLK_ENABLE();__HAL_RCC_GPIOA_CLK_ENABLE();gpio_init_struct.Pin= GPIO_PIN_1;gpio_init_struct.Mode=GPIO_MODE_ANALOG;HAL_GPIO_Init(GPIOA,&gpio_init_struct);adc_clk_init.PeriphClockSelection =RCC_PERIPHCLK_ADC;                     //外设的时钟选择adc_clk_init.AdcClockSelection = RCC_ADCPCLK2_DIV6;                       //选择预分频器是几分频的HAL_RCCEx_PeriphCLKConfig(&adc_clk_init);                                              //配置分频器}}void adc_channel_config(ADC_HandleTypeDef* hadc, uint32_t ch,uint32_t rank, uint32_t stime)  //第一个数据为哪一个ADC  第二个数据为哪一个通道,第三个数据为放在什么位置,第四个数据使采集时间
{ADC_ChannelConfTypeDef adc_ch_config ={0};adc_ch_config.Channel =ch;adc_ch_config.Rank= rank;adc_ch_config.SamplingTime = stime;HAL_ADC_ConfigChannel(hadc,&adc_ch_config);}uint32_t adc_get_result(uint32_t ch)
{adc_channel_config(&adc_handle,ch,ADC_REGULAR_RANK_1,ADC_SAMPLETIME_239CYCLES_5);  HAL_ADC_Start(&adc_handle);HAL_ADC_PollForConversion(&adc_handle,10);          //第二个数据为超时时间return (uint16_t)HAL_ADC_GetValue(&adc_handle);}

相关文章:

  • 3:QT联合HALCON编程—海康相机SDK二次程序开发
  • Android12源码编译及刷机
  • 详解Adobe Photoshop 2024 下载与安装教程
  • 论文笔记(八十)π0.5: a Vision-Language-Action Model with Open-World Generalization
  • Python并行计算:2.Python多线程编程:threading模块详解与守护线程实战
  • Spring Boot 3.4 实战指南:从性能优化到云原生增强
  • Spring Boot安装指南
  • Java后端开发——分层解耦详解
  • [mysql]数据类型精讲下
  • 用go从零构建写一个RPC(仿gRPC,tRPC)--- 版本1
  • Synology HDD db - 群晖硬盘兼容性数据库工具
  • Linux0.11内存管理:相关代码
  • DeepSeek系列(9):团队协作最佳实践
  • 数字喜好判断之谜
  • 财务管理域——绩效管理系统设计
  • 代理专栏总结
  • 【微知】/proc中如何查看Linux内核是否允许加载内核模块?(/proc/sys/kernel/modules_disabled)
  • SpringBoot UserAgentUtils获取用户浏览器 操作系统设备统计 信息统计 日志入库
  • Arduino+ESP01S烧录
  • 【数据结构】优先级队列
  • ​关键词看中国经济“一季报”:韧,长期向好看底气
  • 一回合摘下“狮心”,张名扬霸气回应观众:再嘘一个我听听
  • 葛兰西的三位一体:重提并复兴欧洲共产主义的平民圣人
  • 申花四连胜领跑中超,下轮榜首大战对蓉城将是硬仗考验
  • 日均新开三家“首店”,上海的“首发经济”密码是什么?
  • 习近平在中共中央政治局第二十次集体学习时强调,坚持自立自强,突出应用导向,推动人工智能健康有序发展