打印

在论坛里找了一个关于串口通信重写putchar()函数的代码

[复制链接]
2468|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
我是胖子|  楼主 | 2013-8-6 12:31 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
#include<reg52.h>
#include<stdio.h>
volatile unsigned char UartIsSending;//volatile防止该变量所在语句被优化,问:静态的不行?全局变量不行?

char putchar (char ucWriteData)//函数重写
{
        SBUF=ucWriteData;
        UartIsSending=1;
        while(UartIsSending);
        return ucWriteData;
}


volatile unsigned char UartIsSending;

void UartIsr(void) interrupt 4
{
        if(TI) //发送中断
        {
                  UartIsSending=0;
                  TI=0;
        }
        if(RI) //接收中断
        {
                RI=0;
        }
}

void serial_init ()  
{
  SCON  = 0x50;                     
  TMOD |= 0x20;                     
  TH1   = 0xf3;
  TL1   = 0xf3;                     
  TR1   = 1;                        
  ES=1;
}

void Delay(void)
{
        unsigned char ucDelayCount;

        for(ucDelayCount=0; ucDelayCount<0xFF; ucDelayCount++)
        {
                ;
        }       
}


void main(void)
{
        serial_init();
        EA = 1;
        while(1)
        {
                putchar('8');
                putchar('\n');
                Delay();
                printf("welcome to 21ic \n");
        }
}
这个在keil仿真中跑的一点问题都没有 但是串口小助手就是乱码,求解释……

相关帖子

沙发
dirtwillfly| | 2013-8-6 14:47 | 只看该作者
这是谁的代码?最好问问作者,至少也给人家打个招呼

使用特权

评论回复
板凳
gaogao303| | 2013-8-6 14:56 | 只看该作者
波特率,还有小助手的显示模式对不对啊

使用特权

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

本版积分规则

6

主题

12

帖子

0

粉丝