单片机C51与CH375串口连接时,我的测试程序如下: #include
#define CHECK_EXIST 0x06
void delay(void);
void main(void) { unsigned char data temp;
EA= 0; SCON= 0xd0; //´®¿Ú¹¤×÷·½Ê½3 ES= 1; PCON= PCON & 0x7f; //SMOD= 0
TMOD= 0x20; //¶¨Ê±Æ÷1¹¤×÷·½Ê½2 TH1= 0xfd; TL1= 0xfd;
IT0= 1; //ÍⲿÖжÏ0³õʼ»¯ EX0= 1;
ET1= 0; //¶¨Ê±Æ÷1ÖÐ¶Ï¹Ø TR1= 1; //Æô¶¯¶¨Ê±Æ÷1 EA= 1; TB8= 1; //·¢Ë͵ÄÊÇÃüÁî temp= CHECK_EXIST; SBUF= temp; delay(); TB8= 0; SBUF= 0x55;
while(1){} }
void UART(void) interrupt 4 using 2 { unsigned char temp; if(RI==1) { P1= 0xaa; } }
void delay(void) { unsigned char i; i= 0x0f; while(i) { i--; } } 测试程序流程为: 1.单片机通过串口发出测试命令CHECK_EXIST 2.再发送测试数据0X55; 3.等待从CH375发来的串口测试数据0XAA;
请问这样的流程有没错呢?CH375会不会先向单片机外部中断,单片机分析中断状态,发出读数据命令,CH375才发来数据0xaa呢? 不过,我想不会有中断的吧,直接就是串口数据0xaa.是不是?
上面的程序有什么问题吗?