在keil中初始化时如何定义一个全局变量,并且赋初值为0xff

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在keil中初始化时如何定义一个全局变量,并且赋初值为0xff相关的知识,希望对你有一定的参考价值。

例如你的C文件是这样的
char x=0xff;
char y;
void main()

.......

那么在文件的一开始,函数之前定义的变量x和y就是全局变量,其中x已经赋初值0xff追问

这个我知道,我意思是给全局变量x付了0xff之后,在void main 函数里面我再赋另外一个值给X,还能赋进去吗?你main函数之前这样赋值之后,X的值应该一直就是0XFF了吧?

追答

当然可以赋值了,所谓变量就是随时可以改变的量啊,即便是全局的。
所谓全局,表示这个变量可以在所有函数中使用,而局部变量只能在定义的那个函数范围内使用,出了函数就失效了。
如果没有其他代码改变这个变量,那么x的值就一直是0xff

参考技术A char x=0xff;

void main()

x=0x00;

这样就行。

KEIL中全局变量,变量类型,LED灯,勿在中断延时

参考技术A

第一次做蓝桥杯的题(第七届,模拟液位检测警告),熟练了各模块之后,再想好逻辑,其实也没那么难,做了挺长时间,之后继续努力,碰到几个坑记录一下。

方法一
在一个文件里面定义了一个全局变量,如果想在其他文件使用,则要在这个文件中用 extern 声明。(1)定义时可以初始化。(2) extern 不能初始化 ,否则会报错。
例:在 init.c 中声明了 u32 TimingDelay = 0;
  在 main.c 中使用此变量,需声明 extern u32 TimingDelay;

方法二
在init.c中定义且初始化: u32 TimingDelay = 0;
再在init.h中用extern声明: extern u32 TimingDelay;
最后在main.c中包含init.h: #include "init.h"

今天因为数据类型的问题 LCD 显示总是错误,顺手查了一波。

在C语言中有6种基本数据类型:short、int、long、float、double、char
1)整型:short int、int、long int
2)浮点型:float、double
3)字符类型:char
u8,u16,u32 都是以上类型的不同形式。
由于项目中数据不是很大,整数或字符使用 u8 就可以了,类型转换什么的也都OK,TimingDelay 习惯上 u32,其余的也可以根据函数的数据类型确定。
需要注意的是 浮点数不可用 u8 等表示 ,目前没发现有替换 float 类型的,还是乖乖用 float就好了。

板子 LED 灯所连的 GPIO 口可能与其他模块在板子内部共用,所以每次点亮一个或几个 LED 灯时,要 关闭其他灯

今天在做题时,一开始在中断服务函数中应用了 delay_ms(200) 结果,板子直接卡住不动了,查资料后发现,最好 不要在中断服务函数中应用延时

以上是关于在keil中初始化时如何定义一个全局变量,并且赋初值为0xff的主要内容,如果未能解决你的问题,请参考以下文章

Keil-MDK编译完成后代码大小

Keil中C语言模块化编程时全局变量、结构体处理细节

keil中怎么将字符串定义成全局变量

keil4宏定义赋值报错

Keil MDK中的Code,RO-data RW-data,ZI-data分别代表啥意思

Keil C中startup.a51的作用