单片机学习小组
直播中

徐生财

10年用户 848经验值
擅长:MEMS/传感技术
私信 关注

int16与Uint16及其float32等数据类型有何作用呢

typedef的作用是什么?
int16与Uint16及其float32等数据类型有何作用呢?

回帖(1)

张静

2022-2-25 15:06:42
1、int16、Uint16、float32等数据类型

以一个代码段进行说明,这个是DSP28335对与int16等的一个定义。

#ifndef DSP28_DATA_TYPES
#define DSP28_DATA_TYPES
typedef int                int16;
typedef long               int32;
typedef long long          int64;
typedef unsigned int       Uint16;
typedef unsigned long      Uint32;
typedef unsigned long long Uint64;
typedef float              float32;
typedef long double        float64;
#endif
这里先说一下 typedef 的作用,typedef 的作用是给一个变量类型重新命名,那么实际上述语句的作用是将关键字,int、long、long long等重新命名一遍。

在单片机编程中,不同的关键字所对应的数值范围是不一样。具体如下表所示,其中32位和64位的编译器较为常用。



因此,将代码部分一一对应即可理解int16等定义的具体作用:



  • int16  有符号16位整型
  • int32  有符号32位整型
  • int64  有符号64位整型(这是DSP28335的一个卖点,拥有完成64位数据处理的能力)
  • Uint16  无符号位16位整型 (将原本int16的符号位转化为数据位,参与数据计算,因此数据量扩大2倍,原本是±32767,变为0 - 65536)
  • Uint32  无符号位32位整型
  • Uint64  无符号位64位整型
  • float32      32位浮点型
  • flota64      64位浮点型
电机控制里面,坐标变换、SVPWM、PI调节器等都是包含小数运算的,一般用浮点型较多,而包含数据逻辑运算,比如Hall传感器的数据提取,一般用整型的较多。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分