我写了个单片机io口转串口的程序,但是串口助手在开机的时候总是不能识别正确的起始信号。但是每次复位就没有任何问题。
if(send_flag) { if(sendbitcount==0) //sendbitecongt位发送单字bit位节计数 {VTK_TX=0;TR1=1; //发送起始位 sendbyte=senddat[sendbytecount]; //sendbyte=0xaa; sendbitcount++;} else { if(sendbitcount==9) { VTK_TX=1; //发送结束位 sendbitcount=0; sendbytecount++; //sendbytecount发送字节计数 if(sendbytecount==4) {//TR1=0; //send_flag=0; sendbytecount=0;} } else { VTK_TX = (bit)(sendbyte & 0x01); //发送单个bit位 sendbyte = sendbyte>>1; sendbitcount++; } } }
发送函数在中断中完成的,开始放在中断外面没有上述问题。但是会被其他中断干扰。
VTK_TX=1; for(i=1000;i>0;i--) {}
在主函数中有如上代码为了防止开机电平抖动。不知道这样处理可以不?
|