今天调试SH88F516片子时,出现个很奇怪的问题,就是串口发送一个字节后,片子就重启,重启后发送一个字节,再重启,一直这样.由于本人第一次用此款片子,还希望大虾们给予指导指导,多谢!现在附上程序,大虾们帮看看,是哪里有问题!void initio(void)
{
//---P0口-----
P0M0=0x00;
P0M1=0x00;
//---P1口-----
P1M0=0x00;
P1M1=0x00;
//---P2口-----
P2M0=0x00;
P2M1=0x00;
//---P3口-----
//P30-RXD0 P31-TXD0
P3M0=0X01; //0000 0001
P3M1=0X02; //0000 0010
//---P4口-------
P4M0=0x00;
P4M1=0x00;
}
void uart_init(void)
{
CLKCON = 0x0C; //时钟设置
T2MOD = 0x02;
PCON = 0x00;
T2CON = 0x34; //定时器2产生接收和发送波特率,开启定时器,工作在定时器方式,自动重装载
SCON = 0x50;
RCAP2H = 0xFF;
TH2 = 0xFF;
RCAP2L = 0xCA;
TL2 = 0xCA; //9600
}
char get_char(void)
{
while(RI == 0);
RI = 0;
return SBUF;
}
void put_char(unsigned char ch)
{
SBUF = ch; //发送一个字节
while(TI == 0); //等待TI置1
TI = 0; //清除TI
}
void put_string(unsigned char *str)
{
while(*str)
{
put_char(*str++);
}
}
void uart_test(void)
{
put_char(0x55);
}
void main()
{
initio();
uart_init();
uart_test();
}
|