当前位置:首页 > 嵌入式 > 嵌入式教程
[导读]STM32的数据类型基础介绍。

STM32的数据类型基础介绍。首先说一下编程过程中几个步骤吧。

第一,选择一门语言,C语言或汇编语言,嵌入式编程一般目前流行还是C,这个需要基础与时间

第二读懂了解 MCU的寄存器各寄存器的功能,尤其是一些IO口设置,各模块时钟设置比如定时器,I2C,同步异步串口,PWM等等,以前的话51的话没有这样设置。而现在MCU基本上各模块时钟都分开了。这个可以看官方数据说明书就可以了。

其实程的目的就是设置一系列寄存器.并根据你设计程序流程去执行它,期间可能加入了你设计好的一些算法,和数学公式。进行计算,或执行。

第三,你有一块你的实验板就如这次STM32推的F429,你还需要下载程序的编程器。就是把编译器编译好的代码下载到你的目标实验板上,不过ST推的多数实验班都是自带USB串口的程序下载器。比如STM32F429就自带了

第四,你还需要了解的是编译器,编译器的数据类型一些定义,及有些编译器的可能自带内建函数,这个不必须了解。否则无法编程。

本文主要就介绍STM32的数据类型的基础知识。以及一些关键词的意义。

▲在KELI MDK数据类型中进了如下定义

char占用1个字节

short int占用2字节

int占用4字节

long占用4字节

long int占用4字节

float占用4字节

double占用8字节

即有如下宏定义

typedef unsigned char uint8; // 无符号8位字符型变量

typedef signed char int8; // 有符号8位字符型变量

typedef unsigned short uint16; // 无符号16位短整型变量

typedef signed short int16; // 有符号16位短整型变量

typedef unsigned int uint32; // 无符号32位整型变量

typedef signed int int32; // 有符号32位整型变量

typedef float fp32; // 单精度浮点数(32位长度)

typedef double fp64; // 双精度浮点数(64位长度)

注:C语言中的种类数据:整型:int short long 实型:float, double 。

其中,Unsigned 为无符号, signed 有符号。

▲STM32的数据类型的宏定义

STM32采用了大量的固件库,其中在2.0库中有24个数据类型如下

typedef unsigned char u8;0~255一字节

typedef signed char s8;-128~127

typedef volaTIle unsigned char vu8;

typedef volaTIle signed char vs8;

typedef unsigned char const uc8;

typedef signed char const sc8;

typedef volaTIle unsigned char const vuc8;

typedef volaTIle signed char const vsc8;

typedef unsigned short u16; 0~65535两字节

typedef signed short s16; -32768~32767两字节

typedef volatile unsigned short vu16;

typedef volatile signed short vs16;

typedef unsigned short const uc16;

typedef signed short const sc16;

typedef signed short const sc16;

typedef volatile unsigned short const vuc16;

typedef volatile signed short const vsc16;

typedef unsigned long u32; 0~(2^32-1)四字节

typedef signed long s32;

typedef signed long const sc32;

typedef volatile unsigned long const vuc32;

typedef volatile signed long const vsc32;

对部分数据类型后面作了注释,其它类型类推。

▲ 关于两个关键词说明 volatile& const

(1)volatile :这个关键字,很多人只知道用,不知道其含义,有介绍解释是不易被编译器优

化的。在STM32资料中解释加了易挥发的变量。这些解释都是含糊不清的。

为此笔者专门查了下这个修饰关键字含义

通俗的解释: 随时会改变,并被多函数调用可以加volatile修饰。

简称易变变量或易挥发变量。

表示这个变量的真的很容易变。

进阶解释: 加了这个volatile意义就是在每次取这个变量值的时候,要求不是取它上次在某个 时候取的临时缓存变量(比如说暂存在某个寄存器中),而是直接到内存中取。

个人经验: 告诉编译器,volatile定义的变量必须RAM变量.不能是寄存器变量.

尤其是中断中用 全局变量一定要加volatile。

(2)const: 在定义变量时候,如果加上关键词const,则变量的值在程序运行期间不能改变,当然不能再赋值了。这种变量称为常变量(constant variable)或是只读变量(read-only-variable,这样觉得更恰当)。

