串口调试助手为什么一直发送数据
#include<reg51.h>voidmain(){intc;TMOD=0X20;TL1=0XF3;TH1=0XF3;SCON=0X50;TR1=1;while(1)...
#include<reg51.h>
void main()
{
int c;
TMOD=0X20;
TL1=0XF3;
TH1=0XF3;
SCON=0X50;
TR1=1;
while(1)
{
while(RI==0);
RI=0;
c=SBUF;
SBUF = c; // 要发送的字符放入缓冲区
while(TI == 0);
TI = 0;
}
}
开始调试后,没有发送任何数据,可是接收区却收到了好多好多ff,这是为什么啊?谢谢帮帮忙哦 展开
void main()
{
int c;
TMOD=0X20;
TL1=0XF3;
TH1=0XF3;
SCON=0X50;
TR1=1;
while(1)
{
while(RI==0);
RI=0;
c=SBUF;
SBUF = c; // 要发送的字符放入缓冲区
while(TI == 0);
TI = 0;
}
}
开始调试后,没有发送任何数据,可是接收区却收到了好多好多ff,这是为什么啊?谢谢帮帮忙哦 展开
4个回答
展开全部
没看明白你的程序,不过你这应该不是C#,而是C++的吧?
你这串口连接是用一根串口线,把23口短路连接,自己发自己回的吗?你可以尝试一下,用串口调试器来连接试发送。
FF应该是数据超出范围,才接收到的数据,16进制表示的。
你这串口连接是用一根串口线,把23口短路连接,自己发自己回的吗?你可以尝试一下,用串口调试器来连接试发送。
FF应该是数据超出范围,才接收到的数据,16进制表示的。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
while(RI==0); 表示只有接受到了数据才能继续往下执行,你的RI是不是在,串口调试助手还没有发送数据给单片机时就已经为0了?
while(RI==0);
RI=0;
你这句话有问题吧,应该是while(RI==0);
RI=1;才对
while(RI==0);
RI=0;
你这句话有问题吧,应该是while(RI==0);
RI=1;才对
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
建议 用 proteus 仿真一下
我的领地 5d6d 里有 proteus 论坛,内有 很多 单片机应用实例,包括单片机串口应用
我的领地 5d6d 里有 proteus 论坛,内有 很多 单片机应用实例,包括单片机串口应用
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
串口 有问题吗?
2、串口 与 无线龙的开发板 连接 有没有问题?
等等
祝你顺利
2、串口 与 无线龙的开发板 连接 有没有问题?
等等
祝你顺利
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询