全局变量为什么不能用于串口中断程序?

全局变量为什么不能用于串口中断程序?,第1张

1,定义全局变量,不是把定义语句放在主程序中,而是放在主程序的前面(也是主程序的外面),你放在主程序中,仍然是局部变量,那肯定是错的。

2,把定义放在中断程序中,也同样是定义全局变量。

3,因为从串口SBUF中读出的数据是8位无符号的,所以,要定义成 unsigned char 型,别定义成 int 型。当然了,定义成 int 型,也不会报错,只是浪费内存。

中断函数可以访问全局变量

你修改的话就在中断中声明一个局部变量

void t1() interrupt 3

{

static uint count这样使用

}

总中断IE

外部中断等 都没有设置

IT1=1; //下降沿触发

EX1=1;

EX0=1;

EA=1;

总中断就好比是 你爸妈

定时器中断 就是你

你要出去玩 你爸妈不让 你还能出去玩吗

你要产生中断 但是总中断没开 就没法产生中断

外部中断0 有两种中断 一种是低电平触发 第二种是下降沿触发

低电平是给P3.2口一个低电平 就是0伏

下降沿就是P3.2是高电平的时候给他拉低 产生一个下降沿

你可以去看看郭天祥的单片机视频 讲的很详细 跟你的这个问题也类似 你看了就懂了

全局变量可以通过中断服务程序改 只要函数中没有相同的局部变量就行


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/7797589.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-10
下一篇 2023-04-10

发表评论

登录后才能评论

评论列表(0条)

保存