打印
[国产单片机]

C51串口接收数后,程序表示得好像在不断的,进入串口中断

[复制链接]
2583|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
jrcsh|  楼主 | 2011-7-4 14:40 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 jrcsh 于 2011-7-4 20:42 编辑

程序思路

串口接收到数据,传给变量 aaa, 及更新数据标记bbb.

现在程序表现为: 数据可以接收到,和正常发出,但是程序好像不受控制的在发生串口中断 , 不断在的运行,串口接收处理程序的 内容


去除无关内容后的程序 #include <REG51.H>
#include <intrins.h>
#include <absacc.h>
#define uint unsigned int
#define uchar unsigned char
uint aaa,bbb,ccc,ddd;     
uchar xxx,zzz,vvv;
uchar code commm[]={'0','1','2','3','4','5','6','7','8','9'};
void recommm() interrupt 4
{
RI=0;
ccc=SBUF;
ddd=30;
}
void main()
{
TMOD=0x20;
TH1=0xfd;
TL1=0xfd;
TR1=1;
REN=1;
SM0=0;
SM1=1;
ES=1;
EA=1;
while(1)
{   
if(bbb==30)
{
SBUF=commm[aaa/100%10];
while(!TI);
TI=0;
SBUF=commm[aaa/10%10];
while(!TI);
TI=0;
SBUF=commm[aaa%10];
while(!TI);
TI=0;
SBUF=' ';
while(!TI);
TI=0;
SBUF='Z';
while(!TI);
TI=0;
SBUF='=';
while(!TI);
TI=0;
SBUF=commm[ddd/10%10];
while(!TI);
TI=0;
SBUF=commm[ddd%10];
while(!TI);
TI=0;
SBUF=' ';
while(!TI);
TI=0;
SBUF=0xd;//28;
while(!TI);
TI=0;
SBUF=0xa;//28;
while(!TI);
TI=0;
ddd--;
  }// ddd==30
} //w1
}//ma
按这个程序
我发一个通过串口发一个 字节的数据到MCU ,MCU收到数据后,通过串口发回来。

现在的情况 是,电脑的串口调试软件,一发数据给 MCU ,MCU就不断的通过串口反回来数据,  

我又改了一下程序通过反回来 的数据判断是, 串口中断在不断的被触发


..............问题出在了哪了

从串口发出来的数据来看,

相关帖子

沙发
jrcsh|  楼主 | 2011-7-5 03:50 | 只看该作者
关闭串口中断 使用软件查询 正常...............

使用特权

评论回复
板凳
jrcsh|  楼主 | 2011-7-5 14:25 | 只看该作者
终于找到问题, ~~~~结贴

使用特权

评论回复
地板
老鱼探戈| | 2011-7-13 10:46 | 只看该作者
什么问题?

使用特权

评论回复
5
jrcsh|  楼主 | 2011-7-14 22:24 | 只看该作者
什么问题?
老鱼探戈 发表于 2011-7-13 10:46



已经自己解决

使用特权

评论回复
6
Cortex-M0| | 2011-8-13 05:14 | 只看该作者
什么问题?
老鱼探戈 发表于 2011-7-13 10:46


问题出在LZ的
while(1)
{   
................
}
中,进行死循环~~~  :lol

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:以上以下纯属瞎扯,概不承认!!!!! 感谢  应试教育 培养了我的基础    感谢自己  没吧应试教作为各种借口

228

主题

2348

帖子

18

粉丝