本帖最后由 mei326 于 2011-12-31 09:29 编辑
用串口中断发送9位数据,如何实现?看pdf上说了,需要发送的时候把串口中断使能,即置位TXEN,不需要发送的时候把串口中断禁止。
if((TX1IE)&&(TX1IF))//串口发送中断
{
if(txlenth==1)
{ //最后一个数据
TX9D1 = 1;
TXREG1 = *Ptx; //在串口中断允许之前已指向数据发送缓存首地址
TX1IE = 0;
txlenth = 0;
}
else
{
TX9D1 = 0;
TXREG1 = *Ptx;
Ptx++;
txlenth--;
}
}
偶尔出现数据不正确!不知程序中哪里有误!请指正~ |