unsigned char UDR[3];
unsigned char RXB8;
void Uart_Init()
{
UART1_DeInit();
UART1_Init((u32)115200,UART1_WORDLENGTH_8D, UART1_STOPBITS_1, \
UART1_PARITY_NO,UART1_SYNCMODE_CLOCK_DISABLE,UART1_MODE_RX_ENABLE);
UART1_ITConfig(UART1_IT_RXNE_OR, ENABLE); //开启接收中断
UART1_Cmd(ENABLE);
}
#pragma vector=20
__interrupt void UART1_RX_IRQHandler(void)
{
u8 i=0;
GPIO_WriteLow(GPIOA,GPIO_PIN_3);
GPIO_WriteHigh(GPIOC,GPIO_PIN_4);
if(UART1_GetITStatus(UART1_IT_RXNE)==SET)
{
UDR[i]=UART1_ReceiveData8();
i++;
RXB8=(UDR[i]&0x0008);
}
GPIO_WriteHigh(GPIOC,GPIO_PIN_3);
}
这是我的串口初始化和中断接收函数 用串口助手发ABC为什么只能接收到A ?? |