我写了个单片机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--)
{}
在主函数中有如上代码为了防止开机电平抖动。不知道这样处理可以不?