串口通信两个在我看来相同效果的代码,仿真却大不一样

[复制链接]
603|2
 楼主| 畅想天子 发表于 2020-4-9 22:49 | 显示全部楼层 |阅读模式
串口发送字符串程序
void send_byte(uchar i)
{
   SBUF=i;
   while(!TI);
   TI=0;
}
/***
void send_string(uchar *num)//用这样的程序 打开串口助手接收区是空的
{
        send_byte(*num);
        num++;
        while(*num=='\0');
       
}  ****/
采用下面这段程序运行正常
void send_string(uchar *num)  //运行正常
{
   while(*num!='\0')
{        send_byte(*num);
        num++; }       
}
不知道什么原因,在我看来这两段代码,工作效果应该是一样的,但运行结果却大不一样。请哪位师傅指点一下,谢谢
dalarang 发表于 2020-4-9 23:03 | 显示全部楼层
谁告诉你效果一样的?
你仔细看下第一个while的用法,这样能用吗?
 楼主| 畅想天子 发表于 2020-4-10 08:26 | 显示全部楼层
dalarang 发表于 2020-4-9 23:03
谁告诉你效果一样的?
你仔细看下第一个while的用法,这样能用吗?

第一个while只是一个等待,没有做循环
您需要登录后才可以回帖 登录 | 注册

本版积分规则

58

主题

333

帖子

2

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