stm32中stm32f10x_type.h(固件3.0以前)、stm32f10x.h(固件3.0以后)、stdint.h文件的关系
在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 __cplusplusnamespace 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_EXPORTSusing ::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 */
stm32中stm32f10x_type.h(固件3.0以前)、stm32f10x.h(固件3.0以后)、stdint.h文件的关系相关推荐
- stm32 中bootloader、startup_stm32f10x_md.s的作用
stm32 中bootloader.startup_stm32f10x_md.s的作用 转载 2016-09-12 10:47:39 一.启动文件的作用是: 1. 初始化堆栈指针 SP; 2. ...
- 解决VC2015包含stdint.h头文件冲突问题
stdint.h是C99的标准,主要用于统一跨平台数据定义. MSVC中不带有这个头文件,直到VS2010. 在之前的版本里面,我们可以: (1)下载这个头文件 download a MS versi ...
- 【力扣】08 剧情触发时间:在战略游戏中,玩家往往需要发展自己的势力来触发各种新的剧情。一个势力的主要属性有三种,分别是文明等级(C),资源储备(R)以及人口数量(H)。在游戏开始时(第 0 天),三
LCP 08. 剧情触发时间 在战略游戏中,玩家往往需要发展自己的势力来触发各种新的剧情.一个势力的主要属性有三种,分别是文明等级(C),资源储备(R)以及人口数量(H).在游戏开始时(第 0 天), ...
- 深入浅出地理解STM32中的中断系统——从原理到简单工程示例——保姆级教程
深入浅出地理解STM32中的中断系统 一.什么是中断?什么是异常? 二.如何管理中断? 三.NVIC 1 NVIC 特点 2 中断优先级 (1) 优先级分组 3 中断向量表 4 中断服务函数 (1)中 ...
- Arduino处理STM32中的多个串口通讯问题
简 介: 对于在Arduino下开发STM32的程序,对于STM32所具有的三个硬件USART进行测测试.结果显示可以使用这些串口完成相应的数据的输入与输出.但是涉及到以下两个问题,还没有得到解决:问 ...
- STM32中常用的C语言知识点,开始复习!
要学嵌入式,关注@我要学嵌入式,嵌入式猛男的加油站. C语言是单片机开发中的必备基础知识,这里就列举部分STM32学习中会遇见的C 语言基础知识点. 01 位操作 下面我们先讲解几种位操作符,然后讲 ...
- STM32中C语言知识点:初学者必看,老鸟复习(长文总结)
说在前面的话 一位初学单片机的小伙伴让我推荐C语言书籍,因为C语言基础比较差,想把C语言重新学一遍,再去学单片机,我以前刚学单片机的时候也有这样子的想法. 其实C语言是可以边学单片机边学的,学单片机的 ...
- STM32驱动开发(二)--USB Device RNDIS虚拟网卡(USB2.0 基础概念讲解)
STM32驱动开发(二)–USB Device RNDIS虚拟网卡(USB2.0基础概念讲解) 一.简介 本文基于stm32 Rndis实例,github开源, 使用STM32F407单板.结合协 ...
- 详解STM32中的ADC
ADC简介 STM32F103系列有3个ADC,精度为12位,每个ADC最多有16个外部通道.其中ADC1和ADC2都有16个外部通道,ADC3一般有8个外部通道,各通道的A/D转换可以单次.连续.扫 ...
最新文章
- 《Nmap渗透测试指南》—第6章6.4节IP欺骗
- 端午回家,听完你是做程序员,你家里人是什么反应?
- 决胜大数据时代:HadoopYarnSpark企业级最佳实践(3天)
- 最大公约数最小公倍数
- runtime无法执行grep_如何使管道使用Runtime.exec()?
- linux查看允许创建多少个进程,Linux下查看某个进程创建了多少线程
- Python——常见数据类型的调试笔记(“如何通过Debug信息判断数据类型”)
- visio 2013安装教程
- SVP——一种用于深度学习的高效数据选择方法
- 永恒之蓝漏洞复现(MS17010)
- 如何查看两个word文档的不同之处
- java计算2个日期的天数时间差
- Chrome 咕咕牛懒器(guge niú lǎn qì) 安装 及助手插件操作
- 回声状态网络(ESN)的公式推导及代码实现
- 删除文件夹时,显示“错误0x80070091 文件夹不是空的”
- Nagios配置说明
- excel之工作表工作簿保护暴力撤销
- 拒绝成为肉鸡 教你几招让黑客永远抓不到你
- 什么是RAM?如何清理电脑RAM?
- 【python-docx 06】理解word样式
热门文章
- mysql 数据库授权(给某个用户授权某个数据库)
- Sharepoint的文档库用资源管理器方式浏览报错“Explorer View ”解决方案。
- 加勒比海兔_加勒比海海洋物种趋势
- netflix_Netflix的计算因果推论
- 在Java里如何给一个日期增加一天
- leetcode 48. 旋转图像
- leetcode1296. 划分数组为连续数字的集合(贪心算法)
- 配置 aws cli_AWS CLI教程–如何安装,配置和使用AWS CLI了解您的资源环境
- HTML DOM方法
- slack通知本地服务器_通过构建自己的Slack App学习无服务器