您的位置 首页 解答

STM32的数据类型根底介绍

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

首先说一下编程过程中几个过程吧

榜首,挑选一门言语,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.0\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x

\stm32f10x.h中找到详细的界说。

▲ 数据类型和IO类型限定词Cortex-Mx HAL运用规范ANSI C头文件界说的规范类型。特别用类型限定词IO来访问外设的变量。      
   表3 数据类型限定词IO。

STM32的数据类型根底介绍

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

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

STM32的数据类型根底介绍

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/changshang/jieda/347593.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部