用串口调试助手只能发送一次数据啊,如发送十六进制fe后,有反应,但是如果再发ff或f4等等数据都无效了

程序如下#include<reg52.h>unsignedcharaa,flag;voidmain(){while(1){TMOD=0x20;TH1=0xfd;TL1=0... 程序如下

#include<reg52.h>
unsigned char aa,flag;

void main()
{
while(1)
{
TMOD=0x20;
TH1=0xfd;
TL1=0xfd;
ET1=1;
TR1=1;
REN=1;
SM0=0;
SM1=1;
EA=1;
ES=1;
if(RI==1)
{
RI=0;
P1=SBUF;
}
}
展开
 我来答
lylxy1965
2011-08-04 · TA获得超过2413个赞
知道小有建树答主
回答量:436
采纳率:100%
帮助的人:220万
展开全部
这样写程序不对应该将TMOD =0X20(含)至ES=1(含)之间的语句放到while(1)之前,否则总在做初始化,会有问题的。
这样改下在试试。
更多追问追答
追问
我原先就是将它放在while外面的,也是一样的
追答
如果你的程序没有用到中断,EA、ES、ET1都该置0,尤其是ET1,作为波特率发生器不需要中断。理论上如果都置1的话,程序执行会乱的,比如ET1=1后,到时产生中断,单片机程序将会从程序地址0x001B开始执行,你的程序中又不包括相应的中断程序,所以整个过程可能就会乱了。
把这几句都注掉再试试。
用户名哦_
2011-08-04
知道答主
回答量:11
采纳率:0%
帮助的人:0
展开全部
sdf
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
Bonnieeast
2011-08-04
知道答主
回答量:71
采纳率:0%
帮助的人:32.6万
展开全部
这个程序怎么只有接受,没有发送。看不懂。
更多追问追答
追问
我还没有编发送,因为在接受上出问题了啊
追答
哦,那看下你的波特率和串口是否正确。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式