标题:
初学单片机同步通信 大侠,帮忙找找问题
[打印本页]
作者:
linan_111linan
时间:
2025-6-8 11:51
标题:
初学单片机同步通信 大侠,帮忙找找问题
初学同步通信,帮忙找找出什么问题了?为什么接收不到数据。
#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)
下载附件
2025-6-8 11:48 上传
作者:
红花无常
时间:
2025-6-9 09:10
是不是接线错了?甲机的RX应该接乙机的TX,甲机的TX应该接乙机的RX
作者:
haiyang201
时间:
2025-6-9 09:24
你这接法都有问题,RX接TX,TX接RX才对, 你这接法怎么能通讯呢
作者:
zsyzdx
时间:
2025-6-11 09:51
第一:硬件的接线错了,上面的坛友已经回复了;第二:程序建议用中断的形式,很多开发板都有模板,在中断里面去接收数据。
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1