stc1102E 单片机 写一个串口发送数据的程序。。 1T 12M晶振 9600波特率,用独立波特率发生器。。。试写过,

stc1102E 单片机 写一个串口发送数据的程序。。 1T 12M晶振 9600波特率,用独立波特率发生器。。。试写过,不过数据总乱码了,不知道什么原因

C 语言
void UartInit(void) //9600bps@12MHz
{
PCON &= 0x7f; //波特率不倍速
SCON = 0x50; //8位数据,可变波特率
BRT = 0xD9; //设定独立波特率发生器重装值
AUXR |= 0x04; //独立波特率发生器时钟为Fosc,即1T
AUXR |= 0x01; //串口1选择独立波特率发生器为波特率发生器
AUXR |= 0x10; //启动独立波特率发生器
}

汇编

UARTINIT: ;9600bps@12MHz
ANL PCON,#7FH ;波特率不倍速
MOV SCON,#50H ;8位数据,可变波特率
MOV BRT,#0D9H ;设定独立波特率发生器重装值
ORL AUXR,#04H ;独立波特率发生器时钟为Fosc,即1T
ORL AUXR,#01H ;串口1选择独立波特率发生器为波特率发生器
ORL AUXR,#10H ;启动独立波特率发生器
RET追问

我也是这样设置的,用那个小工具就有这段代码了
不过写出整个程序,发送数据的时候就出错了。
请问有完整的样板程序没?

追答

在 数据 手册 中 有 完整的串口测试程序

追问

很悲催的告诉你,我试过STC官网下的手册里的测试程序了,不过还是不行,不知道出什么错了。。。

追答

不可能呀,是否设置有问题,或者连接有问题。

温馨提示:内容为网友见解,仅供参考
第1个回答  2020-08-29
你的问题解决了吗?我也遇到同样的问题

stc1102E 单片机 写一个串口发送数据的程序。。 1T 12M晶振 9600波特率...
AUXR |= 0x01; \/\/串口1选择独立波特率发生器为波特率发生器 AUXR |= 0x10; \/\/启动独立波特率发生器 } 汇编 UARTINIT: ;9600bps@12MHz ANL PCON,#7FH ;波特率不倍速 MOV SCON,#50H ;8位数据,可变波特率 MOV BRT,#0D9H ;设定独立波特率发生器重装值 ORL AUXR,#04H ;独立波...

相似回答