完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
这是我的程序,这是哪里的问题?感觉程序很对呀。
#include #define uchar unsigned char #define uint unsigned int uchar buff[]={'1','2','3','4',}; void delay(uint z) { uint x,y; for(x=0;x } void comm(uchar *parr,uchar len)//串口数据发送函数 { uchar i; for(i=0;i SBUF=*parr ++; //发送数据 delay(2000); if(ti) //如果是发送标志位,清零 TI=0; } //标志清零 } void main (void) { SCON = 0x50; /* SCON: 模式 1, 8-bit UART, 使能接收 */ TMOD |= 0x20; /* TMOD: timer 1, mode 2, 8-bit reload */ TH1 = 0xFD; /* TH1: reload value for 9600 baud @ 11.0592MHz */ TR1 = 1; /* TR1: timer 1 run */ EA = 1; /*打开总中断*/ ES = 1; delay(200); comm(buff,4); while(1) {} } |
|
相关推荐
4个回答
|
|
恭喜楼上,答对了!
他的意思是 while(!TI); 可以参考这个https://bbs.elecfans.com/jishu_472128_1_1.html 当然,如果你非要追问为什么吗。。。 嗯 楼上接着回答,走喽! |
|
|
|
能不能麻烦你具体说说是哪里循环出了问题啊?真的看了好久,还是第一个字符一直发两遍。拜托拜托。 |
|
|
|
什么意思,是if(TI)改为while(!TI)吗?真的很想知道这是怎么回事。 |
|
|
|
TI = 1:发送完毕 那TI = 0;表示没有触发标记,没有发送完毕。 whil(!TI)不就是等待发送完毕吗! |
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
4849 浏览 3 评论
6138 浏览 1 评论
6406 浏览 0 评论
Protues中自己封装的芯片元件无Program File、Clock Frequency选项怎么解决,求求大神了!
8154 浏览 1 评论
基于51单片机的车辆倒车雷达报警系统,HC-SR04超声波测距,全套资料
1236 浏览 0 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-30 05:49 , Processed in 1.442726 second(s), Total 81, Slave 64 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号