新手求指导 单片机串口485通讯可发送,但无法接收数据
时间:10-02
整理:3721RD
点击:
程序如下 急求
#include"../include/stc12c5a60s2.h"
#include <intrins.h>
void uartconfugation(void) //串口设置
{
SCON=0x50; //选用模式3,9位可变波特率,允许串行接收,D0
AUXR=0x15; //使用独立波特率发生器
BRT=217; //独立波特率发生器溢出值
RI=0;
SM2 = 0;
REN = 1;
EA=1; //开总中断
ES=1; //串口开中断
}
void send_byte(unsigned char d)
{
ES = 0;
TI = 0; //清零串口发送完成中断请求标志
ACC=d;
TB8=P;
SBUF = d;
while(TI ==0); //等待发送完成
TI = 0; //清零串口发送完成中断请求标志
ES = 1;
}
void main ()
{
unsigned char tmp;
unsigned char i;
dev = 0x04;
uartconfugation();
while (1)
{
if(flag == 1)
{
read_back(&add_40001[0]);
flag = 0;
}
}
}
void usart_isr () interrupt 4 using 1
{
a = SBUF;
flag = 1;
RI = 0;
}
#include"../include/stc12c5a60s2.h"
#include <intrins.h>
void uartconfugation(void) //串口设置
{
SCON=0x50; //选用模式3,9位可变波特率,允许串行接收,D0
AUXR=0x15; //使用独立波特率发生器
BRT=217; //独立波特率发生器溢出值
RI=0;
SM2 = 0;
REN = 1;
EA=1; //开总中断
ES=1; //串口开中断
}
void send_byte(unsigned char d)
{
ES = 0;
TI = 0; //清零串口发送完成中断请求标志
ACC=d;
TB8=P;
SBUF = d;
while(TI ==0); //等待发送完成
TI = 0; //清零串口发送完成中断请求标志
ES = 1;
}
void main ()
{
unsigned char tmp;
unsigned char i;
dev = 0x04;
uartconfugation();
while (1)
{
if(flag == 1)
{
read_back(&add_40001[0]);
flag = 0;
}
}
}
void usart_isr () interrupt 4 using 1
{
a = SBUF;
flag = 1;
RI = 0;
}
急求
485协议只工作在半双工模式。你收发的时候要选择是接受还是发送 给信号到使能引脚
就是那个问题 已经解决了 谢谢!
