打印

用串口调试助手调试串口通讯程序的问题

[复制链接]
6004|11
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
gaohq|  楼主 | 2008-8-5 09:48 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我在网上下载了个串口调试助手,用来学串口通讯,自己编了个程序,但不能实现我要的功能,我的硬件实验板既有USB跟PC相连,(给板供电,和在线下载程序.)又有DB9跟PC相连,我的硬件板设的是COM3,那个从硬件板的MAX232出来的用DB9跟PC连的是COM1,我在选折时不知该选COM3还是COM1,如下是程序,那为帮忙看看有什么问题? 现象是串口调试助手的接受区没数据显示.
 #include<reg52.h>
 #define uchar unsigned char
 #define uint unsigned int
 void init()
 {
   TMOD=0X20;
   TH1=0XFD;
   TL1=0XFD;
   SCON=0X40;
   PCON&=0X80;
   REN=1;
   TR1=1;
   ES=1;
   EA=1;
  }

   void main()
  {
    
    init();
    for(;;);
   }
        
void inter() interrupt 4      /*接受到串口调试助手发送区发来的数据后中断*/
{
        uint temp;        
      temp=SBUF;          /*把接受缓冲区的数据传给发送缓冲区*/
      RI=0;
      SBUF=temp;
      while(TI==0);      /*把发送缓冲区的数据发回给PC,在串口调试助手的接受区显示出来,*/
      TI=0;
           
     
  }        

相关帖子

沙发
computer00| | 2008-8-5 10:11 | 只看该作者

连到PC的COM1,当然是选择COM1了。也可以使用超级终端来显示

使用特权

评论回复
板凳
gaohq|  楼主 | 2008-8-5 10:46 | 只看该作者

谢谢00

我在串口调试助手那设置为COM1,在硬件实验板设置位COM3,应该没错了,但在串口调试助手的接受区还是没显示,应该是程序的问题吧?再帮我看看程序有什么错误?

使用特权

评论回复
地板
yihucong| | 2008-8-5 11:18 | 只看该作者

波特率不匹配吧?

波特率不匹配吧?

使用特权

评论回复
5
computer00| | 2008-8-5 11:51 | 只看该作者

你这个程序要发送数据才能自己接收到

你可以开keil下仿真看看,波特率是多少,也可以直接在keil的串口窗口中用键盘输入字母的,如果你的程序工作正常的话,用键盘敲入应该有显示。

检查串口是否正常,可以将你的串口拔下,然后将它的2、3脚连起来,然后用串口调试助手发送数据,应该自己能够收到。

使用特权

评论回复
6
gaohq|  楼主 | 2008-8-5 14:22 | 只看该作者

回00

我用你说的方法检查了串口,是好的,
"你可以开keil下仿真看看,波特率是多少",我不知道怎么看.
"也可以直接在keil的串口窗口中用键盘输入字母的,如果你的程序工作正常的话,用键盘敲入应该有显示"   我试过了,在敲了很多次键后(不同的键)偶尔有一两次显示出来,真不明白是怎么啦?
我在串口调试助手里把波特率设置的是9600

使用特权

评论回复
7
gaohq|  楼主 | 2008-8-5 16:40 | 只看该作者

顶!

使用特权

评论回复
8
zgl7903| | 2008-8-5 19:02 | 只看该作者

个人见解

1:将PC机串口Pin2 Pin3短接,自发自收 确认PC机串口正常 
2:检查硬件外围RS232接口电路
3:检查连接线是否有短路、断路、或接反的情况
4:示波器测量一下RX TX电平,看看是否满足RS232电平规定
5:重复发0x55,测量波形周期 检查波特率是否合适

使用特权

评论回复
9
computer00| | 2008-8-5 19:07 | 只看该作者

开始仿真后,在peripherals菜单下有个serial,点它

然后按F5运行,就可以看到你所设置的波特率了。当然,事先要在选项中设置你的系统时钟。

然后在串行窗口(点那本小字典一样的)敲键盘,应该能看到数据。

从你的设置来看,9600的波特率,应该是用11.0592M的系统时钟。

使用特权

评论回复
10
cshij2009| | 2012-4-26 19:44 | 只看该作者
1:将PC机串口Pin2 ;Pin3短接,自发自收 确认PC机串口正常 2:检查硬件外围RS232接口电路3:检查连接线是否有短路、断路、或接反的情况4:示波器测量一下RX TX电平,看看是否满足RS232电平规定5 ...
zgl7903 发表于 2008-8-5 19:02

测试太好啦!

使用特权

评论回复
11
xm3love| | 2012-4-26 19:50 | 只看该作者
楼主问题肯定解决了吧

使用特权

评论回复
12
logokfu| | 2012-4-26 19:53 | 只看该作者
楼主问题肯定解决了吧

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

378

主题

3763

帖子

5

粉丝