发送是主动的,要先发数据才会有中止,没发数据,怎么会触发中止,这个逻辑你要清楚。一般发送用查询形式;
接纳是被迫的,接纳中止由外部设备发送数据发生的。一般用中止接纳方法。假如这样了解应该很清楚了: 发送能够以为内部中止(TI=1,) 接纳能够以为外部中止(RI=1,) 查询发送方法: #include #include #include void initial_uart(); main() { initial_uart(); while(1) { TI=0; SBUF = A; while(!TI); TI=0; }} void initial_uart() { TMOD = 0x20;//定时器1作业在形式2[主动重装形式] SCON = 0x50;//使串口作业在形式1,翻开串口接纳功用[接纳本程序没有用到] PCON = 0x00; TH1 = 0xFD; TL1 = 0xFD; TR1 = 1;//翻开定时器1 ES = 1;//翻开串口中止 EA = 1;//翻开总中止 }