打印
[STC单片机]

求助:STC15W204S单片机串口程序跑不起来。

[复制链接]
2807|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
hwboy05|  楼主 | 2016-5-13 01:02 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
单片机型号:STC15W204S;
问题描述:刚接触STC的单片机,写了一个简单的串口发送程序,Keil仿真是正常的;但下载到板子上串口没有任何打印。示波器也测试不到信号;
串口初始化程序是用STC-ISP生成的,用芯片内置RC振荡器,5.5296MHz。

程序:
#include <STC15.H>

void putc(unsigned char dat)
{
        while(0==TI);
        TI = 0;
        SBUF=dat;
}

unsigned char getc(void)
{
        while(!RI);
        RI = 0;
        return SBUF;
}

void printf(unsigned char *str)
{
        while(*str)
        {
                putc(*str);
                str++;
        }
}

void UartInit(void)                //9600bps@5.5296MHz
{
        PCON &= 0x7F;                //波特率不倍速
        SCON = 0x50;                //8位数据,可变波特率,允许接收
        AUXR |= 0x40;                //定时器1时钟为Fosc,即1T
        AUXR &= 0xFE;                //串口1选择定时器1为波特率发生器
        TMOD &= 0x0F;                //清除定时器1模式位
        TMOD |= 0x20;                //设定定时器1为8位自动重装方式
        TL1 = 0xEE;                        //设定定时初值
        TH1 = 0xEE;                        //设定定时器重装值
        ET1 = 0;                        //禁止定时器1中断
        ES  = 0;                        //禁止串口中断
        TR1 = 1;                        //启动定时器1
}

main()
{
        unsigned char temp,kk;
        unsigned short cnt;
        P1=0xff;
        P3=0xff;
        UartInit();
        TI=1;
        temp=0x21;
        kk=0;
        while(1)               
        {
                cnt++;
                if(cnt==0xffff)
                {
                        cnt=0;
                        temp++;
                        if(temp>0x7a)
                        {
                                temp=0x21;
                        }
                        putc(temp);
                        if(kk==0x10)
                        {
                                kk=0;
                                putc(0xd);
                                putc(0xa);
                        }
                        kk++;
                }
        }
}




相关帖子

沙发
camy| | 2016-5-13 09:02 | 只看该作者
UartInit(void)中,后面应该是ES=1;  EA=1;

使用特权

评论回复
板凳
heishe1989| | 2016-5-13 10:50 | 只看该作者
该单片机没有定时器1,所以没有输出啊,一定要好好看芯片资料,不能想当然

使用特权

评论回复
地板
coody| | 2016-5-13 11:52 | 只看该作者
1、这个IC没有定时器1,要设置选择定时器2做波特率。
2、要选择你用哪对IO做TXD RXD。

使用特权

评论回复
5
y8888888828| | 2017-1-10 10:43 | 只看该作者
15W204这块芯片没有定时器1的

使用特权

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

本版积分规则

131

主题

219

帖子

2

粉丝