找回密码
 注册会员
更新自动建库工具PCB Footprint Expert 2024.04 Pro / Library Expert 破解版

请教:字符串发送完后跳不出函数?

[复制链接]
admin 发表于 2012-9-3 00:44:32 | 显示全部楼层 |阅读模式

本文包含原理图、PCB、源代码、封装库、中英文PDF等资源

您需要 登录 才可以下载或查看,没有账号?注册会员

×
#include <reg51.h>
#include <stdio.h>

void uartinit();
void uartsendstr(unsigned char *pstr);
code unsigned char str[]="hello";

void main(void)
{
uartinit(); //初始化
while(1)
{
uartsendstr(str);
}
}
/***************************************
*名称:uartinit
*功能:串口通信初始化
*参数:无
*返回值:无
***************************************/
void uartinit()
{
SCON=0x50; //串口模式1,允许接收
TMOD|=0x20; //初始化T1为定时功能,模式2
PCON|=0x80; //设置SMOD=1
TL1=0xF4; //波特率为9600b/s,初值
TH1=0xF4; //重载值
IE|=0x90; //串口中断允许
TR1=1; //启动定时器1
//TI=1;
}
/****************************************
*名称:uartsendstr
*功能:向串口发送以0结尾的字符串
*参数:uchar *pstr 发送的字符指针
*返回值:无
****************************************/
void uartsendstr(unsigned char *pstr)
{
while((*pstr)!='\0')
{
SBUF=*pstr;
pstr++;
while(TI==0);
TI=0;
}
}

以上是一个串口发送小程序,在发送完一次后,程序跳不出uartsendstr函数,却跳到了while(TI==0);进入死循环,不知道是什么原因,还请各位帮帮小弟,先谢了!
*滑块验证:
您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

QQ|手机版|MCU资讯论坛 ( 京ICP备18035221号-2 )|网站地图

GMT+8, 2024-11-29 17:32 , Processed in 0.050333 second(s), 9 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表