完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
电子发烧友论坛|
这是什么情况,(用8M的晶振),求大神帮助
#include #define uchar unsigned char #define uint unsigned int uint i,flag; void delay(void) { unsigned char m,n; for(m=0;m<200;m++) for(n=0;n<250;n++) ; } void init_uart(void) { TMOD=0X20; TH1=0Xfe; TL1=0Xfe; TR1=1; SCON=0X50; EA=1; ES=1; } void main(void) { init_uart(); while(1) { if(flag==1) { ES=0; flag=0; SBUF=i; while(!ti); TI=0; ES=1; } } } void serial() interrupt 4 { RI=0; i=SBUF; flag=1; } |
|
相关推荐
10个回答
|
|
|
|
|
|
|
|
|
波特率初值计算没错,但是采用8M晶振误差较大,可以换成11.0592M的再试试
|
|
|
|
|
|
看来做串口通信最好用11.0592M的
|
|
|
|
|
|
为了避免误差,以后还是换成11.0592M的吧
|
|
|
|
|
|
|
|
|
|
|
|
不懂,帮顶吧
|
|
|
|
|
|
换成11.0592的就可以了
|
|
|
|
|
|
|
|
|
是定时器重装值太大了,造成分频精度比较低。如果是1T的51核,定时器采用高速模式。这样定时器初值可以小点,相对精度也高点
|
|
|
|
|
|
也就是说我把他改成1T模式,而不是默认的12T模式,这样定时器装入的值就会变小,这样那个就可以提高精度,可是我如果倍频的话装入的数值也会变小的。也不行
|
|
|
|
|
只有小组成员才能发言,加入小组>>
1018 浏览 1 评论
1849 浏览 0 评论
1830 浏览 1 评论
3254 浏览 5 评论
3581 浏览 9 评论
1021浏览 1评论
1850浏览 1评论
如何知道嵌入式电子控制单元 (ECU) 中的RAM使用情况?
1360浏览 1评论
1852浏览 0评论
1178浏览 0评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-2 03:39 , Processed in 1.447006 second(s), Total 95, Slave 74 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
886