|
代码如下:
卡两天了·
// sbit TR4 = P0^0;
void Uart_Init(u32 baud_rate)
{
u16 i=0;
i=FOSC/8/baud_rate;
BODE4_DIV_H = (u8)(i>>8); //
BODE4_DIV_L = (u8)i; //
SCON4T= 0x80 ;//发送使能和模式设置
SCON4R= 0x80;//接受使能和模式设置
ES4R = 1;//中断接受使能
ES4T = 1;//中断发送使能
// P0MDOUT|=(1<<0); //p0^0 强推
TR4=0;
// EA = 1;
}
void uart4_Risr() interrupt 11 //串口4中断接收
{
R_u4[R_CN4]=SBUF4_RX;
xxxxx=1;
SCON4R&=0xFE;
R_OD4=1;
if(R_CN4<UART4_RX_LENTH-1) R_CN4++;
T_O4=5;
}
void uart_frame_deal(){
if((1==R_OD4)&&(T_O4==0))
{
// deal_uart_data(R_u4,(u16*)(&R_CN4),4,RESPONSE_UART4,CRC_CHECK_UART4);
R_OD4=0;R_CN4=0;
} //串口4数据收发
}
void uart4t_Isr() interrupt 10
{
SCON4T&=0xFE ;
Busy4=0;
}
|
|