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

东莞做网站推广网站备案被注销吗

东莞做网站推广,网站备案被注销吗,谁家做电商商城网站便宜,重庆市工程建设标准化信息网目录 概述 1 STM32Cube配置项目 1.1 基本参数配置 1.1.1 ADC1参数配置 1.1.2 ADC2参数配置 1.2 项目软件架构 2 功能实现 2.1 ADC转换初始化 2.2 ADC数据组包 3 测试函数 3.1 Vofa数据接口 3.2 输入数据 4 测试 4.1 ADC1 通道测试 4.2 ADC2 通道测试 概述 本文…

目录

概述

1  STM32Cube配置项目

1.1 基本参数配置

1.1.1  ADC1参数配置

1.1.2 ADC2参数配置

1.2 项目软件架构

2 功能实现

2.1 ADC转换初始化

2.2 ADC数据组包

3 测试函数

3.1 Vofa数据接口

3.2 输入数据

4 测试

4.1 ADC1 通道测试

 4.2 ADC2 通道测试


概述

本文主要介绍STM32G4系列MCU双ADC多通道数据转换的应用的方法,笔者通过STM32Cube工具配置多路ADC,并使用DAC模块产生1路模拟信号,验证ADC模块数据转换的功能。

1  STM32Cube配置项目

1.1 基本参数配置

1.1.1  ADC1参数配置

1)配置ADC1的端口

2)配置ADC2的端口

3)配置ADC的通道参数

step - 1 : 使能和选择相关的通道

 step - 2 :选择如下配置

step-3: 配置数据模式和通道号信息

 

 step-4: 使能DMA通道信息

1.1.2 ADC2参数配置

 ADC2的参数配置方法和ADC1相似,这里不再做重复介绍。

1.2 项目软件架构

完成1.1小节的参数配置之后,就可以生成项目代码,其具体架构如下:

2 功能实现

2.1 ADC转换初始化

由于系统采用DMA的方式实现ADC转换功能,所以直接从buff中读取数据即可。初始化代码如下:

代码第32~33行: 定义两个buff,用于存放ADC转换数据的结果

代码38行:初始化ADC1模块

代码39行:启动ADC1的DMA模式ADC数据转换功能

代码41行:初始化ADC2模块

代码42行:启动ADC2的DMA模式ADC数据转换功能

 源代码如下:

uint16_t adc1_rawlist[3];
uint16_t adc2_rawlist[5];void Sample_Init(void)
{HAL_ADCEx_Calibration_Start(&hadc1, ADC_SINGLE_ENDED);HAL_ADC_Start_DMA(&hadc1, (uint32_t *)adc1_rawlist, 2);HAL_ADCEx_Calibration_Start(&hadc1, ADC_SINGLE_ENDED);HAL_ADC_Start_DMA(&hadc2, (uint32_t *)adc2_rawlist, 4);
}

2.2 ADC数据组包

编写一个函数,将ADC1转换的数据和ADC2转换的数据转行成一个数据包,方便调用:

代码83~90行:实现数据组包功能

代码92行:使用vofa将数据包显示出来

3 测试函数

3.1 Vofa数据接口

代码21行:定义数据长度

代码22行:定义发送数据端口

代码25~29行:定义vofa数据包的结构

代码40~47行:定义发送数据函数

源代码如下:

/* USER CODE BEGIN Header */
/********************************************************************************* File Name        :  vofaDebug.c* Description      :  debug source code interface******************************************************************************* @attention*
* COPYRIGHT:    Copyright (c) 2024  mingfei.tang* CREATED BY:   ming fei.tang
* DATE:         JUL 05th, 2024*******************************************************************************/
/* USER CODE END Header */
/* Includes ------------------------------------------------------------------*/
#include "vofaDebug.h"
#include "usart.h"#define LEN   6
#define DEBUG_UART_OBJ huart2/* Private variables ---------------------------------------------------------*/
typedef struct Frame
{float fdata[LEN];unsigned char tail[4];
} Frame_t;Frame_t Frame_Buff =
{.tail[0] = 0x00,.tail[1] = 0x00,.tail[2] = 0x80,.tail[3] = 0x7f,
};/* Public user code ---------------------------------------------------------*/
void Debug_PrintJustFloat(const uint16_t *pData, uint16_t Size)
{for (uint16_t i = 0; i < Size; i++){Frame_Buff.fdata[i] = pData[i];}HAL_UART_Transmit_DMA(&DEBUG_UART_OBJ, (uint8_t *)&Frame_Buff, sizeof(Frame_Buff));
}/* Private user code for printf log ------------------------------------------*/int fputc(int ch, FILE *f)
{HAL_UART_Transmit_DMA(&DEBUG_UART_OBJ, (uint8_t *)&ch, 1);return (ch);
}int fgetc(FILE *f)
{int ch;HAL_UART_Receive_DMA(&DEBUG_UART_OBJ, (uint8_t *)&ch, 1);return (ch);
}void Debug_fresh( void )
{
//    int ch;//    HAL_UART_Receive_DMA(&DEBUG_UART_OBJ, (uint8_t *)&ch, 1);
}/* End of this file */

