update valtage and current get

This commit is contained in:
不吃油炸鸡
2025-09-14 18:47:02 +08:00
parent b7e746a7c2
commit a3b9fbbbe7
7 changed files with 122 additions and 29 deletions

View File

@@ -24,6 +24,10 @@
ADC_Packet adc_packet;
uint8_t global_cur_unit = UNIT_MA; // default mA
float global_valtage = 0.0;
float global_current = 0.0;
/* USER CODE END 0 */
ADC_HandleTypeDef hadc1;
@@ -66,7 +70,7 @@ void MX_ADC1_Init(void)
*/
sConfig.Channel = ADC_CHANNEL_5;
sConfig.Rank = 1;
sConfig.SamplingTime = ADC_SAMPLETIME_15CYCLES;
sConfig.SamplingTime = ADC_SAMPLETIME_28CYCLES;
if (HAL_ADC_ConfigChannel(&hadc1, &sConfig) != HAL_OK)
{
Error_Handler();
@@ -143,7 +147,7 @@ void HAL_ADC_MspInit(ADC_HandleTypeDef* adcHandle)
hdma_adc1.Init.MemInc = DMA_MINC_ENABLE;
hdma_adc1.Init.PeriphDataAlignment = DMA_PDATAALIGN_HALFWORD;
hdma_adc1.Init.MemDataAlignment = DMA_MDATAALIGN_HALFWORD;
hdma_adc1.Init.Mode = DMA_NORMAL;
hdma_adc1.Init.Mode = DMA_CIRCULAR;
hdma_adc1.Init.Priority = DMA_PRIORITY_LOW;
hdma_adc1.Init.FIFOMode = DMA_FIFOMODE_DISABLE;
if (HAL_DMA_Init(&hdma_adc1) != HAL_OK)

View File

@@ -24,6 +24,7 @@
/* USER CODE BEGIN Includes */
#include "usart.h"
#include "adc.h"
#include "gate.h"
/* USER CODE END Includes */
/* Private typedef -----------------------------------------------------------*/
@@ -204,11 +205,7 @@ void DMA2_Stream0_IRQHandler(void)
/* USER CODE BEGIN DMA2_Stream0_IRQn 0 */
if(__HAL_DMA_GET_FLAG(&hdma_adc1, DMA_FLAG_TCIF0_4)) {
__HAL_DMA_CLEAR_FLAG(&hdma_adc1, DMA_FLAG_TCIF0_4);
HAL_ADC_Stop_DMA(&hadc1);
// 填充模式位
adc_packet.header[4] = 0x10;
HAL_UART_Transmit_DMA(&huart6, (uint8_t *)&adc_packet, sizeof(adc_packet));
HAL_ADC_Start_DMA(&hadc1, (uint32_t*)adc_packet.data, ADC_TIMES * ADC_CHANELS);
Gate_Swich_and_UART_Send(adc_packet);
}
/* USER CODE END DMA2_Stream0_IRQn 0 */
HAL_DMA_IRQHandler(&hdma_adc1);