完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
我是用的485转USB接的电脑,用的开发板,电路没问题;上位机是sscom的串口调试工具;但每次只能正确收发一位数字,双位数或更高位就会显示乱码。单片机程序如下:
#include #define uchar unsigned char #define uint unsigned int uint flag,i; uchar a[1]; ***it CS=P3^7; void init()//串口初始化 { TMOD=0x20; TH1=0xF3; TL1=0xF3; TR1=1; //开波特率 REN=1; //允许串口接收数据 SM0=0;//串口工作方式1,8位数据传送 SM1=1; EA=1;//开总中断 ES=1; //串口中断开 } void main() { init(); //串口初始化 while(1) { if(flag==1) { ES=0; CS=1; for(i=0;i<1;i++) { SBUF=a[i]; while(!ti); TI=0; } ES=1; CS=0; //软件清零 打开接送中断 flag=0; // 标志位清零 } } } void ser() interrupt 4 { for(i=0;i<1;i++) { a[i]=SBUF; while(!RI); RI=0; } flag=1; //接收完成标志位 } 如果i取得是1,程序收发正常;但取2以上单片机就不发送或乱码。单片机用的是90C516RD。希望大神帮忙解答,谢谢。 |
|
相关推荐
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
LDO线性稳压器产生了模拟电源与数字电源,模拟电源去给运放供电,他们的地是不是同一个地?
2576 浏览 2 评论
2466 浏览 1 评论
1200 浏览 0 评论
3537 浏览 1 评论
ad把一个15mm*1.5mm的灯放到直径15mm的圆形pcb板上,可以实现吗
3271 浏览 1 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-1-31 06:03 , Processed in 0.593571 second(s), Total 70, Slave 53 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号