打印

请教串口中断

[复制链接]
1364|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
chenke1988|  楼主 | 2010-10-13 20:20 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
下面这段程序用串口调试助手为什么整个屏幕一直显示Come On! 我并没有用while循环啊 应该只收到一个Come On!先谢谢啦!
#include<reg51.h>
#define uchar unsigned  char
#define uint  unsigned int
uchar code table[]={"Come On!\r\n"};
void delay(uint x) //延时X毫秒
{
uint y,z;
for(z=x;z>0;z--)
  for(y=110;y>0;y--);
}
void UART_Init(void)
{
TMOD=0x20;
   TH1=0xfd;
   TL1=0xfd;
   SCON=0x40;
   PCON=0x00;
   TR1=1;
}
//串口发送一个字节
void Uart_SendChar(unsigned char dat)
{
  SBUF = dat;    //待发送的数据写入缓冲区
  while(!TI);        //等待发送完成
  TI = 0;             //清零发送标志位
}
/*-------------------------------------------------------------*/
//串口发送一个字符串
void Uart_SendString(unsigned char *dat)
{
  while(*dat!='\0')
  {
   Uart_SendChar(*dat); //发送当前数据
   dat++;                         //指向下一个要发送的数据
  }
}
void main()
{
   UART_Init();
   delay(10);
   Uart_SendString(table);
}

相关帖子

沙发
原野之狼| | 2010-10-13 23:15 | 只看该作者
程序没有刹车 跑飞了

使用特权

评论回复
板凳
zjswuyunbo| | 2010-10-14 11:19 | 只看该作者
本帖最后由 zjswuyunbo 于 2010-10-14 11:21 编辑

void main()
{
   UART_Init();
   delay(10);
   Uart_SendString(table);
    while(1);
}
这样再试试,我就不信了。

使用特权

评论回复
地板
chenke1988|  楼主 | 2010-10-14 12:37 | 只看该作者
这个我也试过,如果加上while(1);串口调试助手上就收不到任何数据了 不知道为啥 3# zjswuyunbo

使用特权

评论回复
5
chenke1988|  楼主 | 2010-10-14 12:38 | 只看该作者
那请教一下 应该怎么改了! 2# 原野之狼

使用特权

评论回复
6
原野之狼| | 2010-10-14 21:31 | 只看该作者
把延时再改长一些 或许外部设备还没有正常工作 然后你就从串口发送数据了 拿个示波器看一下就明白了

使用特权

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

本版积分规则

0

主题

58

帖子

0

粉丝