51单片机串口初始化步骤,首先初始化那个在初始化那个,最好是华为等大公司的初始化模版

如题所述

设置系统时钟-》设定分频-》设定引脚输出输入方式(推挽或漏极开路)-》设定定时器1工作模式在八位自动重载模式-》载入定时器初始值-》开启定时器1-》开启串口0中断使能-》开启总中断使能-》开启串口0接受允许-》设定串口0工作模式-》初始化完成。
将数据压入发送缓冲寄存器
用while
语句等待发送标志位被置位
然后清0,以为数据发送完成。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2020-04-22
你好!
设置系统时钟-》设定分频-》设定引脚输出输入方式(推挽或漏极开路)-》设定定时器1工作模式在八位自动重载模式-》载入定时器初始值-》开启定时器1-》开启串口0中断使能-》开启总中断使能-》开启串口0接受允许-》设定串口0工作模式-》初始化完成。
将数据压入发送缓冲寄存器
用while
语句等待发送标志位被置位
然后清0,以为数据发送完成。
如有疑问,请追问。本回答被提问者采纳
第2个回答  2019-06-03
首先确定定时器1为自动重装模式,并根据想要得到的波特率设置TH1和TL1的初值。
再确定串口的工作方式。一般发送使用查询,接收使用中断功能发送。当然如果开启了串口的中断功能,还得开启总中断功能。下面是一个11.0592MHz晶振下的例子:
#include
"reg51.h"
void
initUart(void)
{
TMOD|=0x20;//
初始化定时器1为8位自动重装模式
SCON=0x50;//
配置串口工作模式,使能了串口接收中断
TH1=0xfd;//
配置波特率
TL1=0xfd;
TR1=1;//
启动定时器1
ES=1;//
打开串口中断允许
}
void
uart(void)
interrupt
4
{
if(RI)//可以在这里添加接收中断的语句
{
RI=0;
}
else
TI=0;
}
void
main(void)
{
initUart();
EA=1;
while(1){;}
}