天天

[原]发个MC9S08AWxx的串口驱动

0
阅读(2920)

 

void sci2_init(void)
{
     SCI2BD = 0;//先关闭SCI
     SCI2BD = CPU_BUS_FREQUENCY/16/9600;
     SCI2C1 = 0; // M = 0,8位数据; PE = 0,关闭奇偶校验;
     SCI2C2 = 0x2C;//TIE=0,TCIE=0,RIT=1 允许接收中断,关闭发送中断;TE=1,RE=1 允许接收发送;
}
//--------------------------发送一字节
void USART2_Tx1Byte(u8 _dat)
{
 while(!SCI2S1_TDRE) __RESET_WATCHDOG(); //等待发送数据寄存器为空
    SCI2D = _dat;

}

void USART2_Tx(u8 * desc, u16 len)
{
 while (len > 0)
 {
  USART2_TransmitByte(*desc ++);
  len --;
 }
 while (!SCI2S1_TC) __RESET_WATCHDOG();  //等待发送完成
}