打印
[其他ST产品]

stm32常用数据类型 U8、U16、U32代表什么?

[复制链接]
448|10
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
lxs0026|  楼主 | 2022-8-30 23:41 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
stm32常用数据类型 U8、U16、U32到底代表什么? 在Keil MDK 开发环境里,比如一个 无符号32位整形数据会有很多种表示方法:
1.unsigned int 32 (C语言标准表达方法)      
  2.uint32_t ;            
3.u32;
  这三种方式都是在表达同一个意思。可为什么ST的开发人员要搞的这么乱呢? 其实ST 搞这么多花样,无非是想开发人员在写代码时定义数据类型能少写几个符号,然后又因为前后版本升级,为了兼容旧版本(主要是V2.0)才会出现这么多表示方法。不管他怎么换,都是基于标准C来的,看清楚以下几个文件你就OK了:

使用特权

评论回复
沙发
lxs0026|  楼主 | 2022-8-30 23:44 | 只看该作者
core_cm3.h  ;stm32f10x.h  ; stdint.h;  其中每个文件大概作用如下:

stdint.h 这里放着C语言的标准表达方式//第36行开始
typedef   signed          char       int8_t;  //  标准表达方式 signed char 被等同于 int8_t;
typedef   signed short  int         int16_t;
typedef   signed           int         int32_t;//在32位环境里,int代表4个字节32位!!
typedef   signed       __int64     int64_t;

typedef unsigned              char       uint8_t;
typedef unsigned short     int         uint16_t;
typedef unsigned              int         uint32_t;
typedef unsigned          __int64     uint64_t;
……

stm32f10x.h 这个文件主要是为了兼容旧版本吧
typedef   uint32_t   u32;///32位
typedef   uint16_t   u16;///16位
typedef   uint8_t     u8;///8位
……

core_cm3.h 文件主要针对动态 静态 变量修饰符做出类型扩展
#ifdef __cplusplus
  #define   __I     volatile            
#else
  #define   __I     volatile const      
#endif
#define     __O     volatile            
#define     __IO    volatile

使用特权

评论回复
板凳
lxs0026|  楼主 | 2022-8-30 23:45 | 只看该作者
转:http://www.51hei.com/bbs/dpj-27167-1.html

参考:https://blog.csdn.net/weixin_36397141/article/details/68062836

使用特权

评论回复
地板
wengh2016| | 2022-9-5 12:43 | 只看该作者
U8、u16和u32都是C语言中的数据类型,分别表示8位、16位和32位长度的数据类型。

使用特权

评论回复
5
lzbf| | 2022-9-7 16:21 | 只看该作者
u8是unsigned char,u16是unsigned short,u32是unsigned long。

使用特权

评论回复
6
belindagraham| | 2022-9-7 17:20 | 只看该作者
查看一下宏定义吧

使用特权

评论回复
7
mmbs| | 2022-9-8 13:38 | 只看该作者
分别是 unsigned char unsigned int unsigned long int的不同写法

使用特权

评论回复
8
aspoke| | 2022-9-10 20:51 | 只看该作者
一个字节是8位,所以u8是1字节,u16是2字节,u32是4字节。

使用特权

评论回复
9
claretttt| | 2022-9-11 12:28 | 只看该作者
U8 U16 U32都表示无符号整型数,U8是8位,16是16位的,32是32位的。

使用特权

评论回复
10
kmzuaz| | 2022-9-11 17:14 | 只看该作者
这个都是内部定义的类型

使用特权

评论回复
11
Bowclad| | 2022-9-11 20:54 | 只看该作者
U8是8位,16是16位的,32是32位

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

89

主题

1050

帖子

1

粉丝