找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 15227|回复: 10
打印 上一主题 下一主题
收起左侧

单片机向电脑发送数据,为什么串口调试助手收不到数据 求助

[复制链接]
跳转到指定楼层
楼主
单片机向电脑发送数据,为什么串口调试助手收不到数据
SCON = 0x40;   //配置串口为模式1
    TMOD &= 0x0F;  //清零T1的控制位
    TMOD |= 0x20;  //配置T1为模式2
    TH1 = 0xf3;  //计算T1重载值
    TL1 = TH1;     //初值等于重载值
    TR1 = 1;       //启动T1
    ES = 1;   //打开串口中断
    EA = 1;   //打开总中断
    while(1)
{
      SBUF = dat1;
          while(!TI);
          TI=0;
    }

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶1 踩
回复

使用道具 举报

沙发
ID:82765 发表于 2017-3-17 14:51 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

板凳
ID:157238 发表于 2017-3-17 16:40 | 只看该作者
可能是比特率设置的问题
回复

使用道具 举报

地板
ID:123289 发表于 2017-3-17 16:51 | 只看该作者
你向外国人喊,要知道你回了你什么话,有三个条件:
1、他听懂了你的话
2、他回了你的话
3、你懂他的语言
回复

使用道具 举报

5#
ID:151348 发表于 2017-3-17 17:06 | 只看该作者
试试我这个
#include <reg52.h>
#define uint unsigned int
#define uchar unsigned char
#define BAUD 9600
#define XTAL 11059200

//****************************************
//延时
//****************************************
void delay(unsigned int k)       
{                                               
        unsigned int i,j;                               
        for(i=0;i<k;i++)
        {                       
                for(j=0;j<121;j++);
        }                                               
}
/***************************************************
                    发送一个字节
***************************************************/
void SendByte(unsigned char dat)
{
SBUF = dat;
while(!TI);
      TI = 0;
}
//**************************************************
void sendString(char *str)
{
while(*str!='\0')// \0 表示字符串结束标志,
                //通过检测是否字符串末尾
  {
  SendByte(*str);
  str++;
  }
}

void main()
{
        SCON = 0x50;
        TMOD = 0x20;
        PCON = 0x00;
        TH1 = (unsigned char)(256 - XTAL/12/32/BAUD);
        TL1 = TH1;
        TI   = 0;
        RI   = 0;
        TR1  = 1;
        IE   = 0x90;
        while(1)
        {
                sendString("abcd\r\n");
                delay(1200);
        }
}

tup.png (93.85 KB, 下载次数: 108)

tup.png
回复

使用道具 举报

6#
ID:171696 发表于 2017-3-18 04:46 来自手机 | 只看该作者
TL0=TH0是不是错了
回复

使用道具 举报

7#
ID:160547 发表于 2017-3-18 08:58 | 只看该作者
cjjcjj1 发表于 2017-3-17 14:51
你好!你的晶振用的多大的?串口接收波特率设置对了吗

晶振12m,比特率2400
回复

使用道具 举报

8#
ID:160547 发表于 2017-3-18 15:08 | 只看该作者
imxuheng 发表于 2017-3-17 17:06
试试我这个
#include
#define uint unsigned int

sbuf不是应该等于你要发的字符串么,dat是什么啊
回复

使用道具 举报

9#
ID:111634 发表于 2017-3-18 15:20 | 只看该作者
本帖最后由 zl2168 于 2017-3-18 15:21 编辑

单片机与PC机虚拟串行通信
实验16 与PC机虚拟串行通信.rar (151.41 KB, 下载次数: 63)

Proteus仿真一下,确认有效。
以上摘自张志良编著80C51单片机实用教程》ISBN978-7-04-044532-9,高教社出版。
书中电路和程序设计有详细说明,程序语句条条有注解。
回复

使用道具 举报

10#
ID:151348 发表于 2017-3-18 16:07 | 只看该作者
小霸王2 发表于 2017-3-18 15:08
sbuf不是应该等于你要发的字符串么,dat是什么啊

SBUF = dat;这句就是你把你要发的给串口。
回复

使用道具 举报

11#
ID:482335 发表于 2020-3-25 11:46 | 只看该作者
imxuheng 发表于 2017-3-17 17:06
试试我这个
#include
#define uint unsigned int

我完全一样都没用,我也是11.052的晶振
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表