|

楼主 |
发表于 2021-1-27 20:57:21
|
显示全部楼层
如下方式,也测试了,只能发送一个字节;
void u3_send_bytes(u8 *bytes,u16 len)
{
data u8 i;
// ES0 = 0; //先关闭串口2中断
// ClearBits(IEN2,BIT0);//IEN2.0
for(i=0;i<len;i++)
{
SBUF1 = bytes[i];
uart3_busy=1;
while(uart3_busy==1);
// while((SCON1&BIT1)==0);//TI1--SCON1.1
// ClearBits(SCON1,BIT1);//SCON1.1--清除SCON1位标志需要连续写2次
// ClearBits(SCON1,BIT1);//SCON1.1
// sys_delay_about_us(200);
}
// ES0 = 1; //再打开中断
// SetBits(IEN2,BIT0);//IEN2.0
// sys_delay_about_us(200);
}
//串口3收发共用一个中断号
void UART3_ISR_PC(void) interrupt 16
{
ClearBits(SCON1,BIT1);//SCON1.1--清除SCON1位标志需要连续写2次
ClearBits(SCON1,BIT1);//SCON1.1
uart3_busy=0;
}
根本就没进中断清零,SCON1.1硬件不置位;
|
|