下面这段程序用串口助手调试不出来,不知道是电路的问题还是程序的问题,先请老师们帮我看看程序有没有什么错误吧
#include <reg52.h>
#define uint unsigned int
#define uchar unsigned char
sbit CTRL485= P1^0;
void UART_init()
{
//初始化串行口和波特率发生器
TMOD=0x20;//设置定时器1为工作方式2
TH1=0xfa;
TL1=0xfa;//4800波特率
TR1=1;//启动定时器1
REN=1;//允许数据接收
SM0=0;
SM1=1;//设定串口工作方式为1
EA=1;
RI = 0; //接收标志位清零
TI = 0; //发送标志位清零
CTRL485 = 0;
}
void uart_putc(unsigned char c)
{
CTRL485=1;
TI=0;
SBUF = c;
while(!TI);//TI=1,表示一帧数据8bit已经发送结束!可以发送下一帧了!
TI=0;
}
char uart_inputc()
{
char c;
CTRL485=0;
RI=0;
c=SBUF;
while(!RI);
RI=0;
return c;
}
//延时nms子程序,
void delay_ms(unsigned int n)
{
unsigned int x;
unsigned char y;
for(x=n;x>0;x--)
for(y=110;y>0;y--);
}
main()
{
UART_init();
while(1)
{
uart_putc('a');
// uart_putc('\n');
delay_ms(500);
}
} |