代码:
void uart1_init()
{
GPIOA_SetBits(bRXD1);
GPIOA_ModeCfg(bRXD1, GPIO_ModeIN_PU);
GPIOA_SetBits(bTXD1);
GPIOA_ModeCfg(bTXD1, GPIO_ModeOut_PP_5mA);
UART1_DefInit();
UART1_INTCfg( ENABLE, RB_IER_RECV_RDY|RB_IER_LINE_STAT );
PFIC_EnableIRQ( UART1_IRQn );
}
__attribute__((interrupt("WCH-Interrupt-fast")))
__attribute__((section(".highcode")))
void UART1_IRQHandler( void )
{
switch ( UART1_GetITFlag() )
{
case UART_II_LINE_STAT : // 线路状态错误
{
UART1_GetLinSTA();
break;
}
case UART_II_RECV_RDY : // 数据达到设置触发点
break;
case UART_II_RECV_TOUT : // 接收超时,暂时一帧数据接收完成
len1 = UART1_RecvString( Rx1Buff );
UART1_SendString(Rx1Buff,len1);
SendToBle(Rx1Buff,len1);
break;
case UART_II_THR_EMPTY : // 发送缓存区空,可继续发送
break;
case UART_II_MODEM_CHG : // 只支持串口0
break;
default :
break;
}
}