mirror of
https://gitee.com/dlmu-cone/tronone-h7-scaffold
synced 2026-07-23 19:25:09 +08:00
adc
This commit is contained in:
@@ -32,12 +32,15 @@ extern "C" {
|
||||
|
||||
/* USER CODE END Includes */
|
||||
|
||||
extern ADC_HandleTypeDef hadc1;
|
||||
|
||||
extern ADC_HandleTypeDef hadc3;
|
||||
|
||||
/* USER CODE BEGIN Private defines */
|
||||
|
||||
/* USER CODE END Private defines */
|
||||
|
||||
void MX_ADC1_Init(void);
|
||||
void MX_ADC3_Init(void);
|
||||
|
||||
/* USER CODE BEGIN Prototypes */
|
||||
|
||||
@@ -52,12 +52,14 @@ void MemManage_Handler(void);
|
||||
void BusFault_Handler(void);
|
||||
void UsageFault_Handler(void);
|
||||
void DebugMon_Handler(void);
|
||||
void DMA1_Stream0_IRQHandler(void);
|
||||
void DMA1_Stream1_IRQHandler(void);
|
||||
void DMA1_Stream2_IRQHandler(void);
|
||||
void DMA1_Stream3_IRQHandler(void);
|
||||
void DMA1_Stream4_IRQHandler(void);
|
||||
void DMA1_Stream5_IRQHandler(void);
|
||||
void DMA1_Stream6_IRQHandler(void);
|
||||
void ADC_IRQHandler(void);
|
||||
void FDCAN1_IT0_IRQHandler(void);
|
||||
void FDCAN2_IT0_IRQHandler(void);
|
||||
void SPI1_IRQHandler(void);
|
||||
|
||||
157
Core/Src/adc.c
157
Core/Src/adc.c
@@ -24,8 +24,82 @@
|
||||
|
||||
/* USER CODE END 0 */
|
||||
|
||||
ADC_HandleTypeDef hadc1;
|
||||
ADC_HandleTypeDef hadc3;
|
||||
DMA_HandleTypeDef hdma_adc1;
|
||||
|
||||
/* ADC1 init function */
|
||||
void MX_ADC1_Init(void)
|
||||
{
|
||||
|
||||
/* USER CODE BEGIN ADC1_Init 0 */
|
||||
|
||||
/* USER CODE END ADC1_Init 0 */
|
||||
|
||||
ADC_MultiModeTypeDef multimode = {0};
|
||||
ADC_ChannelConfTypeDef sConfig = {0};
|
||||
|
||||
/* USER CODE BEGIN ADC1_Init 1 */
|
||||
|
||||
/* USER CODE END ADC1_Init 1 */
|
||||
|
||||
/** Common config
|
||||
*/
|
||||
hadc1.Instance = ADC1;
|
||||
hadc1.Init.ClockPrescaler = ADC_CLOCK_ASYNC_DIV64;
|
||||
hadc1.Init.Resolution = ADC_RESOLUTION_16B;
|
||||
hadc1.Init.ScanConvMode = ADC_SCAN_ENABLE;
|
||||
hadc1.Init.EOCSelection = ADC_EOC_SINGLE_CONV;
|
||||
hadc1.Init.LowPowerAutoWait = DISABLE;
|
||||
hadc1.Init.ContinuousConvMode = ENABLE;
|
||||
hadc1.Init.NbrOfConversion = 2;
|
||||
hadc1.Init.DiscontinuousConvMode = DISABLE;
|
||||
hadc1.Init.ExternalTrigConv = ADC_SOFTWARE_START;
|
||||
hadc1.Init.ExternalTrigConvEdge = ADC_EXTERNALTRIGCONVEDGE_NONE;
|
||||
hadc1.Init.ConversionDataManagement = ADC_CONVERSIONDATA_DMA_CIRCULAR;
|
||||
hadc1.Init.Overrun = ADC_OVR_DATA_PRESERVED;
|
||||
hadc1.Init.LeftBitShift = ADC_LEFTBITSHIFT_NONE;
|
||||
hadc1.Init.OversamplingMode = DISABLE;
|
||||
hadc1.Init.Oversampling.Ratio = 1;
|
||||
if (HAL_ADC_Init(&hadc1) != HAL_OK)
|
||||
{
|
||||
Error_Handler();
|
||||
}
|
||||
|
||||
/** Configure the ADC multi-mode
|
||||
*/
|
||||
multimode.Mode = ADC_MODE_INDEPENDENT;
|
||||
if (HAL_ADCEx_MultiModeConfigChannel(&hadc1, &multimode) != HAL_OK)
|
||||
{
|
||||
Error_Handler();
|
||||
}
|
||||
|
||||
/** Configure Regular Channel
|
||||
*/
|
||||
sConfig.Channel = ADC_CHANNEL_4;
|
||||
sConfig.Rank = ADC_REGULAR_RANK_1;
|
||||
sConfig.SamplingTime = ADC_SAMPLETIME_1CYCLE_5;
|
||||
sConfig.SingleDiff = ADC_SINGLE_ENDED;
|
||||
sConfig.OffsetNumber = ADC_OFFSET_NONE;
|
||||
sConfig.Offset = 0;
|
||||
sConfig.OffsetSignedSaturation = DISABLE;
|
||||
if (HAL_ADC_ConfigChannel(&hadc1, &sConfig) != HAL_OK)
|
||||
{
|
||||
Error_Handler();
|
||||
}
|
||||
|
||||
/** Configure Regular Channel
|
||||
*/
|
||||
sConfig.Rank = ADC_REGULAR_RANK_2;
|
||||
if (HAL_ADC_ConfigChannel(&hadc1, &sConfig) != HAL_OK)
|
||||
{
|
||||
Error_Handler();
|
||||
}
|
||||
/* USER CODE BEGIN ADC1_Init 2 */
|
||||
|
||||
/* USER CODE END ADC1_Init 2 */
|
||||
|
||||
}
|
||||
/* ADC3 init function */
|
||||
void MX_ADC3_Init(void)
|
||||
{
|
||||
@@ -88,30 +162,55 @@ void MX_ADC3_Init(void)
|
||||
void HAL_ADC_MspInit(ADC_HandleTypeDef* adcHandle)
|
||||
{
|
||||
|
||||
RCC_PeriphCLKInitTypeDef PeriphClkInitStruct = {0};
|
||||
if(adcHandle->Instance==ADC3)
|
||||
GPIO_InitTypeDef GPIO_InitStruct = {0};
|
||||
if(adcHandle->Instance==ADC1)
|
||||
{
|
||||
/* USER CODE BEGIN ADC3_MspInit 0 */
|
||||
/* USER CODE BEGIN ADC1_MspInit 0 */
|
||||
|
||||
/* USER CODE END ADC3_MspInit 0 */
|
||||
/* USER CODE END ADC1_MspInit 0 */
|
||||
/* ADC1 clock enable */
|
||||
__HAL_RCC_ADC12_CLK_ENABLE();
|
||||
|
||||
/** Initializes the peripherals clock
|
||||
*/
|
||||
PeriphClkInitStruct.PeriphClockSelection = RCC_PERIPHCLK_ADC;
|
||||
PeriphClkInitStruct.PLL2.PLL2M = 2;
|
||||
PeriphClkInitStruct.PLL2.PLL2N = 16;
|
||||
PeriphClkInitStruct.PLL2.PLL2P = 2;
|
||||
PeriphClkInitStruct.PLL2.PLL2Q = 2;
|
||||
PeriphClkInitStruct.PLL2.PLL2R = 2;
|
||||
PeriphClkInitStruct.PLL2.PLL2RGE = RCC_PLL2VCIRANGE_3;
|
||||
PeriphClkInitStruct.PLL2.PLL2VCOSEL = RCC_PLL2VCOWIDE;
|
||||
PeriphClkInitStruct.PLL2.PLL2FRACN = 0;
|
||||
PeriphClkInitStruct.AdcClockSelection = RCC_ADCCLKSOURCE_PLL2;
|
||||
if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInitStruct) != HAL_OK)
|
||||
__HAL_RCC_GPIOC_CLK_ENABLE();
|
||||
/**ADC1 GPIO Configuration
|
||||
PC4 ------> ADC1_INP4
|
||||
*/
|
||||
GPIO_InitStruct.Pin = GPIO_PIN_4;
|
||||
GPIO_InitStruct.Mode = GPIO_MODE_ANALOG;
|
||||
GPIO_InitStruct.Pull = GPIO_NOPULL;
|
||||
HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
|
||||
|
||||
/* ADC1 DMA Init */
|
||||
/* ADC1 Init */
|
||||
hdma_adc1.Instance = DMA1_Stream2;
|
||||
hdma_adc1.Init.Request = DMA_REQUEST_ADC1;
|
||||
hdma_adc1.Init.Direction = DMA_PERIPH_TO_MEMORY;
|
||||
hdma_adc1.Init.PeriphInc = DMA_PINC_DISABLE;
|
||||
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_CIRCULAR;
|
||||
hdma_adc1.Init.Priority = DMA_PRIORITY_LOW;
|
||||
hdma_adc1.Init.FIFOMode = DMA_FIFOMODE_DISABLE;
|
||||
if (HAL_DMA_Init(&hdma_adc1) != HAL_OK)
|
||||
{
|
||||
Error_Handler();
|
||||
}
|
||||
|
||||
__HAL_LINKDMA(adcHandle,DMA_Handle,hdma_adc1);
|
||||
|
||||
/* ADC1 interrupt Init */
|
||||
HAL_NVIC_SetPriority(ADC_IRQn, 5, 0);
|
||||
HAL_NVIC_EnableIRQ(ADC_IRQn);
|
||||
/* USER CODE BEGIN ADC1_MspInit 1 */
|
||||
|
||||
/* USER CODE END ADC1_MspInit 1 */
|
||||
}
|
||||
else if(adcHandle->Instance==ADC3)
|
||||
{
|
||||
/* USER CODE BEGIN ADC3_MspInit 0 */
|
||||
|
||||
/* USER CODE END ADC3_MspInit 0 */
|
||||
/* ADC3 clock enable */
|
||||
__HAL_RCC_ADC3_CLK_ENABLE();
|
||||
/* USER CODE BEGIN ADC3_MspInit 1 */
|
||||
@@ -123,7 +222,29 @@ void HAL_ADC_MspInit(ADC_HandleTypeDef* adcHandle)
|
||||
void HAL_ADC_MspDeInit(ADC_HandleTypeDef* adcHandle)
|
||||
{
|
||||
|
||||
if(adcHandle->Instance==ADC3)
|
||||
if(adcHandle->Instance==ADC1)
|
||||
{
|
||||
/* USER CODE BEGIN ADC1_MspDeInit 0 */
|
||||
|
||||
/* USER CODE END ADC1_MspDeInit 0 */
|
||||
/* Peripheral clock disable */
|
||||
__HAL_RCC_ADC12_CLK_DISABLE();
|
||||
|
||||
/**ADC1 GPIO Configuration
|
||||
PC4 ------> ADC1_INP4
|
||||
*/
|
||||
HAL_GPIO_DeInit(GPIOC, GPIO_PIN_4);
|
||||
|
||||
/* ADC1 DMA DeInit */
|
||||
HAL_DMA_DeInit(adcHandle->DMA_Handle);
|
||||
|
||||
/* ADC1 interrupt Deinit */
|
||||
HAL_NVIC_DisableIRQ(ADC_IRQn);
|
||||
/* USER CODE BEGIN ADC1_MspDeInit 1 */
|
||||
|
||||
/* USER CODE END ADC1_MspDeInit 1 */
|
||||
}
|
||||
else if(adcHandle->Instance==ADC3)
|
||||
{
|
||||
/* USER CODE BEGIN ADC3_MspDeInit 0 */
|
||||
|
||||
|
||||
@@ -44,6 +44,9 @@ void MX_DMA_Init(void)
|
||||
__HAL_RCC_DMA1_CLK_ENABLE();
|
||||
|
||||
/* DMA interrupt init */
|
||||
/* DMA1_Stream0_IRQn interrupt configuration */
|
||||
HAL_NVIC_SetPriority(DMA1_Stream0_IRQn, 5, 0);
|
||||
HAL_NVIC_EnableIRQ(DMA1_Stream0_IRQn);
|
||||
/* DMA1_Stream1_IRQn interrupt configuration */
|
||||
HAL_NVIC_SetPriority(DMA1_Stream1_IRQn, 5, 0);
|
||||
HAL_NVIC_EnableIRQ(DMA1_Stream1_IRQn);
|
||||
|
||||
@@ -61,6 +61,7 @@
|
||||
|
||||
/* Private function prototypes -----------------------------------------------*/
|
||||
void SystemClock_Config(void);
|
||||
void PeriphCommonClock_Config(void);
|
||||
static void MPU_Config(void);
|
||||
void MX_FREERTOS_Init(void);
|
||||
/* USER CODE BEGIN PFP */
|
||||
@@ -106,6 +107,9 @@ int main(void)
|
||||
/* Configure the system clock */
|
||||
SystemClock_Config();
|
||||
|
||||
/* Configure the peripherals common clocks */
|
||||
PeriphCommonClock_Config();
|
||||
|
||||
/* USER CODE BEGIN SysInit */
|
||||
|
||||
/* USER CODE END SysInit */
|
||||
@@ -130,6 +134,7 @@ int main(void)
|
||||
MX_UART5_Init();
|
||||
MX_TIM3_Init();
|
||||
MX_SPI6_Init();
|
||||
MX_ADC1_Init();
|
||||
/* USER CODE BEGIN 2 */
|
||||
|
||||
robotSelfCheck(); //自检LED
|
||||
@@ -222,6 +227,32 @@ void SystemClock_Config(void)
|
||||
HAL_RCC_MCOConfig(RCC_MCO1, RCC_MCO1SOURCE_HSI, RCC_MCODIV_1);
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Peripherals Common Clock Configuration
|
||||
* @retval None
|
||||
*/
|
||||
void PeriphCommonClock_Config(void)
|
||||
{
|
||||
RCC_PeriphCLKInitTypeDef PeriphClkInitStruct = {0};
|
||||
|
||||
/** Initializes the peripherals clock
|
||||
*/
|
||||
PeriphClkInitStruct.PeriphClockSelection = RCC_PERIPHCLK_ADC;
|
||||
PeriphClkInitStruct.PLL2.PLL2M = 2;
|
||||
PeriphClkInitStruct.PLL2.PLL2N = 16;
|
||||
PeriphClkInitStruct.PLL2.PLL2P = 2;
|
||||
PeriphClkInitStruct.PLL2.PLL2Q = 2;
|
||||
PeriphClkInitStruct.PLL2.PLL2R = 2;
|
||||
PeriphClkInitStruct.PLL2.PLL2RGE = RCC_PLL2VCIRANGE_3;
|
||||
PeriphClkInitStruct.PLL2.PLL2VCOSEL = RCC_PLL2VCOWIDE;
|
||||
PeriphClkInitStruct.PLL2.PLL2FRACN = 0;
|
||||
PeriphClkInitStruct.AdcClockSelection = RCC_ADCCLKSOURCE_PLL2;
|
||||
if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInitStruct) != HAL_OK)
|
||||
{
|
||||
Error_Handler();
|
||||
}
|
||||
}
|
||||
|
||||
/* USER CODE BEGIN 4 */
|
||||
|
||||
/* USER CODE END 4 */
|
||||
|
||||
@@ -223,7 +223,7 @@ void HAL_SPI_MspInit(SPI_HandleTypeDef* spiHandle)
|
||||
__HAL_LINKDMA(spiHandle,hdmarx,hdma_spi1_rx);
|
||||
|
||||
/* SPI1_TX Init */
|
||||
hdma_spi1_tx.Instance = DMA1_Stream2;
|
||||
hdma_spi1_tx.Instance = DMA1_Stream3;
|
||||
hdma_spi1_tx.Init.Request = DMA_REQUEST_SPI1_TX;
|
||||
hdma_spi1_tx.Init.Direction = DMA_MEMORY_TO_PERIPH;
|
||||
hdma_spi1_tx.Init.PeriphInc = DMA_PINC_DISABLE;
|
||||
@@ -288,7 +288,7 @@ void HAL_SPI_MspInit(SPI_HandleTypeDef* spiHandle)
|
||||
|
||||
/* SPI2 DMA Init */
|
||||
/* SPI2_RX Init */
|
||||
hdma_spi2_rx.Instance = DMA1_Stream3;
|
||||
hdma_spi2_rx.Instance = DMA1_Stream0;
|
||||
hdma_spi2_rx.Init.Request = DMA_REQUEST_SPI2_RX;
|
||||
hdma_spi2_rx.Init.Direction = DMA_PERIPH_TO_MEMORY;
|
||||
hdma_spi2_rx.Init.PeriphInc = DMA_PINC_DISABLE;
|
||||
|
||||
@@ -56,6 +56,8 @@
|
||||
|
||||
/* External variables --------------------------------------------------------*/
|
||||
extern PCD_HandleTypeDef hpcd_USB_OTG_HS;
|
||||
extern DMA_HandleTypeDef hdma_adc1;
|
||||
extern ADC_HandleTypeDef hadc1;
|
||||
extern FDCAN_HandleTypeDef hfdcan1;
|
||||
extern FDCAN_HandleTypeDef hfdcan2;
|
||||
extern FDCAN_HandleTypeDef hfdcan3;
|
||||
@@ -185,6 +187,20 @@ void DebugMon_Handler(void)
|
||||
/* please refer to the startup file (startup_stm32h7xx.s). */
|
||||
/******************************************************************************/
|
||||
|
||||
/**
|
||||
* @brief This function handles DMA1 stream0 global interrupt.
|
||||
*/
|
||||
void DMA1_Stream0_IRQHandler(void)
|
||||
{
|
||||
/* USER CODE BEGIN DMA1_Stream0_IRQn 0 */
|
||||
|
||||
/* USER CODE END DMA1_Stream0_IRQn 0 */
|
||||
HAL_DMA_IRQHandler(&hdma_spi2_rx);
|
||||
/* USER CODE BEGIN DMA1_Stream0_IRQn 1 */
|
||||
|
||||
/* USER CODE END DMA1_Stream0_IRQn 1 */
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief This function handles DMA1 stream1 global interrupt.
|
||||
*/
|
||||
@@ -207,7 +223,7 @@ void DMA1_Stream2_IRQHandler(void)
|
||||
/* USER CODE BEGIN DMA1_Stream2_IRQn 0 */
|
||||
|
||||
/* USER CODE END DMA1_Stream2_IRQn 0 */
|
||||
HAL_DMA_IRQHandler(&hdma_spi1_tx);
|
||||
HAL_DMA_IRQHandler(&hdma_adc1);
|
||||
/* USER CODE BEGIN DMA1_Stream2_IRQn 1 */
|
||||
|
||||
/* USER CODE END DMA1_Stream2_IRQn 1 */
|
||||
@@ -221,7 +237,7 @@ void DMA1_Stream3_IRQHandler(void)
|
||||
/* USER CODE BEGIN DMA1_Stream3_IRQn 0 */
|
||||
|
||||
/* USER CODE END DMA1_Stream3_IRQn 0 */
|
||||
HAL_DMA_IRQHandler(&hdma_spi2_rx);
|
||||
HAL_DMA_IRQHandler(&hdma_spi1_tx);
|
||||
/* USER CODE BEGIN DMA1_Stream3_IRQn 1 */
|
||||
|
||||
/* USER CODE END DMA1_Stream3_IRQn 1 */
|
||||
@@ -269,6 +285,20 @@ void DMA1_Stream6_IRQHandler(void)
|
||||
/* USER CODE END DMA1_Stream6_IRQn 1 */
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief This function handles ADC1 and ADC2 global interrupts.
|
||||
*/
|
||||
void ADC_IRQHandler(void)
|
||||
{
|
||||
/* USER CODE BEGIN ADC_IRQn 0 */
|
||||
|
||||
/* USER CODE END ADC_IRQn 0 */
|
||||
HAL_ADC_IRQHandler(&hadc1);
|
||||
/* USER CODE BEGIN ADC_IRQn 1 */
|
||||
|
||||
/* USER CODE END ADC_IRQn 1 */
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief This function handles FDCAN1 interrupt 0.
|
||||
*/
|
||||
|
||||
@@ -1,6 +1,24 @@
|
||||
#MicroXplorer Configuration settings - do not modify
|
||||
ADC1.Channel-0\#ChannelRegularConversion=ADC_CHANNEL_4
|
||||
ADC1.Channel-1\#ChannelRegularConversion=ADC_CHANNEL_4
|
||||
ADC1.ClockPrescaler=ADC_CLOCK_ASYNC_DIV64
|
||||
ADC1.ContinuousConvMode=ENABLE
|
||||
ADC1.ConversionDataManagement=ADC_CONVERSIONDATA_DMA_CIRCULAR
|
||||
ADC1.IPParameters=Rank-0\#ChannelRegularConversion,master,Channel-0\#ChannelRegularConversion,SamplingTime-0\#ChannelRegularConversion,OffsetNumber-0\#ChannelRegularConversion,OffsetSignedSaturation-0\#ChannelRegularConversion,NbrOfConversionFlag,ClockPrescaler,ConversionDataManagement,ContinuousConvMode,Rank-1\#ChannelRegularConversion,Channel-1\#ChannelRegularConversion,SamplingTime-1\#ChannelRegularConversion,OffsetNumber-1\#ChannelRegularConversion,OffsetSignedSaturation-1\#ChannelRegularConversion,NbrOfConversion
|
||||
ADC1.NbrOfConversion=2
|
||||
ADC1.NbrOfConversionFlag=1
|
||||
ADC1.OffsetNumber-0\#ChannelRegularConversion=ADC_OFFSET_NONE
|
||||
ADC1.OffsetNumber-1\#ChannelRegularConversion=ADC_OFFSET_NONE
|
||||
ADC1.OffsetSignedSaturation-0\#ChannelRegularConversion=DISABLE
|
||||
ADC1.OffsetSignedSaturation-1\#ChannelRegularConversion=DISABLE
|
||||
ADC1.Rank-0\#ChannelRegularConversion=1
|
||||
ADC1.Rank-1\#ChannelRegularConversion=2
|
||||
ADC1.SamplingTime-0\#ChannelRegularConversion=ADC_SAMPLETIME_1CYCLE_5
|
||||
ADC1.SamplingTime-1\#ChannelRegularConversion=ADC_SAMPLETIME_1CYCLE_5
|
||||
ADC1.master=1
|
||||
ADC3.Channel-0\#ChannelRegularConversion=ADC_CHANNEL_TEMPSENSOR
|
||||
ADC3.IPParameters=Rank-0\#ChannelRegularConversion,Channel-0\#ChannelRegularConversion,SamplingTime-0\#ChannelRegularConversion,OffsetNumber-0\#ChannelRegularConversion,OffsetSign-0\#ChannelRegularConversion,NbrOfConversionFlag
|
||||
ADC3.ClockPrescaler=ADC_CLOCK_ASYNC_DIV64
|
||||
ADC3.IPParameters=Rank-0\#ChannelRegularConversion,Channel-0\#ChannelRegularConversion,SamplingTime-0\#ChannelRegularConversion,OffsetNumber-0\#ChannelRegularConversion,OffsetSign-0\#ChannelRegularConversion,NbrOfConversionFlag,ClockPrescaler
|
||||
ADC3.NbrOfConversionFlag=1
|
||||
ADC3.OffsetNumber-0\#ChannelRegularConversion=ADC_OFFSET_NONE
|
||||
ADC3.OffsetSign-0\#ChannelRegularConversion=ADC3_OFFSET_SIGN_NEGATIVE
|
||||
@@ -26,12 +44,31 @@ CRC.DefaultInitValueUse=DEFAULT_INIT_VALUE_DISABLE
|
||||
CRC.DefaultPolynomialUse=DEFAULT_POLYNOMIAL_DISABLE
|
||||
CRC.IPParameters=InputDataInversionMode,DefaultInitValueUse,DefaultPolynomialUse,CRCLength
|
||||
CRC.InputDataInversionMode=CRC_INPUTDATA_INVERSION_BYTE
|
||||
Dma.ADC1.14.Direction=DMA_PERIPH_TO_MEMORY
|
||||
Dma.ADC1.14.EventEnable=DISABLE
|
||||
Dma.ADC1.14.FIFOMode=DMA_FIFOMODE_DISABLE
|
||||
Dma.ADC1.14.Instance=DMA1_Stream2
|
||||
Dma.ADC1.14.MemDataAlignment=DMA_MDATAALIGN_HALFWORD
|
||||
Dma.ADC1.14.MemInc=DMA_MINC_ENABLE
|
||||
Dma.ADC1.14.Mode=DMA_CIRCULAR
|
||||
Dma.ADC1.14.PeriphDataAlignment=DMA_PDATAALIGN_HALFWORD
|
||||
Dma.ADC1.14.PeriphInc=DMA_PINC_DISABLE
|
||||
Dma.ADC1.14.Polarity=HAL_DMAMUX_REQ_GEN_RISING
|
||||
Dma.ADC1.14.Priority=DMA_PRIORITY_LOW
|
||||
Dma.ADC1.14.RequestNumber=1
|
||||
Dma.ADC1.14.RequestParameters=Instance,Direction,PeriphInc,MemInc,PeriphDataAlignment,MemDataAlignment,Mode,Priority,FIFOMode,SignalID,Polarity,RequestNumber,SyncSignalID,SyncPolarity,SyncEnable,EventEnable,SyncRequestNumber
|
||||
Dma.ADC1.14.SignalID=NONE
|
||||
Dma.ADC1.14.SyncEnable=DISABLE
|
||||
Dma.ADC1.14.SyncPolarity=HAL_DMAMUX_SYNC_NO_EVENT
|
||||
Dma.ADC1.14.SyncRequestNumber=1
|
||||
Dma.ADC1.14.SyncSignalID=NONE
|
||||
Dma.Request0=USART10_RX
|
||||
Dma.Request1=USART10_TX
|
||||
Dma.Request10=USART3_TX
|
||||
Dma.Request11=SPI1_RX
|
||||
Dma.Request12=SPI1_TX
|
||||
Dma.Request13=UART5_RX
|
||||
Dma.Request14=ADC1
|
||||
Dma.Request2=SPI2_RX
|
||||
Dma.Request3=SPI2_TX
|
||||
Dma.Request4=UART7_RX
|
||||
@@ -40,7 +77,7 @@ Dma.Request6=USART1_TX
|
||||
Dma.Request7=USART2_RX
|
||||
Dma.Request8=USART2_TX
|
||||
Dma.Request9=USART3_RX
|
||||
Dma.RequestsNb=14
|
||||
Dma.RequestsNb=15
|
||||
Dma.SPI1_RX.11.Direction=DMA_PERIPH_TO_MEMORY
|
||||
Dma.SPI1_RX.11.EventEnable=DISABLE
|
||||
Dma.SPI1_RX.11.FIFOMode=DMA_FIFOMODE_DISABLE
|
||||
@@ -62,7 +99,7 @@ Dma.SPI1_RX.11.SyncSignalID=NONE
|
||||
Dma.SPI1_TX.12.Direction=DMA_MEMORY_TO_PERIPH
|
||||
Dma.SPI1_TX.12.EventEnable=DISABLE
|
||||
Dma.SPI1_TX.12.FIFOMode=DMA_FIFOMODE_DISABLE
|
||||
Dma.SPI1_TX.12.Instance=DMA1_Stream2
|
||||
Dma.SPI1_TX.12.Instance=DMA1_Stream3
|
||||
Dma.SPI1_TX.12.MemDataAlignment=DMA_MDATAALIGN_HALFWORD
|
||||
Dma.SPI1_TX.12.MemInc=DMA_MINC_ENABLE
|
||||
Dma.SPI1_TX.12.Mode=DMA_NORMAL
|
||||
@@ -80,7 +117,7 @@ Dma.SPI1_TX.12.SyncSignalID=NONE
|
||||
Dma.SPI2_RX.2.Direction=DMA_PERIPH_TO_MEMORY
|
||||
Dma.SPI2_RX.2.EventEnable=DISABLE
|
||||
Dma.SPI2_RX.2.FIFOMode=DMA_FIFOMODE_DISABLE
|
||||
Dma.SPI2_RX.2.Instance=DMA1_Stream3
|
||||
Dma.SPI2_RX.2.Instance=DMA1_Stream0
|
||||
Dma.SPI2_RX.2.MemDataAlignment=DMA_MDATAALIGN_BYTE
|
||||
Dma.SPI2_RX.2.MemInc=DMA_MINC_ENABLE
|
||||
Dma.SPI2_RX.2.Mode=DMA_NORMAL
|
||||
@@ -414,33 +451,34 @@ MMTAppRegionsCount=6
|
||||
MMTConfigApplied=false
|
||||
Mcu.CPN=STM32H723VGT6
|
||||
Mcu.Family=STM32H7
|
||||
Mcu.IP0=ADC3
|
||||
Mcu.IP1=CORTEX_M7
|
||||
Mcu.IP10=RCC
|
||||
Mcu.IP11=SPI1
|
||||
Mcu.IP12=SPI2
|
||||
Mcu.IP13=SPI6
|
||||
Mcu.IP14=SYS
|
||||
Mcu.IP15=TIM1
|
||||
Mcu.IP16=TIM3
|
||||
Mcu.IP17=TIM12
|
||||
Mcu.IP18=UART5
|
||||
Mcu.IP19=UART7
|
||||
Mcu.IP2=CRC
|
||||
Mcu.IP20=USART1
|
||||
Mcu.IP21=USART2
|
||||
Mcu.IP22=USART3
|
||||
Mcu.IP23=USART10
|
||||
Mcu.IP24=USB_DEVICE
|
||||
Mcu.IP25=USB_OTG_HS
|
||||
Mcu.IP3=DMA
|
||||
Mcu.IP4=FDCAN1
|
||||
Mcu.IP5=FDCAN2
|
||||
Mcu.IP6=FDCAN3
|
||||
Mcu.IP7=FREERTOS
|
||||
Mcu.IP8=MEMORYMAP
|
||||
Mcu.IP9=NVIC
|
||||
Mcu.IPNb=26
|
||||
Mcu.IP0=ADC1
|
||||
Mcu.IP1=ADC3
|
||||
Mcu.IP10=NVIC
|
||||
Mcu.IP11=RCC
|
||||
Mcu.IP12=SPI1
|
||||
Mcu.IP13=SPI2
|
||||
Mcu.IP14=SPI6
|
||||
Mcu.IP15=SYS
|
||||
Mcu.IP16=TIM1
|
||||
Mcu.IP17=TIM3
|
||||
Mcu.IP18=TIM12
|
||||
Mcu.IP19=UART5
|
||||
Mcu.IP2=CORTEX_M7
|
||||
Mcu.IP20=UART7
|
||||
Mcu.IP21=USART1
|
||||
Mcu.IP22=USART2
|
||||
Mcu.IP23=USART3
|
||||
Mcu.IP24=USART10
|
||||
Mcu.IP25=USB_DEVICE
|
||||
Mcu.IP26=USB_OTG_HS
|
||||
Mcu.IP3=CRC
|
||||
Mcu.IP4=DMA
|
||||
Mcu.IP5=FDCAN1
|
||||
Mcu.IP6=FDCAN2
|
||||
Mcu.IP7=FDCAN3
|
||||
Mcu.IP8=FREERTOS
|
||||
Mcu.IP9=MEMORYMAP
|
||||
Mcu.IPNb=27
|
||||
Mcu.Name=STM32H723VGTx
|
||||
Mcu.Package=LQFP100
|
||||
Mcu.Pin0=PE2
|
||||
@@ -450,67 +488,70 @@ Mcu.Pin11=PA2
|
||||
Mcu.Pin12=PA5
|
||||
Mcu.Pin13=PA6
|
||||
Mcu.Pin14=PA7
|
||||
Mcu.Pin15=PB1
|
||||
Mcu.Pin16=PE7
|
||||
Mcu.Pin17=PE8
|
||||
Mcu.Pin18=PE9
|
||||
Mcu.Pin19=PE10
|
||||
Mcu.Pin15=PC4
|
||||
Mcu.Pin16=PB1
|
||||
Mcu.Pin17=PE7
|
||||
Mcu.Pin18=PE8
|
||||
Mcu.Pin19=PE9
|
||||
Mcu.Pin2=PC14-OSC32_IN
|
||||
Mcu.Pin20=PE12
|
||||
Mcu.Pin21=PE13
|
||||
Mcu.Pin22=PE15
|
||||
Mcu.Pin23=PB10
|
||||
Mcu.Pin24=PB11
|
||||
Mcu.Pin25=PB13
|
||||
Mcu.Pin26=PB15
|
||||
Mcu.Pin27=PD8
|
||||
Mcu.Pin28=PD9
|
||||
Mcu.Pin29=PD10
|
||||
Mcu.Pin20=PE10
|
||||
Mcu.Pin21=PE12
|
||||
Mcu.Pin22=PE13
|
||||
Mcu.Pin23=PE15
|
||||
Mcu.Pin24=PB10
|
||||
Mcu.Pin25=PB11
|
||||
Mcu.Pin26=PB13
|
||||
Mcu.Pin27=PB15
|
||||
Mcu.Pin28=PD8
|
||||
Mcu.Pin29=PD9
|
||||
Mcu.Pin3=PC15-OSC32_OUT
|
||||
Mcu.Pin30=PD12
|
||||
Mcu.Pin31=PD13
|
||||
Mcu.Pin32=PA8
|
||||
Mcu.Pin33=PA9
|
||||
Mcu.Pin34=PA10
|
||||
Mcu.Pin35=PA11
|
||||
Mcu.Pin36=PA12
|
||||
Mcu.Pin37=PC10
|
||||
Mcu.Pin38=PC11
|
||||
Mcu.Pin39=PC12
|
||||
Mcu.Pin30=PD10
|
||||
Mcu.Pin31=PD12
|
||||
Mcu.Pin32=PD13
|
||||
Mcu.Pin33=PA8
|
||||
Mcu.Pin34=PA9
|
||||
Mcu.Pin35=PA10
|
||||
Mcu.Pin36=PA11
|
||||
Mcu.Pin37=PA12
|
||||
Mcu.Pin38=PC10
|
||||
Mcu.Pin39=PC11
|
||||
Mcu.Pin4=PH0-OSC_IN
|
||||
Mcu.Pin40=PD0
|
||||
Mcu.Pin41=PD1
|
||||
Mcu.Pin42=PD2
|
||||
Mcu.Pin43=PD4
|
||||
Mcu.Pin44=PD5
|
||||
Mcu.Pin45=PD6
|
||||
Mcu.Pin46=PD7
|
||||
Mcu.Pin47=PB3(JTDO/TRACESWO)
|
||||
Mcu.Pin48=PB4(NJTRST)
|
||||
Mcu.Pin49=PB5
|
||||
Mcu.Pin40=PC12
|
||||
Mcu.Pin41=PD0
|
||||
Mcu.Pin42=PD1
|
||||
Mcu.Pin43=PD2
|
||||
Mcu.Pin44=PD4
|
||||
Mcu.Pin45=PD5
|
||||
Mcu.Pin46=PD6
|
||||
Mcu.Pin47=PD7
|
||||
Mcu.Pin48=PB3(JTDO/TRACESWO)
|
||||
Mcu.Pin49=PB4(NJTRST)
|
||||
Mcu.Pin5=PH1-OSC_OUT
|
||||
Mcu.Pin50=PB6
|
||||
Mcu.Pin51=VP_ADC3_TempSens_Input
|
||||
Mcu.Pin52=VP_CRC_VS_CRC
|
||||
Mcu.Pin53=VP_FREERTOS_VS_CMSIS_V2
|
||||
Mcu.Pin54=VP_SYS_VS_tim23
|
||||
Mcu.Pin55=VP_TIM1_VS_ClockSourceINT
|
||||
Mcu.Pin56=VP_TIM1_VS_no_output3
|
||||
Mcu.Pin57=VP_USB_DEVICE_VS_USB_DEVICE_CDC_HS
|
||||
Mcu.Pin58=VP_MEMORYMAP_VS_MEMORYMAP
|
||||
Mcu.Pin59=VP_STMicroelectronics.X-CUBE-ALGOBUILD_VS_DSPOoLibraryJjLibrary_1.4.0_1.4.0
|
||||
Mcu.Pin50=PB5
|
||||
Mcu.Pin51=PB6
|
||||
Mcu.Pin52=VP_ADC3_TempSens_Input
|
||||
Mcu.Pin53=VP_CRC_VS_CRC
|
||||
Mcu.Pin54=VP_FREERTOS_VS_CMSIS_V2
|
||||
Mcu.Pin55=VP_SYS_VS_tim23
|
||||
Mcu.Pin56=VP_TIM1_VS_ClockSourceINT
|
||||
Mcu.Pin57=VP_TIM1_VS_no_output3
|
||||
Mcu.Pin58=VP_USB_DEVICE_VS_USB_DEVICE_CDC_HS
|
||||
Mcu.Pin59=VP_MEMORYMAP_VS_MEMORYMAP
|
||||
Mcu.Pin6=PC0
|
||||
Mcu.Pin60=VP_STMicroelectronics.X-CUBE-ALGOBUILD_VS_DSPOoLibraryJjLibrary_1.4.0_1.4.0
|
||||
Mcu.Pin7=PC1
|
||||
Mcu.Pin8=PC2_C
|
||||
Mcu.Pin9=PC3_C
|
||||
Mcu.PinsNb=60
|
||||
Mcu.PinsNb=61
|
||||
Mcu.ThirdParty0=STMicroelectronics.X-CUBE-ALGOBUILD.1.4.0
|
||||
Mcu.ThirdPartyNb=1
|
||||
Mcu.UserConstants=
|
||||
Mcu.UserName=STM32H723VGTx
|
||||
MxCube.Version=6.15.0
|
||||
MxDb.Version=DB.6.0.150
|
||||
NVIC.ADC_IRQn=true\:5\:0\:false\:false\:true\:true\:true\:true\:true
|
||||
NVIC.BusFault_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false\:false
|
||||
NVIC.DMA1_Stream0_IRQn=true\:5\:0\:false\:false\:true\:true\:false\:true\:true
|
||||
NVIC.DMA1_Stream1_IRQn=true\:5\:0\:false\:false\:true\:true\:false\:true\:true
|
||||
NVIC.DMA1_Stream2_IRQn=true\:5\:0\:false\:false\:true\:true\:false\:true\:true
|
||||
NVIC.DMA1_Stream3_IRQn=true\:5\:0\:false\:false\:true\:true\:false\:true\:true
|
||||
@@ -651,6 +692,8 @@ PC3_C.GPIO_Speed=GPIO_SPEED_FREQ_VERY_HIGH
|
||||
PC3_C.Locked=true
|
||||
PC3_C.PinState=GPIO_PIN_SET
|
||||
PC3_C.Signal=GPIO_Output
|
||||
PC4.Locked=true
|
||||
PC4.Signal=ADCx_INP4
|
||||
PD0.Mode=FDCAN_Activate
|
||||
PD0.Signal=FDCAN1_RX
|
||||
PD1.Mode=FDCAN_Activate
|
||||
@@ -756,7 +799,7 @@ ProjectManager.ToolChainLocation=
|
||||
ProjectManager.UAScriptAfterPath=
|
||||
ProjectManager.UAScriptBeforePath=
|
||||
ProjectManager.UnderRoot=false
|
||||
ProjectManager.functionlistsort=1-SystemClock_Config-RCC-false-HAL-false,2-MX_GPIO_Init-GPIO-false-HAL-true,3-MX_DMA_Init-DMA-false-HAL-true,4-MX_FDCAN2_Init-FDCAN2-false-HAL-true,5-MX_FDCAN3_Init-FDCAN3-false-HAL-true,6-MX_CRC_Init-CRC-false-HAL-true,7-MX_USB_DEVICE_Init-USB_DEVICE-false-HAL-false,8-MX_FDCAN1_Init-FDCAN1-false-HAL-true,9-MX_USART10_UART_Init-USART10-false-HAL-true,10-MX_SPI2_Init-SPI2-false-HAL-true,11-MX_TIM12_Init-TIM12-false-HAL-true,12-MX_UART7_Init-UART7-false-HAL-true,13-MX_TIM1_Init-TIM1-false-HAL-true,14-MX_USART1_UART_Init-USART1-false-HAL-true,15-MX_ADC3_Init-ADC3-false-HAL-true,16-MX_USART2_UART_Init-USART2-false-HAL-true,17-MX_USART3_UART_Init-USART3-false-HAL-true,18-MX_SPI1_Init-SPI1-false-HAL-true,19-MX_UART5_Init-UART5-false-HAL-true,20-MX_TIM3_Init-TIM3-false-HAL-true,21-MX_SPI6_Init-SPI6-false-HAL-true,0-MX_CORTEX_M7_Init-CORTEX_M7-false-HAL-true
|
||||
ProjectManager.functionlistsort=1-SystemClock_Config-RCC-false-HAL-false,2-MX_GPIO_Init-GPIO-false-HAL-true,3-MX_DMA_Init-DMA-false-HAL-true,4-MX_FDCAN2_Init-FDCAN2-false-HAL-true,5-MX_FDCAN3_Init-FDCAN3-false-HAL-true,6-MX_CRC_Init-CRC-false-HAL-true,7-MX_USB_DEVICE_Init-USB_DEVICE-false-HAL-false,8-MX_FDCAN1_Init-FDCAN1-false-HAL-true,9-MX_USART10_UART_Init-USART10-false-HAL-true,10-MX_SPI2_Init-SPI2-false-HAL-true,11-MX_TIM12_Init-TIM12-false-HAL-true,12-MX_UART7_Init-UART7-false-HAL-true,13-MX_TIM1_Init-TIM1-false-HAL-true,14-MX_USART1_UART_Init-USART1-false-HAL-true,15-MX_ADC3_Init-ADC3-false-HAL-true,16-MX_USART2_UART_Init-USART2-false-HAL-true,17-MX_USART3_UART_Init-USART3-false-HAL-true,18-MX_SPI1_Init-SPI1-false-HAL-true,19-MX_UART5_Init-UART5-false-HAL-true,20-MX_TIM3_Init-TIM3-false-HAL-true,21-MX_SPI6_Init-SPI6-false-HAL-true,22-MX_ADC1_Init-ADC1-false-HAL-true,0-MX_CORTEX_M7_Init-CORTEX_M7-false-HAL-true
|
||||
RCC.ADCFreq_Value=96000000
|
||||
RCC.AHB12Freq_Value=240000000
|
||||
RCC.AHB4Freq_Value=240000000
|
||||
@@ -840,6 +883,8 @@ RCC.VCO3OutputFreq_Value=96750000
|
||||
RCC.VCOInput1Freq_Value=12000000
|
||||
RCC.VCOInput2Freq_Value=12000000
|
||||
RCC.VCOInput3Freq_Value=750000
|
||||
SH.ADCx_INP4.0=ADC1_INP4,IN4-Single-Ended
|
||||
SH.ADCx_INP4.ConfNb=1
|
||||
SH.GPXTI10.0=GPIO_EXTI10
|
||||
SH.GPXTI10.ConfNb=1
|
||||
SH.GPXTI12.0=GPIO_EXTI12
|
||||
|
||||
@@ -1,5 +1,53 @@
|
||||
//
|
||||
// Created by tuxmonkey on 2025/10/28.
|
||||
//
|
||||
/* USER CODE BEGIN Header */
|
||||
/**
|
||||
******************************************************************************
|
||||
* @file : bsp_adc.c
|
||||
* @brief : bsp adc functions
|
||||
* @author : TuxMonkey
|
||||
* @date : 2025/11/22
|
||||
* @version : v1.0
|
||||
******************************************************************************
|
||||
* @attention : Pay attention to enable the adc
|
||||
******************************************************************************
|
||||
*/
|
||||
/* USER CODE END Header */
|
||||
|
||||
#include "bsp_adc.h"
|
||||
/* Includes ------------------------------------------------------------------*/
|
||||
#include "bsp_adc.h"
|
||||
#include "adc.h"
|
||||
|
||||
/**
|
||||
* @brief ADC sampling voltage array
|
||||
*/
|
||||
__attribute__((section (".AXI_SRAM"))) uint16_t ADC_Voltage_Val[2];
|
||||
|
||||
/**
|
||||
* @brief Configures the ADC.
|
||||
* @param None
|
||||
* @retval None
|
||||
*/
|
||||
void BSP_ADC_Init(void)
|
||||
{
|
||||
|
||||
HAL_ADCEx_Calibration_Start(&hadc1, ADC_CALIB_OFFSET, ADC_SINGLE_ENDED);
|
||||
HAL_ADC_Start_DMA(&hadc1, (uint32_t *) ADC_Voltage_Val, 2);
|
||||
|
||||
}
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
/**
|
||||
* @brief USER get current voltage.
|
||||
* @param None
|
||||
* @retval Voltage
|
||||
*/
|
||||
float USER_ADC_Voltage_Update(void)
|
||||
{
|
||||
|
||||
float Voltage;
|
||||
Voltage = (ADC_Voltage_Val[0] * 3.3f / 65535) * 11.0f;
|
||||
return Voltage;
|
||||
|
||||
}
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
@@ -1,8 +1,34 @@
|
||||
//
|
||||
// Created by tuxmonkey on 2025/10/28.
|
||||
//
|
||||
/* USER CODE BEGIN Header */
|
||||
/**
|
||||
******************************************************************************
|
||||
* @file : bsp_adc.h
|
||||
* @brief : The header file of bsp_adc.h
|
||||
* @author : TuxMonkey
|
||||
* @date : 2025/11/22
|
||||
* @version : v1.0
|
||||
******************************************************************************
|
||||
* @attention : Pay attention to config the clock source of the advanced TIM
|
||||
******************************************************************************
|
||||
*/
|
||||
/* USER CODE END Header */
|
||||
|
||||
#ifndef TRONONEH7_SCAFFOLD_BSP_ADC_H
|
||||
#define TRONONEH7_SCAFFOLD_BSP_ADC_H
|
||||
/* Define to prevent recursive inclusion -------------------------------------*/
|
||||
#ifndef BSP_ADC_H
|
||||
#define BSP_ADC_H
|
||||
|
||||
#endif //TRONONEH7_SCAFFOLD_BSP_ADC_H
|
||||
#ifdef __cplusplus
|
||||
extern "C"
|
||||
{
|
||||
|
||||
|
||||
|
||||
#endif
|
||||
|
||||
/* Includes ------------------------------------------------------------------*/
|
||||
#include "adc.h"
|
||||
|
||||
/* Externs ---------------------------------------------*/
|
||||
void BSP_ADC_Init(void);
|
||||
|
||||
float USER_ADC_Voltage_Update(void);
|
||||
#endif //BSP_ADC_H
|
||||
|
||||
Reference in New Issue
Block a user