STM32BluePill ADC & PWM(TM2)
Configuración STM32cube
Configuración del PWM Timer2
Configuración del PWM Timer2
Configuración ADC
//Código
#include "main.h"
uint16_t AD_RES = 0;
/* Private variables ---------------------------------------------------------*/
ADC_HandleTypeDef hadc1;
TIM_HandleTypeDef htim2;
/* Private function prototypes -----------------------------------------------*/
void SystemClock_Config(void);
static void MX_GPIO_Init(void);
static void MX_ADC1_Init(void);
static void MX_TIM2_Init(void);
int main(void)
{
HAL_Init();
/* Configure the system clock */
SystemClock_Config();
/* Initialize all configured peripherals */
MX_GPIO_Init();
MX_ADC1_Init();
MX_TIM2_Init();
HAL_TIM_PWM_Start(&htim2,TIM_CHANNEL_2);
TIM2->CCR2 = 0;
HAL_ADCEx_Calibration_Start(&hadc1);
while (1)
{
/* USER CODE END WHILE */
HAL_ADC_Start(&hadc1);
HAL_ADC_PollForConversion(&hadc1, 1);
AD_RES = HAL_ADC_GetValue(&hadc1);
TIM2->CCR2 = (AD_RES<<4);
HAL_Delay(1);
}
}
#include "main.h"
uint16_t AD_RES = 0;
/* Private variables ---------------------------------------------------------*/
ADC_HandleTypeDef hadc1;
TIM_HandleTypeDef htim2;
/* Private function prototypes -----------------------------------------------*/
void SystemClock_Config(void);
static void MX_GPIO_Init(void);
static void MX_ADC1_Init(void);
static void MX_TIM2_Init(void);
int main(void)
{
HAL_Init();
/* Configure the system clock */
SystemClock_Config();
/* Initialize all configured peripherals */
MX_GPIO_Init();
MX_ADC1_Init();
MX_TIM2_Init();
HAL_TIM_PWM_Start(&htim2,TIM_CHANNEL_2);
TIM2->CCR2 = 0;
HAL_ADCEx_Calibration_Start(&hadc1);
while (1)
{
/* USER CODE END WHILE */
HAL_ADC_Start(&hadc1);
HAL_ADC_PollForConversion(&hadc1, 1);
AD_RES = HAL_ADC_GetValue(&hadc1);
TIM2->CCR2 = (AD_RES<<4);
HAL_Delay(1);
}
}