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

一个企业网站的建设流程苏州行业网站建设

一个企业网站的建设流程,苏州行业网站建设,做听书网站怎么做,网站对公司的重要性CubeMX配置ADC前言一、什么是ADC#xff1f;二、实验过程1.单通道ADC采集STM32CubeMX配置代码实现2.多通道ADC采样(非DMA)STM32CubeMX配置代码实现3.多通道ADC采样#xff08;DMA#xff09;STM32CubeMX配置代码实现总结前言 本章介绍使用STM32CubeMX对ADC进行配置的方法二、实验过程1.单通道ADC采集STM32CubeMX配置代码实现2.多通道ADC采样(非DMA)STM32CubeMX配置代码实现3.多通道ADC采样DMASTM32CubeMX配置代码实现总结前言 本章介绍使用STM32CubeMX对ADC进行配置的方法ADC的原理、概念和特点配置各个步骤的功能并通过单通道多通道DMA三种方式实现采集。 一、什么是ADC ADC 即模拟数字转换器英文详称 Analog-to-digital converter可以将外部的模拟信号转换为数字信号。 以下是datasheet当中的内容我就做个搬运工简单翻一下大家可以配合datasheet学习这样理解会更加深刻。 STM32 的 ADC 是 12 位逐次逼近型的模拟数字转换器它有 18 个通道可测量 16 个外部和 2 个内部信号源其中 ADC3 根据 CPU 引脚的不同其通道数也不同一般有 8 个外部通道。 ADC 中的各个通道的 A/D 转换可以单次、连续、扫描或间断模式执行。 ADC 的结果可以以左对齐或者右对齐存储在 16 位数据寄存器中。 STM32F103 的 ADC 主要特性如下 1、 12 位分辨率 2、转换结束、注入转换结束和发生模拟看门狗事件时产生中断 3、单次和连续转换模式 4、自校准 5、带内嵌数据一致性的数据对齐 6、采样间隔可以按通道分别编程 7、规则转换和注入转换均有外部触发选项 8、间断模式 9、双重模式带 2 个或以上 ADC 的器件 10、 ADC 转换时间时钟为 72MHz 为 1.17us 11、 ADC 供电要求 2.4V 到 3.6V 12、 ADC 输入范围 VREF–≤VIN≤VREF 13、规则通道转换期间有 DMA 请求产生 我们按照 ADC 的配置流程标记了七处位置分别如下理解不同的步骤请参考图和下列的介绍进行。 ① ADC模块的输入电压 ② 输入通道电压输入后外部输入的电压会通过通道输入到 ADC 转换器中下面各个是ADC通道的列表 ③ 转换顺序ADC 多个通道以任意顺序输入则需要进行顺序转换转换的方式有两种一种是规则组即按照顺序进行另一种是注入组即打破原有顺序有点类似中断的形式进行顺序转换、 ④ 转换触发源从图中可以看到顺序转换是需要触发源的这里就是对触发源的配置 ⑤ 转换时间即输入电压通过ADC的时间 计算公式T 采样时间 12.5 个周期 ⑥数据寄存器ADC 转换完成后的数据输出寄存器 ⑦ 中断ADC 中断可分为三种规则组转换结束中断、注入组转换结束中断、设置了模拟看门狗状态位中断 ⑧ 单次转换模式和连续转换模式 ⑨ 扫描模式 二、实验过程 1.单通道ADC采集 STM32CubeMX配置 选择芯片stm32f103c6t6新建工程 设置时钟源最小系统外部晶振8Mhz作为外部高速HSE时钟源。由于没有外接外部低速晶振这里低速时钟源选择旁路时钟源。 配置时钟树这里使用官方推荐的配置 为了展示内部温度的变化我们配置USART1打印获取温度的结果 USART1的参数配置如下波特率115200传输数据长度为8 Bit奇偶检验无停止位1.其他参数默认 使用ADC 通道0参数中设置采样时间 Code Generator中设置只拷贝使用到的库分离.c和.h文件 设置好项目名称和路径点击GENERATE CODE即可生成后使用keil5 IDE打开。 代码实现 在usart.c文件后面添加如下代码代码中添加了#ifdef宏定义进行条件编译如果使用GUNC编译则PUTCHAR_PROTOTYPE 定义为int __io_putchar(int ch)函数否则定义为int fputc(int ch, FILE *f)函数。 /* USER CODE BEGIN 0 */ #include stdio.h #ifdef __GNUC__/* With GCC/RAISONANCE, small printf (option LD Linker-Libraries-Small printfset to Yes) calls __io_putchar() */#define PUTCHAR_PROTOTYPE int __io_putchar(int ch) #else#define PUTCHAR_PROTOTYPE int fputc(int ch, FILE *f) #endif /* __GNUC__ */ /*** brief Retargets the C library printf function to the USART.* param None* retval None*/ PUTCHAR_PROTOTYPE {/* Place your implementation of fputc here *//* e.g. write a character to the EVAL_COM1 and Loop until the end of transmission */HAL_UART_Transmit(huart1, (uint8_t *)ch, 1, 0xFFFF);return ch; } /* USER CODE END 0 */main函数如下 int main(void) {/* USER CODE BEGIN 1 *//* USER CODE END 1 *//* MCU Configuration--------------------------------------------------------*//* Reset of all peripherals, Initializes the Flash interface and the Systick. */HAL_Init();/* USER CODE BEGIN Init */uint32_t ADC_Value;/* USER CODE END Init *//* Configure the system clock */SystemClock_Config();/* USER CODE BEGIN SysInit *//* USER CODE END SysInit *//* Initialize all configured peripherals */MX_GPIO_Init();MX_ADC1_Init();MX_USART1_UART_Init();/* USER CODE BEGIN 2 */HAL_ADC_Start(hadc1); HAL_ADC_PollForConversion(hadc1,10); /* USER CODE END 2 *//* Infinite loop *//* USER CODE BEGIN WHILE */while (1){/* USER CODE END WHILE *//* USER CODE BEGIN 3 */if(HAL_IS_BIT_SET(HAL_ADC_GetState(hadc1), HAL_ADC_STATE_REG_EOC)){ADC_Value HAL_ADC_GetValue(hadc1);}printf( ADC channel0 value %1.3fV \r\n, ADC_Value*3.3f/4096);}}/* USER CODE END 3 */ }2.多通道ADC采样(非DMA) STM32CubeMX配置 为了避免冗余这里省略掉CubeMX新建工程配置时钟等步骤直接展示ADC的配置 代码实现 为了避免冗余这里省略掉printf重载直接展示main函数如下 int main(void) {/* USER CODE BEGIN 1 */uint32_t ADC_Value[2];uint8_t i;/* USER CODE END 1 *//* MCU Configuration--------------------------------------------------------*//* Reset of all peripherals, Initializes the Flash interface and the Systick. */HAL_Init();/* USER CODE BEGIN Init *//* USER CODE END Init *//* Configure the system clock */SystemClock_Config();/* USER CODE BEGIN SysInit *//* USER CODE END SysInit *//* Initialize all configured peripherals */MX_GPIO_Init();MX_ADC1_Init();MX_USART1_UART_Init();/* USER CODE BEGIN 2 */HAL_ADC_Start(hadc1); HAL_ADC_PollForConversion(hadc1,10); /* USER CODE END 2 *//* Infinite loop *//* USER CODE BEGIN WHILE */while (1){/* USER CODE END WHILE *//* USER CODE BEGIN 3 */HAL_Delay(500);for(i0;i2;i){if(HAL_IS_BIT_SET(HAL_ADC_GetState(hadc1), HAL_ADC_STATE_REG_EOC)){ADC_Value[i] HAL_ADC_GetValue(hadc1);}HAL_ADC_Stop (hadc1);//打开ADCprintf( ADC channel0 value %1.3fV \r\n, ADC_Value[0]*3.3f/4096);printf( ADC channel1 value %1.3fV \r\n, ADC_Value[1]*3.3f/4096);}/* USER CODE END 3 */ }3.多通道ADC采样DMA STM32CubeMX配置 为了避免冗余这里省略掉CubeMX新建工程配置时钟等步骤直接展示DMA和ADC的配置 DMA配置如下主要配置了通道模式字宽等信息 ADC配置如下 代码实现 为了避免冗余这里省略掉printf重载直接展示main函数如下 int main(void) {/* USER CODE BEGIN 1 *//* USER CODE END 1 *//* MCU Configuration--------------------------------------------------------*//* Reset of all peripherals, Initializes the Flash interface and the Systick. */HAL_Init();/* USER CODE BEGIN Init */uint32_t ADC_Value[100];uint8_t i;uint32_t ad1,ad2;/* USER CODE END Init *//* Configure the system clock */SystemClock_Config();/* USER CODE BEGIN SysInit *//* USER CODE END SysInit *//* Initialize all configured peripherals */MX_GPIO_Init();MX_ADC1_Init();MX_USART1_UART_Init();/* USER CODE BEGIN 2 */HAL_ADC_Start_DMA(hadc1, (uint32_t*)ADC_Value, 50);/* USER CODE END 2 *//* Infinite loop *//* USER CODE BEGIN WHILE */while (1){/* USER CODE END WHILE *//* USER CODE BEGIN 3 */HAL_Delay(500);for(i 0,ad1 0,ad20; i 100;){ad1 ADC_Value[i];ad2 ADC_Value[i];}ad1 / 50;ad2 / 50;printf(\r\n******** ADC DMA Example ********\r\n\r\n);//串口打印printf( AD1 value %1.3fV \r\n, ad1*3.3f/4096);printf( AD2 value %1.3fV \r\n, ad2*3.3f/4096);}总结 本章介绍使用STM32CubeMX对ADC进行配置的方法ADC的原理、概念和特点配置各个步骤的功能并通过单通道多通道DMA三种方式实现采集对于配置的细节可以参照ADC实现原理图一点点梳理这样易于理解。
http://www.w-s-a.com/news/427523/