▲ STM32F10x_StdPeriph_Driver 3.0以后的版本中使用了CMSIS数据类型

3.0以后版本与之前版本变量的定义有所不同,但是出于兼容旧版本的目的,以上的数据类型仍然兼容。CMSIS的IO类型限定词如表 3所示,CMSIS和STM32固件库的数据类型对比如表 5所示。这些数据类型可以在

STM32F10x_StdPeriph_Lib_V3.4.0LibrariesCMSISCM3DeviceSupportSTSTM32F10x

stm32f10x.h中找到具体的定义。

▲ 数据类型和IO类型限定词Cortex-Mx HAL使用标准ANSI C头文件定义的标准类型。特别用类型限定词IO来访问外设的变量。

表3 数据类型限定词IO。

▲ ST从库包中移除了文件”stm32f10x_type.h”,新的库使用CMSIS和定义的数据类型。

表5展示了STM32F10xxx和之间数据类型的一一对应关系。表5 STM32F10xxx固件库V2.0.3与CMSIS数据类型对比

▲注意出于兼容旧版本的目的文件”stm32f10x.h”中仍然定义了STM32F10xxx固件库原有数据类型。

文件”stm32f10x.h”中也定义了STM32F10xxx固件库专用类型.

它们是: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;

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

特朗普集团近日取消了其新推出的T1智能手机“将在美国制造”的宣传标语,此举源于外界对这款手机能否以当前定价在美国本土生产的质疑。

关键字: 特朗普 苹果 AI

美国总统特朗普在公开场合表示,他已要求苹果公司CEO蒂姆·库克停止在印度建厂,矛头直指该公司生产多元化的计划。

关键字: 特朗普 苹果 AI

4月10日消息,据媒体报道,美国总统特朗普宣布,美国对部分贸易伙伴暂停90天执行新关税政策,同时对中国的关税提高到125%,该消息公布后苹果股价飙升了15%。这次反弹使苹果市值增加了4000多亿美元,目前苹果市值接近3万...

关键字: 特朗普 AI 人工智能 特斯拉

3月25日消息,据报道,当地时间3月20日,美国总统特朗普在社交媒体平台“真实社交”上发文写道:“那些被抓到破坏特斯拉的人,将有很大可能被判入狱长达20年,这包括资助(破坏特斯拉汽车)者,我们正在寻找你。”

关键字: 特朗普 AI 人工智能 特斯拉

1月22日消息,刚刚,新任美国总统特朗普放出重磅消息,将全力支持美国AI发展。

关键字: 特朗普 AI 人工智能

特朗普先生有两件事一定会载入史册,一个是筑墙,一个是挖坑。在美墨边境筑墙的口号确保边境安全,降低因非法移民引起的犯罪率过高问题;在中美科技产业之间挖坑的口号也是安全,美国企业不得使用对美国国家安全构成威胁的电信设备,总统...

关键字: 特朗普 孤立主义 科技产业

据路透社1月17日消息显示,知情人士透露,特朗普已通知英特尔、铠侠在内的几家华为供应商,将要撤销其对华为的出货的部分许可证,同时将拒绝其他数十个向华为供货的申请。据透露,共有4家公司的8份许可被撤销。另外,相关公司收到撤...

关键字: 华为 芯片 特朗普

曾在2018年时被美国总统特朗普称作“世界第八奇迹”的富士康集团在美国威斯康星州投资建设的LCD显示屏工厂项目,如今却因为富士康将项目大幅缩水并拒绝签订新的合同而陷入了僵局。这也导致富士康无法从当地政府那里获得约40亿美...

关键字: 特朗普 富士康

今年5月,因自己发布的推文被贴上“无确凿依据”标签而与推特发生激烈争执后,美国总统特朗普签署了一项行政令,下令要求重审《通信规范法》第230条。

关键字: 谷歌 facebook 特朗普

众所周知,寄往白宫的所有邮件在到达白宫之前都会在他地进行分类和筛选。9月19日,根据美国相关执法官员的通报,本周早些时候,执法人员截获了一个寄给特朗普总统的包裹,该包裹内包含蓖麻毒蛋白。

关键字: 美国 白宫 特朗普
关闭