51单片机波特率怎么成57600
答案:2 悬赏:30 手机版
解决时间 2021-03-21 02:50
- 提问者网友:做自己de王妃
- 2021-03-20 10:31
51单片机波特率怎么成57600
最佳答案
- 五星知识达人网友:英雄的欲望
- 2021-03-20 10:51
按如下方法设置,波特率是57600
void UartInit(void) //57600bps@11.0592MHz
{
PCON |= 0x80; //使能波特率倍速位SMOD
SCON = 0x50; //8位数据,可变波特率
TMOD &= 0x0f; //清除定时器1模式位
TMOD |= 0x20; //设定定时器1为8位自动重装方式
TL1 = 0xFF; //设定定时初值
TH1 = 0xFF; //设定定时器重装值
ET1 = 0; //禁止定时器1中断
TR1 = 1; //启动定时器1
}
void UartInit(void) //57600bps@11.0592MHz
{
PCON |= 0x80; //使能波特率倍速位SMOD
SCON = 0x50; //8位数据,可变波特率
TMOD &= 0x0f; //清除定时器1模式位
TMOD |= 0x20; //设定定时器1为8位自动重装方式
TL1 = 0xFF; //设定定时初值
TH1 = 0xFF; //设定定时器重装值
ET1 = 0; //禁止定时器1中断
TR1 = 1; //启动定时器1
}
全部回答
- 1楼网友:过活
- 2021-03-20 10:59
51串口有几种工作方式,每种波特率都不尽相同,最常用的是方式一,其波特率由定时器t1的溢出率决定,t1溢出率=fosc/{12*【256-th1】}
baudrate=(2^smod/32)*t1溢出率
一般默认smod=0;无需设置,需要波特率翻倍时smod=1
fosc=22.1184m,你可以计算一下最高波特率,整数的....
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