himm007 发表于 2011-12-2 23:52:46

STC12C5A32S2 串口怎么配?

#define FOSC 12000000L
#define BAUD (256-FOSC/32/115200)

void usart_init(void) {
        AUXR = 0x40;        //1T模式
        TMOD = 0x20;        //定时器1 工作方式2
        SCON = 0x50;        //串口工作方式1,允许串口接收
        TH1 = BAUD;   //定时器初值高8位设置
        TL1 = BAUD;   //定时器初值低8位设置
        TR1 = 1;        //定时器启动
}

void usart_send(const char *buf, int n) {
        while (n--) {
                SBUF = *(buf++);
                while (!TI)
                        ;
                TI = 0;
        }
}

===================================================

可是串口一直没有输出,请问大家是配的不对么?

himm007 发表于 2011-12-11 11:49:06

不知道啥原因,在串口初始化后delay150毫秒,串口才能工作:

   usart_init();
   delay_ms(150);
   printf("os start\n");

gongnn 发表于 2011-12-11 12:43:24

主函数在哪?不完整的程序分析啥啊

himm007 发表于 2011-12-11 15:46:58

回复【2楼】gongnn魔法师
-----------------------------------------------------------------------

对啦,源代码在这,https://github.com/yumm007/C51

lgy026 发表于 2011-12-19 23:03:49

我用的是独立波特率寄存器木有用定时器,不用延时可以,但是就是开始的数据不对
页: [1]
查看完整版本: STC12C5A32S2 串口怎么配?