请教简单的单片机串行通信程序,uPSD33xx大侠们一定要进来看看,
这是我写的一个小程序,单片机发送高低电平:
#include "upsd3300.h"
#include "upsd3300_hardware.h"
#define uchar unsigned char
#define uint unsigned int
void uart_init()
{
TMOD|=0x20; //0010,0000 定时器1,定时方式2 自动重装装计数器
SCON|=0x50; //0101,0000 串口方式1,允许接收,无奇偶校验位
PCON = 0x00; //SMOD=0;波特率bu加倍
TL1 = 0x1D;
TH1 = 0x1D; //0x1d设置波特率为137.5bps;
TR1 = 1;
}
void Delay(unsigned int a)
{
unsigned char i;
while( --a != 0)
{
for(i = 0; i < 3; i++);
}
}
void main(void)
{
unsigned char i=0;
WDKEY=0x55;
uart_init();
Delay(5000); //上电延时
while(1)
{
while(i<100)
{ SBUF = 0x00;
while(TI ==0); //等待发送完成
TI = 0; //清零串口发送完成中断请求标志
i++;
}
while(i<200)
{
SBUF = 0xff;
while(TI ==0); //等待发送完成
TI = 0; //清零串口发送完成中断请求标志
i++;
}
i=0;
}
}
同样的程序,我改一下头文件在STC89C52中可以正常运行,在TXD脚上可以测得高低电平,但是下载到uPSD3334D中,TXD引脚
上的电平就没有变化,总是保持在3.3V,我已经在PSDsoftExpress中将P3.0,P3.1设置为串行输入输出了,还有别的地方需要配
置吗?或是程序有问题?已经被这个问题纠结很多天了,谢谢诸位啦