This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

.h file issue

Hello world,

OS: Window 7
IDE: Keil 5 and STM32CUBEMX
MCU: STM32F303CB
Goal: Use PA1 as GPIO output to blink LED

Keil throws this error when build blink code:

*** Using Compiler 'V5.06 update 6 (build 750)', folder: 'C:\Keil_v5\ARM\ARMCC\Bin'
Rebuild target 'STCubeGenerated'
assembling startup_stm32f303xc.s...
compiling main.c...
../Src/main.c(82): error: #5: cannot open source input file "stm32.h": No such file or directory #include "stm32.h"
../Src/main.c: 0 warnings, 1 error

Question:
Is my "stm32.h" in the correct folder?
Here's the current path Keil 5 added to project

Project:STCubeGenerated->STCubeGenertated->Application/.User->stm32fxx_hal_msp.c->stm32.h

Here main.c:

#include "main.h"
#include "stm32f3xx_hal.h"

//*****************************************************************************

/* USER CODE END Includes */

/* Private variables ---------------------------------------------------------*/

/* USER CODE BEGIN PV */
/* Private variables ---------------------------------------------------------*/

/* USER CODE END PV */

/* Private function prototypes -----------------------------------------------*/
void SystemClock_Config(void);
static void MX_GPIO_Init(void);

/* USER CODE BEGIN PFP */
/* Private function prototypes -----------------------------------------------*/

/* USER CODE END PFP */

/* USER CODE BEGIN 0 */

/* USER CODE END 0 */

/** * @brief The application entry point. * * @retval None */ /* USER CODE BEGIN 1 */
/* USER CODE BEGIN Includes */
//*****************************************************************************
//! Blink onboard LED on STM32F303BC ARM dev ESC board
//! \file main.c
//! \6/28/18
//! \John Gonsalves

#include "stm32.h"
void delay(); //Fun Declared

int main(void)
{

void main()
{ while(1) { P1 = 0x00; //LED off delay(); P1 = 0xff: //LED on delay(); }
}

void delay() //Fun Defined
{ unsigned int a; for (a=0;a<1000;a++);
}

/* USER CODE END 1 */

/* MCU Configuration----------------------------------------------------------*/

/* Reset of all peripherals, Initializes the Flash interface and the Systick. */ HAL_Init();

/* USER CODE BEGIN Init */

/* USER CODE END Init */

/* Configure the system clock */ SystemClock_Config();

/* USER CODE BEGIN SysInit */

/* USER CODE END SysInit */

/* Initialize all configured peripherals */ MX_GPIO_Init(); /* USER CODE BEGIN 2 */

/* USER CODE END 2 */

/* Infinite loop */ /* USER CODE BEGIN WHILE */ while (1) {

/* USER CODE END WHILE */

/* USER CODE BEGIN 3 */

} /* USER CODE END 3 */

}

/** * @brief System Clock Configuration * @retval None */
void SystemClock_Config(void)
{

RCC_OscInitTypeDef RCC_OscInitStruct; RCC_ClkInitTypeDef RCC_ClkInitStruct;

/**Initializes the CPU, AHB and APB busses clocks */ RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSI; RCC_OscInitStruct.HSIState = RCC_HSI_ON; RCC_OscInitStruct.HSICalibrationValue = 16; RCC_OscInitStruct.PLL.PLLState = RCC_PLL_NONE; if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK) { _Error_Handler(__FILE__, __LINE__); }

/**Initializes the CPU, AHB and APB busses clocks */ RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK|RCC_CLOCKTYPE_SYSCLK |RCC_CLOCKTYPE_PCLK1|RCC_CLOCKTYPE_PCLK2; RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_HSI; RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1; RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV1; RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV1;

if (HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_0) != HAL_OK) { _Error_Handler(__FILE__, __LINE__); }

/**Configure the Systick interrupt time */ HAL_SYSTICK_Config(HAL_RCC_GetHCLKFreq()/1000);

/**Configure the Systick */ HAL_SYSTICK_CLKSourceConfig(SYSTICK_CLKSOURCE_HCLK);

/* SysTick_IRQn interrupt configuration */ HAL_NVIC_SetPriority(SysTick_IRQn, 0, 0);
}

/** Configure pins as * Analog * Input * Output * EVENT_OUT * EXTI
*/
static void MX_GPIO_Init(void)
{

GPIO_InitTypeDef GPIO_InitStruct;

/* GPIO Ports Clock Enable */ __HAL_RCC_GPIOA_CLK_ENABLE();

/*Configure GPIO pin Output Level */ HAL_GPIO_WritePin(GPIOA, GPIO_PIN_1|GPIO_PIN_13, GPIO_PIN_RESET);

/*Configure GPIO pins : PA1 PA13 */ GPIO_InitStruct.Pin = GPIO_PIN_1|GPIO_PIN_13; GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; GPIO_InitStruct.Pull = GPIO_NOPULL; GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);

}

/* USER CODE BEGIN 4 */

/* USER CODE END 4 */

/** * @brief This function is executed in case of error occurrence. * @param file: The file name as string. * @param line: The line in file as a number. * @retval None */
void _Error_Handler(char *file, int line)
{ /* USER CODE BEGIN Error_Handler_Debug */ /* User can add his own implementation to report the HAL error return state */ while(1) { } /* USER CODE END Error_Handler_Debug */
}

#ifdef USE_FULL_ASSERT
/** * @brief Reports the name of the source file and the source line number * where the assert_param error has occurred. * @param file: pointer to the source file name * @param line: assert_param error line source number * @retval None */
void assert_failed(uint8_t* file, uint32_t line)
{ /* USER CODE BEGIN 6 */ /* User can add his own implementation to report the file name and line number, tex: printf("Wrong parameters value: file %s on line %d\r\n", file, line) */ /* USER CODE END 6 */
} #endif /* USE_FULL_ASSERT */

/** * @} */

/** * @} */

/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/