stm32中stm32f10x_type.h(固件3.0以前)、stm32f10x.h(固件3.0以后)、stdint.h文件的关系

来源:互联网 发布:无线通信网络系统 编辑:程序博客网 时间:2024/05/18 11:46

在stm32f10x的3.5固件库中stm32f10x.h有以下代码(第478行开始):

/**  * @}  */#include "core_cm3.h"#include "system_stm32f10x.h"#include <stdint.h>/** @addtogroup Exported_types  * @{  */  /*!< STM32F10x Standard Peripheral Library old types (maintained for legacy purpose) */typedef int32_t  s32;typedef int16_t s16;typedef int8_t  s8;typedef const int32_t sc32;  /*!< Read Only */typedef const int16_t sc16;  /*!< Read Only */typedef const int8_t sc8;   /*!< Read Only */typedef __IO int32_t  vs32;typedef __IO int16_t  vs16;typedef __IO int8_t   vs8;typedef __I int32_t vsc32;  /*!< Read Only */typedef __I int16_t vsc16;  /*!< Read Only */typedef __I int8_t vsc8;   /*!< Read Only */typedef uint32_t  u32;typedef uint16_t u16;typedef uint8_t  u8;typedef const uint32_t uc32;  /*!< Read Only */typedef const uint16_t uc16;  /*!< Read Only */typedef const uint8_t uc8;   /*!< Read Only */typedef __IO uint32_t  vu32;typedef __IO uint16_t vu16;typedef __IO uint8_t  vu8;typedef __I uint32_t vuc32;  /*!< Read Only */typedef __I uint16_t vuc16;  /*!< Read Only */typedef __I uint8_t vuc8;   /*!< Read Only */typedef enum {RESET = 0, SET = !RESET} FlagStatus, ITStatus;typedef enum {DISABLE = 0, ENABLE = !DISABLE} FunctionalState;#define IS_FUNCTIONAL_STATE(STATE) (((STATE) == DISABLE) || ((STATE) == ENABLE))typedef enum {ERROR = 0, SUCCESS = !ERROR} ErrorStatus;/*!< STM32F10x Standard Peripheral Library old definitions (maintained for legacy purpose) */#define HSEStartUp_TimeOut   HSE_STARTUP_TIMEOUT#define HSE_Value            HSE_VALUE#define HSI_Value            HSI_VALUE/**  * @}  */


在stm32f10x的2.0.2固件库stm32f10x_type.h中有以下代码:

/******************** (C) COPYRIGHT 2008 STMicroelectronics ********************* File Name          : stm32f10x_type.h* Author             : MCD Application Team* Version            : V2.0.2* Date               : 07/11/2008* Description        : This file contains all the common data types used for the*                      STM32F10x firmware library.********************************************************************************* THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS* WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE TIME.* AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY DIRECT,* INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING FROM THE* CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE CODING* INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS.*******************************************************************************//* Define to prevent recursive inclusion -------------------------------------*/#ifndef __STM32F10x_TYPE_H#define __STM32F10x_TYPE_H/* Includes ------------------------------------------------------------------*//* Exported types ------------------------------------------------------------*/typedef signed long  s32;typedef signed short s16;typedef signed char  s8;typedef signed long  const sc32;  /* Read Only */typedef signed short const sc16;  /* Read Only */typedef signed char  const sc8;   /* Read Only */typedef volatile signed long  vs32;typedef volatile signed short vs16;typedef volatile signed char  vs8;typedef volatile signed long  const vsc32;  /* Read Only */typedef volatile signed short const vsc16;  /* Read Only */typedef volatile signed char  const vsc8;   /* Read Only */typedef unsigned long  u32;typedef unsigned short u16;typedef unsigned char  u8;typedef unsigned long  const uc32;  /* Read Only */typedef unsigned short const uc16;  /* Read Only */typedef unsigned char  const uc8;   /* Read Only */typedef volatile unsigned long  vu32;typedef volatile unsigned short vu16;typedef volatile unsigned char  vu8;typedef volatile unsigned long  const vuc32;  /* Read Only */typedef volatile unsigned short const vuc16;  /* Read Only */typedef volatile unsigned char  const vuc8;   /* Read Only */typedef enum {FALSE = 0, TRUE = !FALSE} bool;typedef enum {RESET = 0, SET = !RESET} FlagStatus, ITStatus;typedef enum {DISABLE = 0, ENABLE = !DISABLE} FunctionalState;#define IS_FUNCTIONAL_STATE(STATE) (((STATE) == DISABLE) || ((STATE) == ENABLE))typedef enum {ERROR = 0, SUCCESS = !ERROR} ErrorStatus;#define U8_MAX     ((u8)255)#define S8_MAX     ((s8)127)#define S8_MIN     ((s8)-128)#define U16_MAX    ((u16)65535u)#define S16_MAX    ((s16)32767)#define S16_MIN    ((s16)-32768)#define U32_MAX    ((u32)4294967295uL)#define S32_MAX    ((s32)2147483647)#define S32_MIN    ((s32)-2147483648)/* Exported constants --------------------------------------------------------*//* Exported macro ------------------------------------------------------------*//* Exported functions ------------------------------------------------------- */#endif /* __STM32F10x_TYPE_H *//******************* (C) COPYRIGHT 2008 STMicroelectronics *****END OF FILE****/


