各位大神:小弟用STC8A芯片通过串口与仪器通信,仪器要求为600波特率,1位开始位,偶验佼,2位停止位;编程如下,用示波器观察波形发现偶校验位数据不对,用程序显示P值,也确实会出现错误,请教下问题在哪里,谢谢
串口发送数据程序:
void SendDataByUart1(u8 dat)
{
ACC=dat; //增加偶校验,
TB8=P; // 增加偶校验
SBUF = dat; //写数据到UART数据寄存器
_nop_();
while(TI == 0); //在停止位没有发送时,TI为0即一直等待
delay_ms(2);
TI = 0; //清除TI位(该位必须软件清零)
_nop_();
} |