找回密码
 立即注册

QQ登录

只需一步,快速开始

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

单片机串口怎么接受不到数据?

[复制链接]
跳转到指定楼层
楼主
ID:149043 发表于 2023-5-19 10:01 来自手机 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
void Usart() interrupt 4
{
    u8 receiveData;
    receiveData= Weight_Shiwu;
//     receiveData=SBUF;//出去接收到的数据
//    RI = 0;//清除接收中断标志位
    SBUF=receiveData;//将接收到的数据放入到发送寄存器
    while(!TI);             //等待发送数据完成
    TI=0;                         //清除发送完成标志位
   
}
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:149043 发表于 2023-5-19 10:14 来自手机 | 只看该作者
void UsartInit()  {      SCON=0X50;            //设置为工作方式1      TMOD=0X20;            //设置计数器工作方式2      PCON=0X80;            //波特率加倍      TH1=0XF3;                //计数器初始值设置,注意波特率是4800的      TL1=0XF3;      ES=1;                        //打开接收中断      EA=1;                        //打开总中断      TR1=1;                    //打开计数器  }
回复

使用道具 举报

板凳
ID:861234 发表于 2023-5-19 12:17 | 只看该作者
通讯的要看2方设置和晶振
回复

使用道具 举报

地板
ID:646520 发表于 2023-5-19 12:47 | 只看该作者
检查下波特率和接线吧
回复

使用道具 举报

5#
ID:596109 发表于 2023-5-19 13:11 | 只看该作者
查看一下初始化有没有问题,然后看看串口有没有收到实际的数据
回复

使用道具 举报

6#
ID:123289 发表于 2023-5-19 14:50 | 只看该作者
通讯是双方的事,需要双方满足条件。单独讨论一方无意义。
回复

使用道具 举报

7#
ID:149043 发表于 2023-5-19 15:05 来自手机 | 只看该作者
yxtao 发表于 2023-5-19 13:11
查看一下初始化有没有问题,然后看看串口有没有收到实际的数据

串口没有收到数据
回复

使用道具 举报

8#
ID:94031 发表于 2023-5-19 18:29 | 只看该作者
你的串口中断只是发送,没有接收。
回复

使用道具 举报

9#
ID:1004455 发表于 2023-5-19 23:11 | 只看该作者
串口有没有初始化,或者引脚接的不对
回复

使用道具 举报

10#
ID:420836 发表于 2023-5-20 08:32 | 只看该作者
请让我们看看设置和初始化串口的代码。
回复

使用道具 举报

11#
ID:1073939 发表于 2023-5-20 09:55 | 只看该作者

串口中断的写法如图所示。
如楼主只想把接收的数据转发回去,SBUF = receiveData;此行注释去除就行。
如果想正常使用串口发送,要添加如下代码:
  1. //注意串口初始化要有TI=1;
  2. char putchar (char c)
  3. {
  4.         while(!TI);
  5.         TI=0;
  6.         SBUF = c;
  7.         return c;
  8. }
复制代码



回复

使用道具 举报

12#
ID:1074206 发表于 2023-6-1 08:25 来自手机 | 只看该作者
波特率没有设置对,一般都是这种低级问题
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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