所以在3.0以后的库中,不再含有stm32f10x_type.h文件了,也不需要了


#include <stdint.h>代码如下:

/* Copyright (C) ARM Ltd., 1999 *//* All rights reserved *//* * RCS $Revision: 178085 $ * Checkin $Date: 2012-12-11 14:54:17 +0000 (Tue, 11 Dec 2012) $ * Revising $Author: agrant $ */#ifndef __stdint_h#define __stdint_h#define __ARMCLIB_VERSION 5030076  #ifndef __STDINT_DECLS  #define __STDINT_DECLS    #undef __CLIBNS    #ifdef __cplusplus      namespace std {          #define __CLIBNS std::          extern "C" {    #else      #define __CLIBNS    #endif  /* __cplusplus *//* * 'signed' is redundant below, except for 'signed char' and if * the typedef is used to declare a bitfield. * '__int64' is used instead of 'long long' so that this header * can be used in --strict mode. */    /* 7.18.1.1 */    /* exact-width signed integer types */typedef   signed          char int8_t;typedef   signed short     int int16_t;typedef   signed           int int32_t;typedef   signed       __int64 int64_t;    /* exact-width unsigned integer types */typedef unsigned          char uint8_t;typedef unsigned short     int uint16_t;typedef unsigned           int uint32_t;typedef unsigned       __int64 uint64_t;    /* 7.18.1.2 */    /* smallest type of at least n bits */    /* minimum-width signed integer types */typedef   signed          char int_least8_t;typedef   signed short     int int_least16_t;typedef   signed           int int_least32_t;typedef   signed       __int64 int_least64_t;    /* minimum-width unsigned integer types */typedef unsigned          char uint_least8_t;typedef unsigned short     int uint_least16_t;typedef unsigned           int uint_least32_t;typedef unsigned       __int64 uint_least64_t;    /* 7.18.1.3 */    /* fastest minimum-width signed integer types */typedef   signed           int int_fast8_t;typedef   signed           int int_fast16_t;typedef   signed           int int_fast32_t;typedef   signed       __int64 int_fast64_t;    /* fastest minimum-width unsigned integer types */typedef unsigned           int uint_fast8_t;typedef unsigned           int uint_fast16_t;typedef unsigned           int uint_fast32_t;typedef unsigned       __int64 uint_fast64_t;    /* 7.18.1.4 integer types capable of holding object pointers */typedef   signed           int intptr_t;typedef unsigned           int uintptr_t;    /* 7.18.1.5 greatest-width integer types */typedef   signed       __int64 intmax_t;typedef unsigned       __int64 uintmax_t;#if !defined(__cplusplus) || defined(__STDC_LIMIT_MACROS)    /* 7.18.2.1 */    /* minimum values of exact-width signed integer types */#define INT8_MIN                   -128#define INT16_MIN                -32768#define INT32_MIN          (~0x7fffffff)   /* -2147483648 is unsigned */#define INT64_MIN  __ESCAPE__(~0x7fffffffffffffffll) /* -9223372036854775808 is unsigned */    /* maximum values of exact-width signed integer types */#define INT8_MAX                    127#define INT16_MAX                 32767#define INT32_MAX            2147483647#define INT64_MAX  __ESCAPE__(9223372036854775807ll)    /* maximum values of exact-width unsigned integer types */#define UINT8_MAX                   255#define UINT16_MAX                65535#define UINT32_MAX           4294967295u#define UINT64_MAX __ESCAPE__(18446744073709551615ull)    /* 7.18.2.2 */    /* minimum values of minimum-width signed integer types */#define INT_LEAST8_MIN                   -128#define INT_LEAST16_MIN                -32768#define INT_LEAST32_MIN          (~0x7fffffff)#define INT_LEAST64_MIN  __ESCAPE__(~0x7fffffffffffffffll)    /* maximum values of minimum-width signed integer types */#define INT_LEAST8_MAX                    127#define INT_LEAST16_MAX                 32767#define INT_LEAST32_MAX            2147483647#define INT_LEAST64_MAX  __ESCAPE__(9223372036854775807ll)    /* maximum values of minimum-width unsigned integer types */#define UINT_LEAST8_MAX                   255#define UINT_LEAST16_MAX                65535#define UINT_LEAST32_MAX           4294967295u#define UINT_LEAST64_MAX __ESCAPE__(18446744073709551615ull)    /* 7.18.2.3 */    /* minimum values of fastest minimum-width signed integer types */#define INT_FAST8_MIN           (~0x7fffffff)#define INT_FAST16_MIN          (~0x7fffffff)#define INT_FAST32_MIN          (~0x7fffffff)#define INT_FAST64_MIN  __ESCAPE__(~0x7fffffffffffffffll)    /* maximum values of fastest minimum-width signed integer types */#define INT_FAST8_MAX             2147483647#define INT_FAST16_MAX            2147483647#define INT_FAST32_MAX            2147483647#define INT_FAST64_MAX  __ESCAPE__(9223372036854775807ll)    /* maximum values of fastest minimum-width unsigned integer types */#define UINT_FAST8_MAX            4294967295u#define UINT_FAST16_MAX           4294967295u#define UINT_FAST32_MAX           4294967295u#define UINT_FAST64_MAX __ESCAPE__(18446744073709551615ull)    /* 7.18.2.4 */    /* minimum value of pointer-holding signed integer type */#define INTPTR_MIN (~0x7fffffff)    /* maximum value of pointer-holding signed integer type */#define INTPTR_MAX   2147483647    /* maximum value of pointer-holding unsigned integer type */#define UINTPTR_MAX  4294967295u    /* 7.18.2.5 */    /* minimum value of greatest-width signed integer type */#define INTMAX_MIN  __ESCAPE__(~0x7fffffffffffffffll)    /* maximum value of greatest-width signed integer type */#define INTMAX_MAX  __ESCAPE__(9223372036854775807ll)    /* maximum value of greatest-width unsigned integer type */#define UINTMAX_MAX __ESCAPE__(18446744073709551615ull)    /* 7.18.3 */    /* limits of ptrdiff_t */#define PTRDIFF_MIN (~0x7fffffff)#define PTRDIFF_MAX   2147483647    /* limits of sig_atomic_t */#define SIG_ATOMIC_MIN (~0x7fffffff)#define SIG_ATOMIC_MAX   2147483647    /* limit of size_t */#define SIZE_MAX 4294967295u    /* limits of wchar_t */    /* NB we have to undef and redef because they're defined in both     * stdint.h and wchar.h */#undef WCHAR_MIN#undef WCHAR_MAX#if defined(__WCHAR32)  #define WCHAR_MIN   0  #define WCHAR_MAX   0xffffffffU#else  #define WCHAR_MIN   0  #define WCHAR_MAX   65535#endif    /* limits of wint_t */#define WINT_MIN (~0x7fffffff)#define WINT_MAX 2147483647#endif /* __STDC_LIMIT_MACROS */#if !defined(__cplusplus) || defined(__STDC_CONSTANT_MACROS)    /* 7.18.4.1 macros for minimum-width integer constants */#define INT8_C(x)   (x)#define INT16_C(x)  (x)#define INT32_C(x)  (x)#define INT64_C(x)  __ESCAPE__(x ## ll)#define UINT8_C(x)  (x ## u)#define UINT16_C(x) (x ## u)#define UINT32_C(x) (x ## u)#define UINT64_C(x) __ESCAPE__(x ## ull)    /* 7.18.4.2 macros for greatest-width integer constants */#define INTMAX_C(x)  __ESCAPE__(x ## ll)#define UINTMAX_C(x) __ESCAPE__(x ## ull)#endif /* __STDC_CONSTANT_MACROS */    #ifdef __cplusplus         }  /* extern "C" */      }  /* namespace std */    #endif /* __cplusplus */  #endif /* __STDINT_DECLS */  #ifdef __cplusplus    #ifndef __STDINT_NO_EXPORTS      using ::std::int8_t;      using ::std::int16_t;      using ::std::int32_t;      using ::std::int64_t;      using ::std::uint8_t;      using ::std::uint16_t;      using ::std::uint32_t;      using ::std::uint64_t;      using ::std::int_least8_t;      using ::std::int_least16_t;      using ::std::int_least32_t;      using ::std::int_least64_t;      using ::std::uint_least8_t;      using ::std::uint_least16_t;      using ::std::uint_least32_t;      using ::std::uint_least64_t;      using ::std::int_fast8_t;      using ::std::int_fast16_t;      using ::std::int_fast32_t;      using ::std::int_fast64_t;      using ::std::uint_fast8_t;      using ::std::uint_fast16_t;      using ::std::uint_fast32_t;      using ::std::uint_fast64_t;      using ::std::intptr_t;      using ::std::uintptr_t;      using ::std::intmax_t;      using ::std::uintmax_t;    #endif   #endif /* __cplusplus */#endif /* __stdint_h *//* end of stdint.h */


0 0
原创粉丝点击