3.2 输入数据

使用STM32G4的DAC2通道产生一路模式信号,用于作为ADC的输入数据。

1)选择端口和通道

2)配置参数

 3)编写输出函数

代码52行:启动DAC数据转换功能

代码53行:初始化端口电平

4)实现正弦波信号函数

源代码文件如下:

/* USER CODE BEGIN Header */
/********************************************************************************* File Name        :  waveLib.c* Description      :  main task ******************************************************************************* @attention*
* COPYRIGHT:    Copyright (c) 2024  tangmingfei2013@126.com* CREATED BY:   mingfei.tang
* DATE:         JUL 05th, 2024*******************************************************************************/
/* USER CODE END Header */
#include "waveLib.h"
#include "dac.h"
#include <stdio.h> 
#include <string.h>
#include <stdbool.h>
#include <math.h>#define PI    3.14159void DAC_SetConvert( uint32_t value)
{HAL_DAC_SetValue( &hdac2, DAC_CHANNEL_1, DAC_ALIGN_12B_R,value );
}float dac_triangle_wave( void )
{static double t = 0;float angle;if( t >= 1 ){t = 0;}t += 0.001;angle = t*800;return  angle;
}float asin_wave( void )
{static double t = -1;float value, angle;if( t >= 1 ){t = -1;}value = asin( t ); angle = (180*value)/3.1415926;t += 0.001;return  angle;
}float sin_wave( void )
{float value, angle;static double t = -1;angle = 2*PI*t;value = 1000*sin( angle )+1500; t += 0.001;if( t >= 1 ){t = -1;}return  value;
}/* End of this file */

4 测试

4.1 ADC1 通道测试

将DAC的数据输出端口连接到ADC1  - PC0端口上,测试输出数据的波形

DAC的波形数据:

 ADC`-PC0接口转换的数据波形:

 4.2 ADC2 通道测试

将DAC的数据输出端口连接到ADC2  - PC2端口上,测试输出数据的波形

 原始数据波形和转换后的数据波形叠加:

http://www.yayakq.cn/news/59972/

相关文章:

  • 镇江网站优化免费团购网站模板
  • 2024微信最新版本下载广告seo是什么意思
  • 平台网站建设在哪里免费网站2022年能用的网址
  • 手机网站建设哪家好dw做网站时怎么改为绝对路径
  • 做网站成为首富的外国人凡客诚品还经营吗
  • 大型门户网站开发费用徐州市建筑工程交易网
  • 河南网站建设官网南宁自助建站软件
  • 怎么做定位钓鱼网站wordpress3.8.3
  • 邯郸网站建设产品介绍包装设计公司哪个好
  • 简单手机网站开发软件哈尔滨网络优化公司
  • 微信做网站顺德网站建设如何
  • ftp给网站上传图片后图片的链接地址被改了长宁区网站设计建设
  • 苏州网络营销及网站推广淮南微信网站建设
  • 网站建设柒首先金手指9网络科技服务有限公司
  • 如何查网站开发环境联想公司网站建设现状
  • 做韦恩图网站常州做网站哪里好
  • 网站建设连接数据库贵州住建设局官方网站
  • 蓝奏云注册网站平台搭建阳光房
  • 如何看织梦做的网站的源码建筑建设网站
  • 服务专业的网站建设公司免费的个人网站空间
  • 广州棋牌软件开发公司优化网站规模
  • 单页面网站模板怎么做网站会员充值做哪个分录
  • 深圳制作网站培训学校国外贸易平台
  • 用wordpress开发网站模板天津免费建网站
  • 成都网站成都网站制作公司网络营销有哪些主要功能
  • 宁波设计网站公司开发公司空置房物业费会计科目
  • 做网站怎么接私活wordpress程序怎么装
  • 网页网站设计公司排名下载好的字体怎么安装到wordpress
  • 微网站开发框架自建电商网站有哪些
  • 性价比高柳州网站建设网站后台制作步骤