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

APP手机端电子商务网站建设优化大师专业版

APP手机端电子商务网站建设,优化大师专业版,建设网站个人简介范文,wordpress 短链接目录 概述 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.hengruixuexiao.com/news/23004.html

相关文章:

  • web网站开发详细代码推广普通话心得体会
  • 平台b2c网站中国seo谁最厉害
  • wordpress网站换空间百度贴吧网页入口
  • 专门做国外网站河南网站seo推广
  • 廊坊市建设局网站seo外链在线提交工具
  • 九江做网站的公司校园推广的方式有哪些
  • 镇江网站搜索排名百度一下 你就知道官网
  • html5作业 建设网站网站设计的基本原则
  • 网站内容如何编辑软件百度搜索
  • 按f12复制代码可以做网站吗网站信息组织优化
  • 政府网站建设项目背景百度网盘搜索引擎入口在哪里
  • 绞铜机 东莞网站建设目前好的推广平台
  • 做购物网站怎么赚钱关键词广告
  • 网站制作公司怎样帮客户做优化搜狗搜索网页版
  • 代理上海建站公司注册杭州seo博客有哪些
  • 内蒙古住房城乡建设厅网站广州信息流推广公司
  • wordpress动态网址什么是白帽seo
  • 小程序模板免费网站国家中医药管理局
  • 应该知道的网站如何优化推广中的关键词
  • cm域名做网站怎么推广自己的网站?
  • 西安app网站开发项目设计一个简单的网页
  • 乌兰察布网站建设开发网站建设
  • 做外包的网站常用的网络营销方法有哪些
  • 网站首页被k 做跳转赣州网站建设
  • 做网站怎么租个域名seo实战教程
  • 定安免费建站公司重庆seo技术教程博客
  • 东阳网站建设dyfwzx西安企业seo
  • 湛江免费制作网站综合搜索引擎
  • 冬青街 做网站关键词排名优化软件策略
  • 做网站怎么推广域名污染查询网站