HAL库uint8_t,uint16_t,uint32_t类型报错error: #20: identifier “uint32_t“ is undefined

uint8_t的报错为例

 error:  #20: identifier "uint8_t" is undefined

 找不到这个类型了

解决办法:

法1:

        在.h的文件添加:#include "stdint.h",对应.c文件开头都会有它的#include"模块.h"

        如果还不能解决就勾选微库 “Use Micro LIB”看看

法2:

        自己编写头文件声明这些类型,uint8_t等本质是typedef 定义的固定宽度整数类型,完全可以在自定义头文件中手动声明,无需依赖stdint.h

        示例自定义头文件(比如命名为my_typedef.h

#ifndef __MY_TYPEDEF_H
#define __MY_TYPEDEF_H

// 手动定义固定宽度类型,需根据MCU的位数(如32位STM32)匹配
typedef unsigned char  uint8_t;   // 无符号8位
typedef signed char    int8_t;    // 有符号8位
typedef unsigned short uint16_t;  // 无符号16位
typedef signed short   int16_t;   // 有符号16位
typedef unsigned int   uint32_t;  // 无符号32位(STM32中int为32位)
typedef signed int     int32_t;   // 有符号32位

#endif
#ifndef __SYS_H__
#define __SYS_H__

#include "stm32f4xx.h" 这个根据情况改
#include "stm32f4xx_hal.h" 这个根据情况改


typedef int32_t  s32;
typedef int16_t s16;
typedef int8_t  s8;

typedef const int32_t sc32;  
typedef const int16_t sc16;  
typedef const int8_t sc8;  

typedef __IO int32_t  vs32;
typedef __IO int16_t  vs16;
typedef __IO int8_t   vs8;

typedef __I int32_t vsc32;  
typedef __I int16_t vsc16; 
typedef __I int8_t vsc8;   

typedef uint32_t  u32;
typedef uint16_t u16;
typedef uint8_t  u8;

typedef const uint32_t uc32;  
typedef const uint16_t uc16;  
typedef const uint8_t uc8; 

typedef __IO uint32_t  vu32;
typedef __IO uint16_t vu16;
typedef __IO uint8_t  vu8;

typedef __I uint32_t vuc32;  
typedef __I uint16_t vuc16; 
typedef __I uint8_t vuc8; 

#endif

之后在需要的.h.c文件中包含#include "my_typedef.h"即可。但注意:手动定义需和 MCU 的架构匹配,通用性不如标准stdint.h

Build target &#39;Target 1&#39; compiling main.c... ..\STM32CubeF1\STM32Cube_FW_F1_V1.6.0\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal.h(296): error: #20: identifier "HAL_StatusTypeDef" is undefined HAL_StatusTypeDef HAL_Init(void); ..\STM32CubeF1\STM32Cube_FW_F1_V1.6.0\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal.h(297): error: #20: identifier "HAL_StatusTypeDef" is undefined HAL_StatusTypeDef HAL_DeInit(void); ..\STM32CubeF1\STM32Cube_FW_F1_V1.6.0\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal.h(300): error: #20: identifier "HAL_StatusTypeDef" is undefined HAL_StatusTypeDef HAL_InitTick(uint32_t TickPriority); ..\STM32CubeF1\STM32Cube_FW_F1_V1.6.0\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal.h(300): error: #20: identifier "uint32_t" is undefined HAL_StatusTypeDef HAL_InitTick(uint32_t TickPriority); ..\STM32CubeF1\STM32Cube_FW_F1_V1.6.0\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal.h(310): error: #20: identifier "uint32_t" is undefined void HAL_Delay(uint32_t Delay); ..\STM32CubeF1\STM32Cube_FW_F1_V1.6.0\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal.h(311): error: #20: identifier "uint32_t" is undefined uint32_t HAL_GetTick(void); ..\STM32CubeF1\STM32Cube_FW_F1_V1.6.0\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal.h(312): error: #20: identifier "uint32_t" is undefined uint32_t HAL_GetTickPrio(void); ..\STM32CubeF1\STM32Cube_FW_F1_V1.6.0\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal.h(313): error: #20: identifier "HAL_StatusTypeDef" is undefined HAL_StatusTypeDef HAL_SetTickFreq(HAL_TickFreqTypeDef Freq); ..\STM32CubeF1\STM32Cube_FW_F1_V1.6.0\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal.h(317): error: #20: identifier "uint32_t" is undefined uint32_t HAL_GetHalVersion(void); ..\STM32CubeF1\STM32Cube_FW_F1_V1.6.0\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal.h(318): error: #20: identifier "uint32_t" is undefined uint32_t HAL_GetREVID(void); ..\STM32CubeF1\STM32Cube_FW_F1_V1.6.0\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal.h(319): error: #20: identifier "uint32_t" is undefined uint32_t HAL_GetDEVID(void); ..\STM32CubeF1\STM32Cube_FW_F1_V1.6.0\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal.h(326): error: #20: identifier "uint32_t" is undefined void HAL_GetUID(uint32_t *UID); dht11.h(12): error: #20: identifier "GPIO_TypeDef" is undefined void DHT11_Init(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin); dht11.h(12): error: #20: identifier "uint16_t" is undefined void DHT11_Init(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin); dht11.h(13): error: #20: identifier "uint8_t" is undefined DHT11_Status DHT11_Read(uint8_t *temperature, uint8_t *humidity); dht11.h(13): error: #20: identifier "uint8_t" is undefined DHT11_Status DHT11_Read(uint8_t *temperature, uint8_t *humidity); main.c(9): error: #20: identifier "SPI_HandleTypeDef" is undefined extern SPI_HandleTypeDef hspi1; main.c(10): error: #20: identifier "TIM_HandleTypeDef" is undefined extern TIM_HandleTypeDef htim2; main.c(15): warning: #223-D: function "SystemClock_Config" declared implicitly SystemClock_Config(); main.c(16): warning: #223-D: function "MX_GPIO_Init" declared implicitly MX_GPIO_Init(); main.c(17): warning: #223-D: function "MX_SPI1_Init" declared implicitly MX_SPI1_Init(); // ??SPI??? main.c(18): warning: #223-D: function "MX_TIM2_Init" declared implicitly MX_TIM2_Init(); // ??TIM2??? main.c(24): error: #159: declaration is incompatible with previous "MX_TIM2_Init" (declared at line 18) static void MX_TIM2_Init(void) { main.c(25): error: #20: identifier "TIM_ClockConfigTypeDef" is undefined TIM_ClockConfigTypeDef sClockSourceConfig = {0}; main.c(26): error: #20: identifier "TIM_MasterConfigTypeDef" is undefined TIM_MasterConfigTypeDef sMasterConfig = {0}; main.c(28): error: #20: identifier "TIM2" is undefined htim2.Instance = TIM2; main.c(30): error: #20: identifier "TIM_COUNTERMODE_UP" is undefined htim2.Init.CounterMode = TIM_COUNTERMODE_UP; main.c(32): error: #20: identifier "TIM_CLOCKDIVISION_DIV1" is undefined htim2.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1; main.c(33): error: #20: identifier "TIM_AUTORELOAD_PRELOAD_DISABLE" is undefined htim2.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_DISABLE; main.c(34): warning: #223-D: function "HAL_TIM_Base_Init" declared implicitly if (HAL_TIM_Base_Init(&htim2) != HAL_OK) { main.c(34): error: #20: identifier "HAL_OK" is undefined if (HAL_TIM_Base_Init(&htim2) != HAL_OK) { main.c(35): warning: #223-D: function "Error_Handler" declared implicitly Error_Handler(); main.c(37): error: #20: identifier "TIM_CLOCKSOURCE_INTERNAL" is undefined sClockSourceConfig.ClockSource = TIM_CLOCKSOURCE_INTERNAL; main.c(38): warning: #223-D: function "HAL_TIM_ConfigClockSource" declared implicitly if (HAL_TIM_ConfigClockSource(&htim2, &sClockSourceConfig) != HAL_OK) { main.c(38): error: #20: identifier "HAL_OK" is undefined if (HAL_TIM_ConfigClockSource(&htim2, &sClockSourceConfig) != HAL_OK) { main.c(39): warning: #223-D: function "Error_Handler" declared implicitly Error_Handler(); main.c(41): error: #20: identifier "TIM_TRGO_RESET" is undefined sMasterConfig.MasterOutputTrigger = TIM_TRGO_RESET; main.c(42): error: #20: identifier "TIM_MASTERSLAVEMODE_DISABLE" is undefined sMasterConfig.MasterSlaveMode = TIM_MASTERSLAVEMODE_DISABLE; main.c: 8 warnings, 30 errors compiling dht11.c... ..\STM32CubeF1\STM32Cube_FW_F1_V1.6.0\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal.h(296): error: #20: identifier "HAL_StatusTypeDef" is undefined HAL_StatusTypeDef HAL_Init(void); ..\STM32CubeF1\STM32Cube_FW_F1_V1.6.0\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal.h(297): error: #20: identifier "HAL_StatusTypeDef" is undefined HAL_StatusTypeDef HAL_DeInit(void); ..\STM32CubeF1\STM32Cube_FW_F1_V1.6.0\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal.h(300): error: #20: identifier "HAL_StatusTypeDef" is undefined HAL_StatusTypeDef HAL_InitTick(uint32_t TickPriority); ..\STM32CubeF1\STM32Cube_FW_F1_V1.6.0\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal.h(300): error: #20: identifier "uint32_t" is undefined HAL_StatusTypeDef HAL_InitTick(uint32_t TickPriority); ..\STM32CubeF1\STM32Cube_FW_F1_V1.6.0\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal.h(310): error: #20: identifier "uint32_t" is undefined void HAL_Delay(uint32_t Delay); ..\STM32CubeF1\STM32Cube_FW_F1_V1.6.0\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal.h(311): error: #20: identifier "uint32_t" is undefined uint32_t HAL_GetTick(void); ..\STM32CubeF1\STM32Cube_FW_F1_V1.6.0\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal.h(312): error: #20: identifier "uint32_t" is undefined uint32_t HAL_GetTickPrio(void); ..\STM32CubeF1\STM32Cube_FW_F1_V1.6.0\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal.h(313): error: #20: identifier "HAL_StatusTypeDef" is undefined HAL_StatusTypeDef HAL_SetTickFreq(HAL_TickFreqTypeDef Freq); ..\STM32CubeF1\STM32Cube_FW_F1_V1.6.0\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal.h(317): error: #20: identifier "uint32_t" is undefined uint32_t HAL_GetHalVersion(void); ..\STM32CubeF1\STM32Cube_FW_F1_V1.6.0\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal.h(318): error: #20: identifier "uint32_t" is undefined uint32_t HAL_GetREVID(void); ..\STM32CubeF1\STM32Cube_FW_F1_V1.6.0\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal.h(319): error: #20: identifier "uint32_t" is undefined uint32_t HAL_GetDEVID(void); ..\STM32CubeF1\STM32Cube_FW_F1_V1.6.0\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal.h(326): error: #20: identifier "uint32_t" is undefined void HAL_GetUID(uint32_t *UID); dht11.h(12): error: #20: identifier "GPIO_TypeDef" is undefined void DHT11_Init(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin); dht11.h(12): error: #20: identifier "uint16_t" is undefined void DHT11_Init(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin); dht11.h(13): error: #20: identifier "uint8_t" is undefined DHT11_Status DHT11_Read(uint8_t *temperature, uint8_t *humidity); dht11.h(13): error: #20: identifier "uint8_t" is undefined DHT11_Status DHT11_Read(uint8_t *temperature, uint8_t *humidity); dht11.c(7): warning: #223-D: function "__HAL_TIM_SET_COUNTER" declared implicitly __HAL_TIM_SET_COUNTER(&htim2, 0); dht11.c(7): error: #20: identifier "htim2" is undefined __HAL_TIM_SET_COUNTER(&htim2, 0); dht11.c(8): warning: #223-D: function "HAL_TIM_Base_Start" declared implicitly HAL_TIM_Base_Start(&htim2); dht11.c(9): warning: #223-D: function "__HAL_TIM_GET_COUNTER" declared implicitly while (__HAL_TIM_GET_COUNTER(&htim2) < us); dht11.c(10): warning: #223-D: function "HAL_TIM_Base_Stop" declared implicitly HAL_TIM_Base_Stop(&htim2); dht11.c(6): warning: #177-D: function "delay_us" was declared but never referenced static void delay_us(uint16_t us) { dht11.c: 5 warnings, 17 errors compiling buzzer.c... ..\STM32CubeF1\STM32Cube_FW_F1_V1.6.0\Drivers\CMSIS\Device\ST\STM32F1xx\Include\stm32f1xx.h(159): error: #35: #error directive: "Please select first the target STM32F1xx device used in your application (in stm32f1xx.h file)" #error "Please select first the target STM32F1xx device used in your application (in stm32f1xx.h file)" buzzer.c: 0 warnings, 1 error compiling TFT_GFX.c... ..\STM32CubeF1\STM32Cube_FW_F1_V1.6.0\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal.h(296): error: #20: identifier "HAL_StatusTypeDef" is undefined HAL_StatusTypeDef HAL_Init(void); ..\STM32CubeF1\STM32Cube_FW_F1_V1.6.0\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal.h(297): error: #20: identifier "HAL_StatusTypeDef" is undefined HAL_StatusTypeDef HAL_DeInit(void); ..\STM32CubeF1\STM32Cube_FW_F1_V1.6.0\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal.h(300): error: #20: identifier "HAL_StatusTypeDef" is undefined HAL_StatusTypeDef HAL_InitTick(uint32_t TickPriority); ..\STM32CubeF1\STM32Cube_FW_F1_V1.6.0\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal.h(300): error: #20: identifier "uint32_t" is undefined HAL_StatusTypeDef HAL_InitTick(uint32_t TickPriority); ..\STM32CubeF1\STM32Cube_FW_F1_V1.6.0\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal.h(310): error: #20: identifier "uint32_t" is undefined void HAL_Delay(uint32_t Delay); ..\STM32CubeF1\STM32Cube_FW_F1_V1.6.0\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal.h(311): error: #20: identifier "uint32_t" is undefined uint32_t HAL_GetTick(void); ..\STM32CubeF1\STM32Cube_FW_F1_V1.6.0\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal.h(312): error: #20: identifier "uint32_t" is undefined uint32_t HAL_GetTickPrio(void); ..\STM32CubeF1\STM32Cube_FW_F1_V1.6.0\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal.h(313): error: #20: identifier "HAL_StatusTypeDef" is undefined HAL_StatusTypeDef HAL_SetTickFreq(HAL_TickFreqTypeDef Freq); ..\STM32CubeF1\STM32Cube_FW_F1_V1.6.0\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal.h(317): error: #20: identifier "uint32_t" is undefined uint32_t HAL_GetHalVersion(void); ..\STM32CubeF1\STM32Cube_FW_F1_V1.6.0\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal.h(318): error: #20: identifier "uint32_t" is undefined uint32_t HAL_GetREVID(void); ..\STM32CubeF1\STM32Cube_FW_F1_V1.6.0\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal.h(319): error: #20: identifier "uint32_t" is undefined uint32_t HAL_GetDEVID(void); ..\STM32CubeF1\STM32Cube_FW_F1_V1.6.0\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal.h(326): error: #20: identifier "uint32_t" is undefined void HAL_GetUID(uint32_t *UID); TFT_GFX.c(2): error: #5: cannot open source input file "spi.h": No such file or directory #include "spi.h" TFT_GFX.c: 0 warnings, 13 errors compiling TFT_FONTS.c... TFT_FONTS.c(5): error: #20: identifier "Font8x16_Data" is undefined FontDef Font_8x16 = {8, 16, Font8x16_Data}; TFT_FONTS.c: 0 warnings, 1 error ".\Objects\zuoye.axf" - 62 Error(s), 13 Warning(s). Target not created. Build Time Elapsed: 00:00:01
06-26
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值