前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Arduino基本数据类型

Arduino基本数据类型

作者头像
怪兽
发布2022-10-04 16:15:58
1.2K0
发布2022-10-04 16:15:58
举报
文章被收录于专栏:怪兽怪秀怪兽怪秀

基本数据类型简介

常见的Arduino是基于ATmega的8位 AVR单片机,例如Arduino UNO ,Arduino Nano,Arduino mega2560等。还有高级点 32位的,如Arduino Due。

由于Arduino是基于C/C++语言的,具有平台差异性,因此,其基本数据类型在这2个平台(8位机和32位机)下有差别。8位机下,int占2字节,double和float一样占4字节。而32位机下int是4字节,double是8字节。由于32位机很少见,本文就只以8位机类型讲解。

类型

字节数

范围

说明

char signed char unsigned char

1

-128 127 -128 ~127 0255

Arduino中的char是有符号的,等价于signed char。范围是-128 ~127 。char目的是用于储存ASCII字符。如果你想存储字节数据,建议使用byte来明确代码目的。

byte

1

0~255

byte不是C/C++标准类型,他是Arduino平台下特有的,实际就是无符号8位整型。 Arduino.h中,有这样的类型定义: typedef uint8_t byte;

int unsigned int

2

-32768-32767 (2字节有符号) 0~65535 (2字节无符号)

在基于ATMega的8位单片机中,如Arduino UNO,Ardunio Mega2560,int是2字节的. 而在有些高级Arduino板,如Arduino Due,SAMD等中,int占4字节。

long unsigned long

4

-2147483648 ~ 2147483647 0 ~ 4294967295

长整型常量末尾要用L标识出来。如:long num = 29596725L;

float

4

-3.4028235E+38 to 3.4028235E+38

\

double

4

-3.4028235E+38 to 3.4028235E+38

在基于ATMega的8位单片机中,如Arduino UNO,Ardunio Mega2560,double和float没有差别,都是4字节的.而在Due,等高级板中,占8字节。虽然在8位机的Arduino中float和double是一样的,但是在32位平台中,double的精度比float高。

bool

1

true 、 false

实质就是C++中的bool类型,你也可以使用boolean,因为在Arduino.h中,有这样的类型定义:typedef bool boolean;

二进制常量

C/C++是不支持在代码中直接使用二进制格式的字面值的,但是Arduino.h中包含了一个头文件 "binary.h" ,如下。其作用就是将0-255范围的整数用一组二进制格式的宏表示,这样,我们要在程序中显式的使用0-255范围内的二进制常量,则可以写成 以B开头的格式。

代码语言:javascript
复制
#ifndef Binary_h
#define Binary_h

#define B0 0
#define B00 0
#define B000 0
#define B0000 0
#define B00000 0
#define B000000 0
#define B0000000 0
#define B00000000 0
#define B1 1
#define B01 1
#define B001 1
#define B0001 1
#define B00001 1
#define B000001 1
#define B0000001 1
#define B00000001 1
#define B10 2
#define B010 2
#define B0010 2
#define B00010 2
#define B000010 2
#define B0000010 2
#define B00000010 2
/*.......篇幅原因,省去........*/
#define B11111110 254
#define B11111111 255

#endif

包含类型大小信息的整数类型

有些做过硬件开发的人会使用类似于 int8_t 、int16_t 等形式的类型,特点是类型本身包含了类型的大小,让代码更具有移植性。在Arduino中也可以使用。

需要包含头文件 #include<inttypes.h >

代码语言:javascript
复制
/*********************&#x6574;&#x6570;&#x7C7B;&#x578B;************************/

typedef signed char int8_t;   //8bit&#x6709;&#x7B26;&#x53F7;&#x7C7B;&#x578B;
typedef unsigned char uint8_t; // 8bit&#x65E0;&#x7B26;&#x53F7;&#x7C7B;&#x578B;


typedef signed int int16_t; //16bit&#x6709;&#x7B26;&#x53F7;&#x7C7B;&#x578B;
typedef unsigned int uint16_t;//16bit&#x6709;&#x7B26;&#x53F7;&#x7C7B;&#x578B;


typedef signed long int int32_t;   //328bit&#x6709;&#x7B26;&#x53F7;&#x7C7B;&#x578B;
typedef unsigned long int uint32_t;  //32bit&#x6709;&#x7B26;&#x53F7;&#x7C7B;&#x578B;


typedef signed long long int int64_t;   //32bit&#x6709;&#x7B26;&#x53F7;&#x7C7B;&#x578B;.&#x53EF;&#x80FD;&#x65E0;&#x6CD5;&#x4F7F;&#x7528;
typedef unsigned long long int uint64_t;     //32bit&#x6709;&#x7B26;&#x53F7;&#x7C7B;&#x578B;&#xFF0C;&#x53EF;&#x80FD;&#x65E0;&#x6CD5;&#x4F7F;&#x7528;




/***************&#x4FDD;&#x5B58;&#x5730;&#x5740;&#x503C;&#x7684;&#x7C7B;&#x578B;****************/


typedef int16_t intptr_t;     //&#x4FDD;&#x5B58;&#x5730;&#x5740;&#x503C;&#x7684;&#x7C7B;&#x578B;&#xFF0C;&#x6709;&#x7B26;&#x53F7;

typedef uint16_t uintptr_t;  //&#x4FDD;&#x5B58;&#x5730;&#x5740;&#x503C;&#x7684;&#x7C7B;&#x578B;&#xFF0C;&#x65E0;&#x7B26;&#x53F7;


//&#x8FDC;&#x5730;&#x5740;&#x7C7B;&#x578B;&#xFF0C;&#x7528;&#x4E8E;&#x5355;&#x7247;&#x673A;SRAM&#x5927;&#x4E8E;64K(&#x5730;&#x5740;&#x7F16;&#x53F7;&#x4E3A;0~65535 )&#x7684;&#x60C5;&#x51B5;&#xFF0C;&#x7528;intptr_t&#x53EF;&#x80FD;&#x4F1A;&#x6EA2;&#x51FA;&#x3002;

typedef uint32_t   uint_farptr_t;
typedef int32_t    int_farptr_t;   


/***********&#x5B8F;&#x7B26;&#x53F7;&#x5E38;&#x91CF;&#xFF0C;&#x4FDD;&#x5B58;&#x4E86;&#x5404;&#x79CD;&#x7C7B;&#x578B;&#x7684;&#x6700;&#x5927;&#xFF0C;&#x6700;&#x5C0F;&#x503C;**********/

INT8_MAX     INT8_MIN

UINT_MAX     


INT16_MAX    INT16_MIN

UINT16_MAX


INT32_MAX    INT32_MIN

UINT32_MAX
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 基本数据类型简介
  • 二进制常量
  • 包含类型大小信息的整数类型
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档