[STM32F2] 单片机却无限次的传输给PC

[复制链接]
1271|13
 楼主| androidbus 发表于 2017-6-30 22:14 | 显示全部楼层 |阅读模式
单片机串口传输到PC,设置执行40次,但是单片机却无限次的传输给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机了。又是为何?
戈卫东 发表于 2017-6-30 22:16 | 显示全部楼层
先找本单片机编程方面基础的书看看。
litengg 发表于 2017-6-30 22:23 | 显示全部楼层
con_end=0;这句语句使while(!con_end);始终成立,程序就停在这里了
戈卫东 发表于 2017-6-30 22:27 | 显示全部楼层
litengg 发表于 2017-6-30 22:23
con_end=0;这句语句使while(!con_end);始终成立,程序就停在这里了

他这个变量是个信号,ISR会改变它。。。。。
qiangweii 发表于 2017-6-30 22:27 | 显示全部楼层
为什么永远发,你的N值是不是在其他程序里被更改了。
戈卫东 发表于 2017-6-30 22:28 | 显示全部楼层
litengg 发表于 2017-6-30 22:23
con_end=0;这句语句使while(!con_end);始终成立,程序就停在这里了

我估计他的 main 里面并没有一个死循环。
qiangweii 发表于 2017-6-30 22:31 | 显示全部楼层
查看一下发的都是什么码 是不是乱码呢 如果是的话检查你的硬件
qiangweii 发表于 2017-6-30 22:32 | 显示全部楼层
楼主好好屡一下,单步调试一下看看。。
shashaa 发表于 2017-6-30 22:35 | 显示全部楼层
无限次传输是什么意思?
xia00 发表于 2017-6-30 22:44 | 显示全部楼层
while条件在哪里定义的,你的40是在哪里设置的?
hfdy01 发表于 2017-6-30 22:45 | 显示全部楼层
上一个完整的代码工程文件给看看。
boy1990 发表于 2017-6-30 22:51 | 显示全部楼层
还有,串口是否设置中断了?
sourceInsight 发表于 2017-6-30 22:56 | 显示全部楼层
while(!con_end);这是一个死循环
hfdy01 发表于 2017-6-30 23:00 | 显示全部楼层
数据的发送跟变量的类型有关系。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

181

主题

1597

帖子

3

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