相关文章:

  • 上海营销网站建设公司下面哪个不是网页制作工具
  • 有哪些网站可以做设计比赛苏州设计公司排名前十
  • 公益网站建设需求车陂手机网站开发
  • 高端网站建设专业营销团队宁德网站建设51yunsou
  • 网站如何做cdn购物网站建设app开发
  • 简单的手机网站模板好看大方的企业网站源码.net
  • 沈阳住房和城乡建设厅网站网站个人备案做论坛
  • 企业建网站的目的开家网站建设培训班
  • 做怎么网站网站优化和推广
  • 建站工具 风铃网站每年空间域名费用及维护费
  • 网站开发工具 知乎工业软件开发技术就业前景
  • 永济微网站建设费用新手如何自学编程
  • 在本地怎么做网站深圳保障房申请条件2022
  • 广州天河区网站建设公司东莞网络游戏制作开发
  • 哪个网站做免费小程序rio门户网站的制作
  • 短网站生成查询网站所有关键词排名
  • 阿里云购买网站登录技术服务外包公司
  • 淘宝单页面网站手机制作游戏的软件
  • 汉中市网站建设wordpress编辑器好麻烦
  • 织梦做的网站快照被攻击在线看crm系统
  • 青岛物流公司网站建设网站建设提议
  • 企业网站建设高端品牌宿州注册公司多少钱
  • 个人微信公众号怎么做微网站吗湛江网站制作方案
  • 学校网站改版南京展厅设计装修
  • 手机网站有免费做的吗建设银行网站不能登录
  • 树莓派做影视网站网站建设企业 熊账号
  • 网站iis7.5配置免费网站建设模板下载
  • 生物公司网站建设方案wordpress自定义字段调用
  • 静态网站公用头部如何调用标题wordpress自动采集翻译插件怎么用
  • 网站做单链 好不好网站营销不同阶段的网站分析目标