电脑串口接收不到单片机发过来的数据,但是单片机可以接收电脑串口数据...
main(void){TMOD=0x20;//定时器R1的工作方式为2,定时器0的工作方式为0TH1=0xfd;//R1的溢出率,TR1=1;PCON=0x00;//波特...
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 展开
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 展开
3个回答
展开全部
#include<reg51.h>
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;
}
}
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
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
迪凯特科技(北京)有限公司_
2025-01-03 广告
2025-01-03 广告
要从电脑的一个串行口接收数据并将其从另一个串行口发送出去,你可以使用以下步骤:1. 确定你要使用的两个串行口。在大多数计算机上,串行口通常被称为COM1、COM2等。确保你了解每个串行口的名称或编号。2. 编写一个程序来读取来自一个串行口的...
点击进入详情页
本回答由迪凯特科技(北京)有限公司_提供
展开全部
你没有串口中断服务程序,可以这样写 void txd_interrupt(void) interrupt 4 {
SBUF='a';
while(!TI);
}就行了
SBUF='a';
while(!TI);
}就行了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
ES =1; //打开串口接收中断
这个为什么要打开的,你又没有处理中断程序
希望被采纳
这个为什么要打开的,你又没有处理中断程序
希望被采纳
更多追问追答
追问
打不打开又没区别,我就不知道为什么接收不到数据....
追答
模拟串口那边是不是波特率设置错了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询