mirror of
https://github.com/IcedRooibos/py32f0-template.git
synced 2025-10-29 08:52:04 -07:00
refactor: update adc dma example
This commit is contained in:
parent
7fcfcdbb2f
commit
c920de408e
@ -25,6 +25,7 @@
|
|||||||
#include "py32f0xx_bsp_printf.h"
|
#include "py32f0xx_bsp_printf.h"
|
||||||
|
|
||||||
/* Private define ------------------------------------------------------------*/
|
/* Private define ------------------------------------------------------------*/
|
||||||
|
#define BUF_SIZE 1024
|
||||||
/* Private variables ---------------------------------------------------------*/
|
/* Private variables ---------------------------------------------------------*/
|
||||||
/* Private user code ---------------------------------------------------------*/
|
/* Private user code ---------------------------------------------------------*/
|
||||||
/* Private macro -------------------------------------------------------------*/
|
/* Private macro -------------------------------------------------------------*/
|
||||||
@ -38,7 +39,7 @@ ADC_ChannelConfTypeDef sConfig;
|
|||||||
TIM_HandleTypeDef TimHandle;
|
TIM_HandleTypeDef TimHandle;
|
||||||
TIM_OC_InitTypeDef OCConfig;
|
TIM_OC_InitTypeDef OCConfig;
|
||||||
TIM_MasterConfigTypeDef sMasterConfig;
|
TIM_MasterConfigTypeDef sMasterConfig;
|
||||||
uint32_t gADCxConvertedData = 1;
|
uint32_t gADCxConvertedData[BUF_SIZE];
|
||||||
|
|
||||||
/* Private user code ---------------------------------------------------------*/
|
/* Private user code ---------------------------------------------------------*/
|
||||||
/* Private macro -------------------------------------------------------------*/
|
/* Private macro -------------------------------------------------------------*/
|
||||||
@ -57,8 +58,8 @@ int main(void)
|
|||||||
{
|
{
|
||||||
if (__HAL_DMA_GET_FLAG(DMA1, DMA_ISR_TCIF1))
|
if (__HAL_DMA_GET_FLAG(DMA1, DMA_ISR_TCIF1))
|
||||||
{
|
{
|
||||||
|
printf("ADC: %ld %ld %ld\r\n", *gADCxConvertedData, *(gADCxConvertedData + 1), *(gADCxConvertedData + 2));
|
||||||
__HAL_DMA_CLEAR_FLAG(DMA1, DMA_IFCR_CTCIF1);
|
__HAL_DMA_CLEAR_FLAG(DMA1, DMA_IFCR_CTCIF1);
|
||||||
printf("ADC: %ld \r\n", gADCxConvertedData);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -77,7 +78,7 @@ static void APP_AdcConfig(void)
|
|||||||
|
|
||||||
AdcHandle.Instance = ADC1;
|
AdcHandle.Instance = ADC1;
|
||||||
AdcHandle.Init.ClockPrescaler = ADC_CLOCK_SYNC_PCLK_DIV1; /* ADC clock */
|
AdcHandle.Init.ClockPrescaler = ADC_CLOCK_SYNC_PCLK_DIV1; /* ADC clock */
|
||||||
AdcHandle.Init.Resolution = ADC_RESOLUTION_12B; /* Resolution can be 6bit, 8bit, 10bit, 12bit */
|
AdcHandle.Init.Resolution = ADC_RESOLUTION_12B; /* Valid resolution is around 8 bit */
|
||||||
AdcHandle.Init.DataAlign = ADC_DATAALIGN_RIGHT; /* Right alignment */
|
AdcHandle.Init.DataAlign = ADC_DATAALIGN_RIGHT; /* Right alignment */
|
||||||
AdcHandle.Init.ScanConvMode = ADC_SCAN_DIRECTION_BACKWARD;
|
AdcHandle.Init.ScanConvMode = ADC_SCAN_DIRECTION_BACKWARD;
|
||||||
AdcHandle.Init.EOCSelection = ADC_EOC_SINGLE_CONV;
|
AdcHandle.Init.EOCSelection = ADC_EOC_SINGLE_CONV;
|
||||||
@ -101,7 +102,7 @@ static void APP_AdcConfig(void)
|
|||||||
APP_ErrorHandler();
|
APP_ErrorHandler();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (HAL_ADC_Start_DMA(&AdcHandle, &gADCxConvertedData, 1) != HAL_OK)
|
if (HAL_ADC_Start_DMA(&AdcHandle, gADCxConvertedData, BUF_SIZE) != HAL_OK)
|
||||||
{
|
{
|
||||||
APP_ErrorHandler();
|
APP_ErrorHandler();
|
||||||
}
|
}
|
||||||
|
|||||||
@ -29,7 +29,6 @@
|
|||||||
/* Private macro -------------------------------------------------------------*/
|
/* Private macro -------------------------------------------------------------*/
|
||||||
/* Private variables ---------------------------------------------------------*/
|
/* Private variables ---------------------------------------------------------*/
|
||||||
static DMA_HandleTypeDef HdmaCh1;
|
static DMA_HandleTypeDef HdmaCh1;
|
||||||
extern uint32_t aADCxConvertedData;
|
|
||||||
/* Private function prototypes -----------------------------------------------*/
|
/* Private function prototypes -----------------------------------------------*/
|
||||||
/* External functions --------------------------------------------------------*/
|
/* External functions --------------------------------------------------------*/
|
||||||
|
|
||||||
@ -56,27 +55,16 @@ void HAL_ADC_MspInit(ADC_HandleTypeDef *hadc)
|
|||||||
GPIO_InitStruct.Pull = GPIO_NOPULL;
|
GPIO_InitStruct.Pull = GPIO_NOPULL;
|
||||||
HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
|
HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
|
||||||
|
|
||||||
/*
|
HAL_SYSCFG_DMA_Req(DMA_CHANNEL_MAP_ADC); /* DMA1_MAP Set to ADC */
|
||||||
* DMA1_MAP:
|
|
||||||
* 00000:ADC 00001:SPI1_TX 00010:SPI1_RX 00011:Reserved
|
|
||||||
* 00100:Reserved 00101:USART1_TX 00110:USART1_RX 00111:USART2_TX
|
|
||||||
* 01000:USART2_RX 01001:I2C_TX 01010:I2C_RX 01011:TIM1_CH1
|
|
||||||
* 01100:TIM1_CH2 01101:TIM1_CH3 01110:TIM1_CH4 01111:TIM1_COM
|
|
||||||
* 10000:TIM1_UP 10001:TIM1_TRIG 10010:TIM3_CH1 10011:TIM3_CH3
|
|
||||||
* 10100:TIM3_CH4 10101:TIM3_TRG 10110:TIM3_UP 10111:Reserved
|
|
||||||
* 11000:TIM16_CH1 11001:TIM16_UP 11010:TIM17_CH1 11011:TIM17_UP
|
|
||||||
* Others:Reserved
|
|
||||||
*/
|
|
||||||
HAL_SYSCFG_DMA_Req(0); /* DMA1_MAP Set to ADC */
|
|
||||||
|
|
||||||
HdmaCh1.Instance = DMA1_Channel1;
|
HdmaCh1.Instance = DMA1_Channel1;
|
||||||
HdmaCh1.Init.Direction = DMA_PERIPH_TO_MEMORY;
|
HdmaCh1.Init.Direction = DMA_PERIPH_TO_MEMORY;
|
||||||
HdmaCh1.Init.PeriphInc = DMA_PINC_DISABLE;
|
HdmaCh1.Init.PeriphInc = DMA_PINC_DISABLE;
|
||||||
HdmaCh1.Init.MemInc = DMA_MINC_DISABLE;
|
HdmaCh1.Init.MemInc = DMA_MINC_ENABLE;
|
||||||
HdmaCh1.Init.PeriphDataAlignment = DMA_PDATAALIGN_HALFWORD;
|
HdmaCh1.Init.PeriphDataAlignment = DMA_PDATAALIGN_HALFWORD;
|
||||||
HdmaCh1.Init.MemDataAlignment = DMA_MDATAALIGN_HALFWORD;
|
HdmaCh1.Init.MemDataAlignment = DMA_MDATAALIGN_WORD;
|
||||||
HdmaCh1.Init.Mode = DMA_CIRCULAR;
|
HdmaCh1.Init.Mode = DMA_CIRCULAR;
|
||||||
HdmaCh1.Init.Priority = DMA_PRIORITY_VERY_HIGH;
|
HdmaCh1.Init.Priority = DMA_PRIORITY_HIGH;
|
||||||
|
|
||||||
HAL_DMA_DeInit(&HdmaCh1);
|
HAL_DMA_DeInit(&HdmaCh1);
|
||||||
HAL_DMA_Init(&HdmaCh1);
|
HAL_DMA_Init(&HdmaCh1);
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user