完善资料让更多小伙伴认识你,还能领取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%,从来都没有传正确吗? |
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
988 浏览 0 评论
645 浏览 0 评论
嵌入式学习-搭建自己的ubuntu系统之ubuntu网络设置
778 浏览 0 评论
龙芯中科胡伟武:3B6600 八核桌面 CPU 性能将达到英特尔中高端酷睿 12~13 代水平
842 浏览 0 评论
树莓派Pico 2发布,搭载RP2350双核RISC-V和Arm Cortex-M33微控制器!
795 浏览 0 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
10758 浏览 31 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-8-19 19:28 , Processed in 0.732977 second(s), Total 60, Slave 53 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号