nulllab_w80x_arduino
nulllab_w80x_arduino copied to clipboard
ADC_Init problem when I try to run the code below MCU did not respond
#include <stdio.h> #include <Arduino.h> //#include "wm_hal.h"
void Error_Handler(void); static void ADC_Init(void); ADC_HandleTypeDef hadc;
static void ADC_Init(void) { hadc.Instance = ADC; hadc.Init.channel = ADC_CHANNEL_0; hadc.Init.freq = 500;
if (HAL_ADC_Init(&hadc) != HAL_OK) { Error_Handler(); } }
static void GPIO_blinktest_Init(void) { GPIO_InitTypeDef GPIO_InitStruct = {}; __HAL_RCC_GPIO_CLK_ENABLE(); GPIO_InitStruct.Pin = GPIO_PIN_0 | GPIO_PIN_1 | GPIO_PIN_2; GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT; GPIO_InitStruct.Pull = GPIO_NOPULL; HAL_GPIO_Init(GPIOB, &GPIO_InitStruct); HAL_GPIO_WritePin(GPIOB, GPIO_PIN_0 | GPIO_PIN_1 | GPIO_PIN_2, GPIO_PIN_SET); GPIO_InitStruct.Pin = GPIO_PIN_5; GPIO_InitStruct.Mode = GPIO_MODE_IT_FALLING; GPIO_InitStruct.Pull = GPIO_PULLUP; HAL_GPIO_Init(GPIOB, &GPIO_InitStruct); HAL_NVIC_SetPriority(GPIOB_IRQn, 0); HAL_NVIC_EnableIRQ(GPIOB_IRQn); } void setup() { SystemClock_Config(CPU_CLK_160M); HAL_Init(); printf("enter main\r\n"); GPIO_blinktest_Init(); ADC_Init(); }
static uint8_t key_flag = 0; void loop() { int value; double voltage = 0.0; while (1) {
key_flag++;
if (key_flag % 3 == 0)
{
HAL_GPIO_WritePin(GPIOB, GPIO_PIN_0, (GPIO_PinState)0);
HAL_GPIO_WritePin(GPIOB, GPIO_PIN_1, (GPIO_PinState)1);
HAL_GPIO_WritePin(GPIOB, GPIO_PIN_2, (GPIO_PinState)1);
}
else if (key_flag % 3 == 1)
{
HAL_GPIO_WritePin(GPIOB, GPIO_PIN_0, (GPIO_PinState)0);
HAL_GPIO_WritePin(GPIOB, GPIO_PIN_1, (GPIO_PinState)1);
HAL_GPIO_WritePin(GPIOB, GPIO_PIN_2, (GPIO_PinState)0);
} else
{
HAL_GPIO_WritePin(GPIOB, GPIO_PIN_0, (GPIO_PinState)1);
HAL_GPIO_WritePin(GPIOB, GPIO_PIN_1, (GPIO_PinState)1);
HAL_GPIO_WritePin(GPIOB, GPIO_PIN_2, (GPIO_PinState)0);
}
value = HAL_ADC_GET_INPUT_VOLTAGE(&hadc);
printf("value = %dmv\r\n", value);
HAL_Delay(1000);
} }