完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
求哪位大神可以在这个基础上帮我改一下吗?
PCON = 0x80; SCON = 0x50; TMOD = 0x21; TH1 = 0xfa; TL1 = 0xfa; TR1 = 1; TH0 = 0x00; TL0 = 0x01; ET0 = 1; TR0 = 1; EA = 1; SerDTvalid = FALSE; REN = 1; ES = 1; |
|
相关推荐
11个回答
|
|
这段程序应该是用11.0592M的晶振正好产生9600的波特率,但是我只有12M的晶振没有办法啊
|
|
|
|
初值设为0xF9,不过误差很大,不建议使用。可以将波特率改为4800,或换11.0952M.
|
|
|
|
|
|
|
|
好吧,谢谢了,52是不是提供个timer2,用这个方式误差也是很大吗? |
|
|
|
好吧,谢谢了,52是不是提供个timer2,用这个方式误差也是很大吗? |
|
|
|
52是有timer2.不过波特率和用哪个定时器没有关系的。都一样。 |
|
|
|
void UartInit(void) //9600bps@12.000MHz
{ PCON |= 0x80; //使能波特率倍速位SMOD SCON = 0x50; //8位数据,可变波特率 TMOD &= 0x0F; //清除定时器1模式位 TMOD |= 0x20; //设定定时器1为8位自动重装方式 TL1 = 0xF9; //设定定时初值 TH1 = 0xF9; //设定定时器重装值 ET1 = 0; //禁止定时器1中断 TR1 = 1; //启动定时器1 } 误差百分之六点多,没办法,无不太懂你为什么定时器0也设置了,串口本身是不用,你可以干别的 |
|
|
|
chenhaixin 发表于 2014-5-1 12:21 这个是1T模式还是12T模式啊 |
|
|
|
这个波特率的误差我也曾被折腾过,最后还是换晶振。
|
|
|
|
就是调的再好也会有乱码
|
|
|
|
chenhaixin 发表于 2014-5-1 12:21 能将一下为什么误码率是6%,从来都没有传正确吗? |
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
嵌入式学习-飞凌嵌入式ElfBoard ELF 1板卡-LCD显示图片编程示例之介绍mmap
238 浏览 0 评论
《DNESP32S3使用指南-IDF版_V1.6》第二章 常用的C语言知识点
629 浏览 0 评论
【RA-Eco-RA2E1-48PIN-V1.0开发板试用】(第三篇)ADC采集+PWM输出
552 浏览 0 评论
《DNK210使用指南 -CanMV版 V1.0》第四十五章 人脸识别实验
552 浏览 0 评论
1074 浏览 0 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
11764 浏览 31 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-23 03:16 , Processed in 0.646272 second(s), Total 62, Slave 55 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号