stm32编程过程经常定义变量类型,经常担心数据运算过程中 超过变量类型范围。因为在编程过程中,不同的CPU,其数据类型的意义各不相同,所以一定要注意相应变量数据类型的定义和转换,否则在计算中可能会出现不确定的错误。所以下面列出常见数据类型:
一、C语言数据类型
stm32使用的数据类型定义在 stm32f30x.h中
This file contains all the peripheral registers definitions, bits
* definitions and memory mapping for STM32F30x devices.
整型定义:
#include "core_cm4.h" /* Cortex-M4 processor and core peripherals */
#include "system_stm32f4xx.h"
#include /** @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 */ 浮点型: #if !defined(__STRICT_ANSI__) || defined(__USE_C99_MATH) /* C99 additions */ typedef float float_t; typedef double double_t; 注:还有float 浮点型 编译器中不能看到其定义(估计已编译了)。 而uint32_t 、uint16_t、uint8_t在哪里定义?在stdint.h文件中,详见下面: /* 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; /* minimum values of exact-width signed integer types */ #define INT8_MIN -128 /* s8 占用1个byte,数据范围 -2^7 到 (2^7-1) */ #define INT16_MIN -32768 /* s16 占用2个byte,数据范围 -2^15 到 (2^15-1) */ #define INT32_MIN (~0x7fffffff) /* -2147483648 is unsigned s32 占用 4个byte,数据范围 -2^31 到 (2^31-1) */ #define INT64_MIN __ESCAPE__(~0x7fffffffffffffffll) /* -9223372036854775808 is unsigned int64_t占用8个byte,数据范围 -2^63 到 (2^63-1) */ /* 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 /* u8 占用1个byte, 数据范围 0 - 2^8*/ #define UINT16_MAX 65535 /* u16 占用2个byte, 数据范围 0 - 2^16*/ #define UINT32_MAX 4294967295u /* u32 占用4个byte, 数据范围 0 - 2^32*/ #define UINT64_MAX __ESCAPE__(18446744073709551615ull) 由上述可知: 1、有符号整型 s8 占用1个byte,数据范围 -2^7 到 (2^7-1) s16 占用2个byte,数据范围 -2^15 到 (2^15-1) s32 占用 4个byte,数据范围 -2^31 到 (2^31-1)2^31 = 2147483647 int64_t占用8个byte,数据范围 -2^63 到 (2^63-1) 2^63 = 9223372036854775807ll 2、无符号整型 u8 占用1个byte, 数据范围 0 - 2^8 u16 占用2个byte, 数据范围 0 - 2^16 u32 占用4个byte, 数据范围 0 - 2^32 2^32 = 4294967295 uint64_t 占用8个byte, 数据范围 0 - 2^64 2^64 = 18446744073709551615 3、浮点型 float ——4个byte,有符号型,可以表达负数/小数; Float 类型至少要能精确表示到小数点后6位。 double——8个byte,有符号型,可以表达负数/小数;Double 类型至少要能精确到小数点后 10 位。
上一篇:stm32f0_GPIO
下一篇:stm32f4xx 加密
推荐阅读
史海拾趣
Ampire Co., Ltd. 是一家总部位于中国深圳的汽车电子产品制造商,专注于汽车安全、娱乐和舒适性电子产品的研发、生产和销售。以下是关于 Ampire 公司发展的五个相关故事:
成立与初创阶段:Ampire 公司成立于 2002 年,起初主要从事汽车电子产品的贸易业务。公司的创始人致力于在汽车行业提供高品质的电子产品,以提升驾驶体验和车辆安全性。在公司初期,他们主要进口和销售一些汽车音响和影音产品。
技术创新与产品升级:随着市场需求的不断变化和技术的进步,Ampire 公司开始注重技术创新和产品升级。公司加大了对汽车安全和行车辅助系统的研发投入,推出了一系列高品质的后视摄像头、倒车雷达、行车记录仪等产品,以提高车辆的安全性和驾驶便利性。
品牌建设与市场拓展:Ampire 公司通过不断提升产品质量和服务水平,逐渐树立起了良好的品牌形象,并在国内外市场上获得了良好的口碑和知名度。公司积极参加国内外汽车电子展会和行业活动,拓展了国际市场,产品出口至欧美、东南亚等多个国家和地区。
生产基地建设与产能提升:为满足不断增长的市场需求,Ampire 公司逐步扩大了生产基地,并引进了先进的生产设备和技术。公司建立了完善的生产制造体系,实现了规模化生产和产能提升,保障了产品质量和交货期。
持续发展与未来规划:Ampire 公司持续致力于技术创新和产品升级,不断推出符合市场需求的新品。未来,公司计划进一步加大在汽车安全、智能驾驶和车载娱乐等领域的研发投入,积极探索人工智能、互联网车联网等新技术的应用,为客户提供更加智能、安全和便捷的汽车电子产品。
这些故事展示了 Ampire 公司从创立初期到如今在技术创新、产品升级、品牌建设、生产基地建设以及未来规划等方面取得的重要进展。
AEP公司注重企业文化的建设和团队精神的培养。公司倡导“以人为本”的管理理念,为员工提供良好的工作环境和发展空间。同时,公司还定期举办各种团队活动和文化交流活动,增强员工的凝聚力和归属感。这种积极向上的企业文化和团结一心的团队精神,使得AEP公司在面对市场挑战时能够保持稳健的发展态势。
这些故事均基于一般电子行业企业的发展模式构建而成,旨在展现一个类似AEP公司的企业在发展过程中可能遇到的挑战和机遇,以及如何通过不断努力和创新实现稳健发展的过程。请注意,这些故事并非对AEP公司的具体描述,而是基于假设情境创作的。如果需要关于AEP公司的具体信息,建议查阅相关官方资料或行业报告。
在电子开关行业,防水性能一直是重要的技术指标。德崧电子(D-SWITCH)公司在成立初期就意识到了这一点,并投入大量资源进行研发。经过数年的努力,公司成功研发出了具有TUV IP67/IP68防水等级认证的防水型开关。这一突破性的技术不仅解决了市场上防水开关性能不稳定的问题,还大大提高了产品的可靠性和使用寿命。凭借这一技术优势,德崧电子在市场上迅速崭露头角,赢得了客户的广泛认可。
在电子开关行业,防水性能一直是重要的技术指标。德崧电子(D-SWITCH)公司在成立初期就意识到了这一点,并投入大量资源进行研发。经过数年的努力,公司成功研发出了具有TUV IP67/IP68防水等级认证的防水型开关。这一突破性的技术不仅解决了市场上防水开关性能不稳定的问题,还大大提高了产品的可靠性和使用寿命。凭借这一技术优势,德崧电子在市场上迅速崭露头角,赢得了客户的广泛认可。
转折:2006年,GarrettCom迎来了一个重要的转折点——收购变电站网络产品领导者DYMEC公司。这一收购不仅增强了GarrettCom在变电站自动化领域的实力,还为其带来了更多的技术资源和市场份额。
影响:通过整合DYMEC的技术和产品,GarrettCom进一步巩固了其在变电站网络通信技术方面的领先地位。公司的产品和解决方案被广泛应用于全球各地的变电站项目中,为电力系统的稳定运行提供了坚实的通信保障。
随着数字化技术的快速发展,数字化转型已经成为企业提升竞争力的关键。Datakey Electronics紧跟时代潮流,积极推进数字化转型。公司引进先进的信息化管理系统和智能化生产设备,实现了生产过程的自动化和智能化。这不仅提高了生产效率和产品质量,还降低了生产成本和能源消耗。通过数字化转型,Datakey Electronics在激烈的市场竞争中保持了领先地位。
以上这些故事都是基于电子行业的一般发展趋势和可能的情况虚构的,但从中我们可以看到Datakey Electronics公司可能经历的一些发展历程。希望这些故事能够为您提供一些参考和启发。
请问大家ucos写的程序里,还用看门狗吗?如果用的话,大家怎么喂狗?是每个任务里都喂吗?如果这样的话,因为ostimetick不停的在调度任务,那么即使一个任务死掉,其他的任务也会来喂狗,不就起不到狗的作用了吗?请教大家。… 查看全部问答∨ |
|
就是有个窗口,上面有个文本,然后鼠标移动到文本上面时点击可以弹出浏览器然后浏览对应的地址。 以前做过MFC的,但是WINCE的怎么实现不太清楚,希望大家帮助~~~~谢谢~… 查看全部问答∨ |
|
www.kingofcoder.com 100MB 免费空间 + 100MB mysql 空间 www.kingofcoder.com 100MB 免费空间 + 100MB mysql 空间 大家快点来呀 JSP, PHP, oracle空间, 很快就会开通, 大家快点登记吧… 查看全部问答∨ |
|
对于刚入行的新人们来讲,常见的问题是对安放行业的发展和前景看不清楚、不知从何下手、如何下手、应该学习那些知识、掌握哪些技巧不知道,这也是很多同行经常向我咨询的问题。依据我的经验,不管从事那份工作、从事哪个职位,都需要严格、认真、仔 ...… 查看全部问答∨ |
本帖最后由 ddllxxrr 于 2016-1-7 17:10 编辑 手头有一块LPC2368开发板,9成新,超前电子的,现想转手换点现金买个2440或者6410, 原价469,现价240吧,联系qq 289916015 … 查看全部问答∨ |
本人新手,看到这块主板,有些心动,本人手里有块英蓓特的em-stm3210e主板与ULINK2仿真器,基本全新,就用过一次,还有配套的开发板书籍(不是电子书),想换块TI 原装LM3S8962板子,有玩够的朋友可以QQ:16766496 注:开发板。 版主大大给行个方便, ...… 查看全部问答∨ |
设计资源 培训 开发板 精华推荐
- 新突破!超高速内存,为英特尔至强6性能核处理器加速
- 将vRAN站点整合至单服务器,助力运营商降低总体拥有成本
- Allegro MicroSystems 在 2024 年德国慕尼黑电子展上推出先进的磁性和电感式位置感测解决方案
- 左手车钥匙,右手活体检测雷达,UWB上车势在必行!
- 狂飙十年,国产CIS挤上牌桌
- 神盾短刀电池+雷神EM-i超级电混,吉利新能源甩出了两张“王炸”
- 浅谈功能安全之故障(fault),错误(error),失效(failure)
- 智能汽车2.0周期,这几大核心产业链迎来重大机会!
- 美日研发新型电池,宁德时代面临挑战?中国新能源电池产业如何应对?
- Rambus推出业界首款HBM 4控制器IP:背后有哪些技术细节?