单片机串口传输到PC,设置执行40次

[复制链接]
930|10
 楼主| 宋倩2010 发表于 2016-1-10 22:27 | 显示全部楼层 |阅读模式
但是单片机却无限次的传输给PC,希望有谁能解释一下。程序如下:
for(k=0;k<N;k++)
{
while(!con_end);
EA = 0; // 关中断
AD0INT=0;
temp= ADC0;
temp &= 0x000fff;
// EA = 1; //开中断
temperature = temp*100L*3/1024;
temp_int = temperature/100;
temp_frac = temperature - (temp_int * 100);
// for(x=0;x<4000;x++);

// for(x=0;x<4000;x++);
printf ("V_input is %02d.%02dV\n", temp_int, temp_frac);
TMR3CN |= 0x04;
EA = 1;
con_end=0;
// AMX0P=0x0c;
// AD0EN=0;
}
我在佛for循环后面添加了while语句,就不能传输给PC机了。又是为何?
chenho 发表于 2016-1-10 22:29 | 显示全部楼层
con_end=0;这句语句使while(!con_end);始终成立,程序就停在这里了,至于说为什么永远发,你的N值是不是在其他程序里被更改了。
gongche 发表于 2016-1-10 22:30 | 显示全部楼层
查看一下发的都是什么码 是不是乱码呢 如果是的话检查你的硬件
huwr 发表于 2016-1-10 22:33 | 显示全部楼层
仿真一下,看看N的变化
 楼主| 宋倩2010 发表于 2016-1-10 22:35 | 显示全部楼层
谢谢各位,问题已经解决了。
sourceInsight 发表于 2016-1-12 12:00 来自手机 | 显示全部楼层
解决就好,不知道是什么原因啊,好像是中断没能跳出来吧(๑• . •๑)
bbapple 发表于 2016-1-12 15:35 来自手机 | 显示全部楼层
或许是进入进入死循环了吧,楼上可以研究下。。
boy1990 发表于 2016-1-12 16:05 来自手机 | 显示全部楼层
这个很给力!!!temperature = temp*100L*3/1024; temp_int = temperature/100; temp_frac = temperature - (temp_int * 100);
hfdy01 发表于 2016-1-12 16:40 来自手机 | 显示全部楼层
看看,关于中断问题感觉自己还是很有体会的,最近就常遇到。楼主这个是while循环没有退出来好像。。
handleMessage 发表于 2016-1-12 19:21 来自手机 | 显示全部楼层
程序能够出while循环的条件是什么呢?
shashaa 发表于 2016-1-12 22:15 | 显示全部楼层
emp= ADC0;
temp &= 0x000fff;
初始化设置。。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

322

主题

3217

帖子

2

粉丝
快速回复 在线客服 返回列表 返回顶部