完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
当单片机收到串口通信助手发送的数据后,把数据发回串口通信助手,并且每一次都在前面加上一个编号,程序如下,但是为什么发送一个字符时正常,
发送两个或两个以上字符时就不正常呢?会发回两个编号,如发送abc,会接收到000a001b,连c不见了,这是什么原因呢?求大神,谢谢 #include #define uint unsigned int #define uchar unsigned char uchar flag,aa; uchar ch[3]; uint i=0; void init() { TMOD=0x20; //T1工作在8位重装定时器状态 PCON=0x80; SCON=0x50; TH1=0xf3; //此处晶振频率为12m,求11.0592m的初值反而不成功,这是个问题 TL1=0xf3; //设置波特率为4800bps EA=1; ES=1; TR1=1; } void main() { init(); while(1) { if(flag==1) { flag=0; ES=0; //关闭串行中断 ch[0]=i/100+48; //设百位,转常量为字符常量 ch[1]=(i/10)%10+48; //设十位 ch[2]=i%10+48; //设个位 i++; if(i==256) i=0; SBUF=ch[0]; while(!ti); TI=0; SBUF=ch[1]; while(!TI); TI=0; SBUF=ch[2]; while(!TI); TI=0; SBUF=aa; while(!TI); TI=0; ES=1; } } } void ser() interrupt 4 { aa=SBUF; RI=0; //软件清零RI flag=1; } |
|
相关推荐
2个回答
|
|
|
|
|
|
你在发送数据的过程中关闭了接收中断,这样在发送时就不能接收数据了,因此会漏掉一些数据
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
为什么用FatFS在SD卡创建文件,在单片机上读写正常,用读卡器插到电脑上就什么都没有
1075 浏览 0 评论
1129 浏览 2 评论
《DNK210使用指南 -CanMV版 V1.0》第九章 打印输出实验
499 浏览 0 评论
stm32f407+ksz8863rlli概率性ping不通
1211 浏览 1 评论
嵌入式学习-飞凌嵌入式ElfBoard ELF 1板卡-常见网络服务搭建之NFS服务搭建
586 浏览 0 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
11391 浏览 31 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-10-3 13:20 , Processed in 0.583613 second(s), Total 78, Slave 60 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号