今天调试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();
- }
|