这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » MCU » 单片机MAIN函数里加不加while(1)的问题

共20条 2/2 1 2 跳转至
菜鸟
2013-12-30 20:34:22     打赏
11楼

是的 P2 IO口是连着8个led  问题是中断是不闪  加那个while的话 问题是中断是P2的LED不闪 , 也就是说不成功

不加那个while的话 问题是中断的P2的LED是闪的也就是说成功

菜鸟
2013-12-30 20:38:05     打赏
12楼

你可以试试把while(1)里面的屏蔽掉,,只写中断试试。

void main(void) {
  UART_init();  

 while(1)  
 {
        ;

}
}

 

 


菜鸟
2013-12-30 21:09:53     打赏
13楼

是的  不加while()的话 实验成功

 


菜鸟
2013-12-30 21:11:03     打赏
14楼
不管加不加那个while
串口发个11都会返回ee,这个没问题; 问题在于加while的话,中断中 for(i;i<10;i++)   
{
P2 = UART_data;
DELAY_MS(100);
P2 = ~UART_data;
DELAY_MS(100);
}就不闪。就是那个LED不闪
不加while的话  中断会闪10次  

高工
2013-12-30 21:31:16     打赏
15楼
#include <reg52.h>


void main()
{
	P1 = 0X01;
}

 

上面这段程序编译器编译后我软件仿真了一下,程序是这样跑的:启动文件——>main--->启动文件----->main----->这样循环这来。


菜鸟
2013-12-31 10:56:07     打赏
16楼
这个是要加的,不加的话。怎么连续运行?

高工
2013-12-31 11:37:22     打赏
17楼

楼主的程序可能存在多个问题,这些都是初学者经常犯的经典问题。

没太仔细看,我猜想楼主可能出现的问题中的两个或者三个问题同时作用,因此产生了一个可行的表象,实际上程序并不是按楼主想象的运行方式运行的,只不过碰巧他的直接观察效果达到了自己一定的预期。如果楼主把这些问题搞通,单片机水平应该能大幅提高,出现这些问题是楼主的福气啊。


工程师
2013-12-31 13:22:53     打赏
18楼

你在while

里面一直 初始化 串口  有问题的  

你把串口初始化 放在 while 1 之前 就好了

 

还有 不要在中断里面发送数据


高工
2014-01-06 12:30:00     打赏
19楼

能够得到正常的结果,不一定就是正常的运行。

撸主初始化代码贴出来瞧瞧看


高工
2014-01-20 09:35:04     打赏
20楼
不加的话,你的串口岂不是在不停地初始化?

共20条 2/2 1 2 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]