初级会员

- 积分
- 194
- 金钱
- 194
- 注册时间
- 2014-6-24
- 在线时间
- 56 小时
|

楼主 |
发表于 2016-7-13 10:06:40
|
显示全部楼层
好的
void USART1_IRQHandler(void)
{
if(USART_GetITStatus(USART1, USART_IT_TXE))
{
if (ReceiveDataCnt == 1)
{
USART_SendData(USART1, ReceiveDataBuf[0]);
}
else if ((ReceiveDataCnt>1) && (ReceiveDataCnt<255))
{
USART_SendData(USART1, ReceiveDataBuf[--ReceiveDataCnt]);
}
else if (ReceiveDataCnt == 255)
{
USART_SendData(USART1, ReceiveDataBuf[254]);
}
else
{
USART_SendData(USART1, ReceiveDataBuf[255]);
}
USART_ITConfig(USART1, USART_IT_TXE, DISABLE);
}
if(USART_GetITStatus(USART1, USART_IT_RXNE))
{
ReceiveDataBuf[ReceiveDataCnt] = USART_ReceiveData(USART1);
ReceiveDataCnt++;
ReceiveDataDone = 1;
USART_ITConfig(USART1, USART_IT_TXE, ENABLE);
USART_ClearFlag(USART1,USART_FLAG_RXNE);
}
} |
|