找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 258|回復: 3
打印 上一主題 下一主題
收起左側(cè)

初學單片機同步通信 大俠,幫忙找找問題

[復制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:834986 發(fā)表于 2025-6-8 11:51 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式
初學同步通信,幫忙找找出什么問題了?為什么接收不到數(shù)據(jù)。
#include <reg51.h>// 延時函數(shù),用于控制發(fā)送頻率
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端口的開關(guān)狀態(tài)
        switch_data = P1;

        // 發(fā)送數(shù)據(jù)
        SBUF = switch_data;

        // 等待發(fā)送完成(TI置位)
        while(!TI);
        TI = 0;  // 清除發(fā)送完成標志        // 適當延時,避免頻繁發(fā)送
       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);

        // 將接收到的數(shù)據(jù)輸出到P1端口控制LED
        P1 = SBUF;

        // 清除接收完成標志,準備下一次接收
        RI = 0;
    }
}

1.png (66.85 KB, 下載次數(shù): 0)

1.png
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發(fā)
ID:205485 發(fā)表于 2025-6-9 09:10 | 只看該作者
是不是接線錯了?甲機的RX應(yīng)該接乙機的TX,甲機的TX應(yīng)該接乙機的RX
回復

使用道具 舉報

板凳
ID:1023753 發(fā)表于 2025-6-9 09:24 | 只看該作者
你這接法都有問題,RX接TX,TX接RX才對,  你這接法怎么能通訊呢
回復

使用道具 舉報

地板
ID:320306 發(fā)表于 2025-6-11 09:51 | 只看該作者
第一:硬件的接線錯了,上面的壇友已經(jīng)回復了;第二:程序建議用中斷的形式,很多開發(fā)板都有模板,在中斷里面去接收數(shù)據(jù)。
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復 返回頂部 返回列表