找回密码
 立即注册

QQ登录

只需一步,快速开始

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

初学单片机同步通信 大侠,帮忙找找问题

[复制链接]
跳转到指定楼层
楼主
初学同步通信,帮忙找找出什么问题了?为什么接收不到数据。
#include <reg51.h>// 延时函数,用于控制发送频率
void delay(unsigned int time) {
    unsigned int i, j;
    for(i = 0; i < time; i++)
        for(j = 0; j < 120; j++);
}

void main() {
    unsigned char switch_data;

    // 配置串口为方式0(同步移位寄存器方式)
    SCON = 0x00;  // SM0=0, SM1=0, 方式0
   // ES=1;
   // EA=1;
    while(1) {
        // 读取P1端口的开关状态
        switch_data = P1;

        // 发送数据
        SBUF = switch_data;

        // 等待发送完成(TI置位)
        while(!TI);
        TI = 0;  // 清除发送完成标志        // 适当延时,避免频繁发送
       delay(5000);
    }
}



#include <reg51.h>void main() {
    // 配置串口为方式0(同步移位寄存器方式),并使能接收
    SCON = 0x10;  // SM0=0, SM1=0, REN=1(允许接收)
    REN=1;
   // ES=1;
   // EA=1;
    while(1) {
        // 等待接收完成(RI置位)
        while(!RI);

        // 将接收到的数据输出到P1端口控制LED
        P1 = SBUF;

        // 清除接收完成标志,准备下一次接收
        RI = 0;
    }
}

1.png (66.85 KB, 下载次数: 0)

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

使用道具 举报

沙发
ID:205485 发表于 2025-6-9 09:10 | 只看该作者
是不是接线错了?甲机的RX应该接乙机的TX,甲机的TX应该接乙机的RX
回复

使用道具 举报

板凳
ID:1023753 发表于 2025-6-9 09:24 | 只看该作者
你这接法都有问题,RX接TX,TX接RX才对,  你这接法怎么能通讯呢
回复

使用道具 举报

地板
ID:320306 发表于 2025-6-11 09:51 | 只看该作者
第一:硬件的接线错了,上面的坛友已经回复了;第二:程序建议用中断的形式,很多开发板都有模板,在中断里面去接收数据。
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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