shenrongze 发表于 2012-7-31 15:32:57

求助,stc12c5a60s2的串口设置方法.串口用不了

CPU:stc12c5a60s2
晶振:22.1184M
void UartInit(void)                //9600bps@22.1184MHz
{
        PCON &= 0x7F;                //波特率不倍速
        SCON = 0x50;                //8位数据,可变波特率
        AUXR |= 0x04;                //独立波特率发生器时钟为Fosc,即1T
        BRT = 0xB8;                //设定独立波特率发生器重装值
        AUXR |= 0x01;                //串口1选择独立波特率发生器为波特率发生器
        AUXR |= 0x10;                //启动独立波特率发生器
}
void Uart_Send_Byte(uchar i)
{
        ES   =   0;//关串口中断
        TI   =   0;//清零串口发送完成中断请求标志
        SBUF   =   i;
        while(TI==0); //等待发送完成
        TI   =   0;//清零串口发送完成中断请求标志
        ES   =   1;//允许串口中断
}
初始化这样写对吗?
硬件应该没问题,换过一块开发板上面也是不行.有没有人用过~~谢谢

siyeb 发表于 2012-7-31 16:16:41

怎么个用不了?

shenrongze 发表于 2012-7-31 16:27:11

siyeb 发表于 2012-7-31 16:16 static/image/common/back.gif
怎么个用不了?

就是发送不了,也接收不了

siyeb 发表于 2012-7-31 16:28:45

能不能把程序全贴出来。这个看不出啥毛病

shenrongze 发表于 2012-7-31 16:54:29

siyeb 发表于 2012-7-31 16:28 static/image/common/back.gif
能不能把程序全贴出来。这个看不出啥毛病

程序很简单,啥都无
#include        <reg52.h>
#include        <intrins.h>

#define                uint unsigned int
#define                uchar unsigned char


#define                RELOAD_COUNT 0xb8
sfr                AUXR    = 0x8e;
sfr                BRT                = 0x9c;

                                          


void Uart_Init(void)
{
    PCON |= 0x80;                //使能波特率倍速位SMOD
        SCON = 0x50;                //8位数据,可变波特率
        BRT = 0x70;                //设定独立波特率发生器重装值
        AUXR |= 0x04;                //独立波特率发生器时钟为Fosc,即1T
        AUXR |= 0x01;                //串口1选择独立波特率发生器为波特率发生器
        AUXR |= 0x10;                //启动独立波特率发生器
        ES= 1;
        EA = 1;
}
void Uart_Send_Byte(uchar i)
{
        ES   =   0;//关串口中断
        TI   =   0;//清零串口发送完成中断请求标志
        SBUF   =   i;
        while(TI==0); //等待发送完成
        TI   =   0;//清零串口发送完成中断请求标志
        ES   =   1;//允许串口中断
}

void main()
{
        Uart_Init();
       
        while(1)
        {
                Uart_Send_Byte(0xf0);
        }
}

shenrongze 发表于 2012-7-31 17:02:28

搞定了,犯了个低级错误...线路问题

bigc 发表于 2012-7-31 19:40:14

帮顶!!!

weini1130 发表于 2012-7-31 20:00:12

晶振时钟频率搞错没?
页: [1]
查看完整版本: 求助,stc12c5a60s2的串口设置方法.串口用不了