一点小经验**分享** 点击:895 | 回复:0



endeavor

    
  • 精华:0帖
  • 求助:0帖
  • 帖子:11帖 | 42回
  • 年度积分:0
  • 历史总积分:143
  • 注册:2004年3月13日
发表于:2005-05-23 13:32:00
楼主
昨晚,对单片机串口通信进行测试。 费了好久都没有查到出错原因 索性放弃明天再做 后来与一师兄讨论时,意外找到原因 竟然是程序执行的太快了,没有留给足够的通信时间! 在多本参考书中,或一些小工具软件里,均没有写相关延时等等的命令。 真不明白,怎么那么好的书,在写程序时不写那条命令呢?(还说程序通过测试,唉) 下面我将调试通过的程序与大家分享: #include<reg51.h> #include<intrins.h> #define uchar unsigned char uchar n; void initUart(void) { TMOD|=0x20; SCON=0x50; TH1=0xfd; TL1=0xfd; TR1=1; } //void uart(void) interrupt 4 //{ //} void main(void) { uchar m; P0=0x03; m=P0; initUart(); while(1) { while(!RI); RI=0; n=SBUF; SBUF=n; while(!TI); TI=0; m=_cror_(m,1); P0=m; } } 可以使用串口精灵测试。 欢迎与我联系,共同进步!!! lienlai@126.com


热门招聘
相关主题

官方公众号

智造工程师