电脑串口接收不到单片机发过来的数据,但是单片机可以接收电脑串口数据...
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了电脑串口接收不到单片机发过来的数据,但是单片机可以接收电脑串口数据...相关的知识,希望对你有一定的参考价值。
main(void)
TMOD=0x20;//定时器R1的工作方式为2,定时器0的工作方式为0
TH1 =0xfd; //R1的溢出率 ,
TR1 =1;
PCON =0x00;//波特率不提高一倍
SCON =0x50;//设置工作方式为1,可以接收数据
ET1 =0;//关闭定时器1的中断响应
ES =1; //打开串口接收中断
EA =1;
while(1)
// if(p3_6==0)
SBUF='a';
while(!TI);
TI=0;
我的java上位机:http://pan.baidu.com/share/link?shareid=353642754&uk=2904981350
main(void)
TMOD=0x20;//定时器R1的工作方式为2,定时器0的工作方式为0
TH1 =0xfd; //R1的溢出率 ,
TL1=0xfd;
TR1 =1;
PCON =0x00;//波特率不提高一倍
SCON =0x50;//设置工作方式为1,可以接收数据
// ET1 =0;//关闭定时器1的中断响应
// ES =1; //打开串口接收中断
// EA =1;
while(1)
// if(p3_6==0)
SBUF='a';
while(!TI);
TI=0;
追问
电脑可以接收数据,串口调试助手的接收区也显示接收的字符。但是自己写的上位机不显示接收的字符,我上位机:http://pan.baidu.com/share/link?shareid=353642754&uk=2904981350
你帮我看看吧,不知道为什么啊
呵呵,我不太熟悉JAVA
参考技术B 你没有串口中断服务程序,可以这样写 void txd_interrupt(void) interrupt 4SBUF='a';
while(!TI);
就行了 参考技术C ES =1; //打开串口接收中断
这个为什么要打开的,你又没有处理中断程序
希望被采纳追问
打不打开又没区别,我就不知道为什么接收不到数据....
追答模拟串口那边是不是波特率设置错了
追问电脑可以接收数据,串口调试助手的接收区也显示接收的字符。但是自己写的上位机不显示接收的字符,我上位机:http://pan.baidu.com/share/link?shareid=353642754&uk=2904981350
肯定是串口事件监听器的处理函数写错了..你帮我看看吧,不知道为什么啊
52单片机通过usb 串口发送数据给linux,minicom来接收
在window下,串口调色精灵可以收到单片机发来的数据,但是minicom就是接收不到,就指导
在Linux下首先要对minicom进行下串口设置,你可以看下/dev/下的设备,你插入串口的话,会多出来哪个设备,往往都是/dev/ttyUSB*,具体自己看下.设置minicom的话,命令是:minicom -s,也可以自己去找资料.在minicom里要把串口还有波特率都设置好,与单片机代码相符合的波特率.设置好minicom之后重开minicom,这个时候你收发的话,minicom就会显示出接收到的数据了. 参考技术A minicom 要设定波特率之类的才行,也就是说使用前要设置minicom.另外minicom不同于串口助手。相当与windows下的超级终端。追问我设置过了的,我用的是usb串口,是不是与普通的串口一样
追答你先把串口接收和发送线短接,看看minicom上发数据是不是会显示回来,这是最基本的串口调试方法,如果发东西没有回来的话,就说明你的minicom没有设置好,具体的设定方法请百度查查。
参考技术B 这个东西很麻烦的,usb接口是48m的晶振,usb转串口是四分频的也就是12m的,单片机一般用11.0592m,晶振不统一,不管使用那款晶振兼容性都不好,除非使用双晶振的转换器,价格不会低于50人民币的。以上是关于电脑串口接收不到单片机发过来的数据,但是单片机可以接收电脑串口数据...的主要内容,如果未能解决你的问题,请参考以下文章