600字范文,内容丰富有趣,生活中的好帮手!
600字范文 > arm c语言开发环境搭建 利用proteus学习ARM(LPC2103)之二:熟悉IAR C语言开发环境...

arm c语言开发环境搭建 利用proteus学习ARM(LPC2103)之二:熟悉IAR C语言开发环境...

时间:2019-08-18 09:04:38

相关推荐

arm c语言开发环境搭建 利用proteus学习ARM(LPC2103)之二:熟悉IAR C语言开发环境...

1. 关于C语言中数据类型的长度问题

我们应该比较熟悉51系列的C语言数据类型的长度,如下表所示:本文引用地址:/article/11/321519.htm数据类型长度值域

unsigned char单字节0~255

signed char单字节-128~+127

unsigned int双字节0~65535

signed int双字节-32768~+32767

unsigned long四字节0~4294967295

signed long四字节-2147483648~+2147483647

float四字节

关于ARM的C语言数据类型的长度,如下表:类型数据宽度/bytes

char1

unsigned char1

short2

unsigned short2

int4

unsigned int4

long4

unsigned long4

2. 关于位变量的定义

第一:如果只单纯的使用位变量,只需要添加#include,然后就可以使用bool进行定义;

第二:但是上面的这种方法有一种不可取的地方,如果需要对很多位变量同时赋同一个值的时候,需要书写多条语句,这个时候就可以使用下面的这种方法,这里支持32bit,16 bit,8bit同时定义。

volatile union { INT8U Flag; __BITS8 Flag_bit; } ;

#define FlagBit0 Flag_bit.no0

#define FlagBit1 Flag_bit.no1

#define FlagBit2 Flag_bit.no2

#define FlagBit3 Flag_bit.no3

#define FlagBit4 Flag_bit.no4

#define FlagBit5 Flag_bit.no5

#define FlagBit6 Flag_bit.no6

#define FlagBit7 Flag_bit.no7

第三:对寄存器的位操作举例,在iolpc2103.h的头文件中,你可以发现如下的定义:

typedef struct{

__REG32 MR0INT : 1;

__REG32 MR1INT : 1;

__REG32 MR2INT : 1;

__REG32 MR3INT : 1;

__REG32 CR0INT : 1;

__REG32 CR1INT : 1;

__REG32 CR2INT : 1;

__REG32 :25;

} __ir0_bits;

__IO_REG32_BIT(T0IR, 0xE0004000,__READ_WRITE,__ir0_bits);

由上面的定义,可以看出寄存器的位操作可以这样写T0IR_bit.MR0INT,同时我们也可以再次重新定义一下这个位变量,这样更利于我们的使用。

#define ClrMR0Timer0Int() T0IR_bit.MR0INT = 1

3. 关于开关总中断的内部函数

在IAR中,关总中断和开总中断,有专用的函数可以调用,只是需要包含#include就可以直接调用下面的语句:

__disable_interrupt();

__enable_interrupt();

4. 关于IAR中头文件的写法

在IAR原来的版本中,包含iolpc2103.h 文件可以这样写:

#include

但是我所使用的这个最新的版本V6.1,却不能这么写,这样会找不到这个头文件,这个版本需要按照下面的这种方法写(当然应该你人为改变iolpc2103.h 文件文件的位置也是可以的):

#include

另如果需要将自己的头文件都放入一个固定的文件夹中,便于管理的话,你需要将你自己定义的头文件写成下面这个样子:

#include"..Headconfig.h"

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。