自己编写了个程序,接送发送数组的,只发送数组或是只接收数组都能实现,但两个合并起来后,就直接进入发送中断了,没有执行接收中断,我是要接收到数组事再发送出去。
void USART3_IRQHandler(void)
{
if(USART_GetITStatus(USART3,USART_IT_RXNE)!=RESET)
{
//if(USART_GetFlagStatus(USART3, USART_FLAG_RXNE) !=RESET)
USART_ClearITPendingBit(USART3,USART_IT_RXNE);
table2[i++]= USART_ReceiveData(USART3);
if(i==21)
USART_ITConfig(USART3, USART_IT_RXNE, DISABLE);
}
if(USART_GetITStatus(USART3,USART_IT_TXE)!=RESET)
{
delay(10);
USART_ClearITPendingBit(USART3,USART_IT_TXE);
USART_ClearFlag(USART3,USART_FLAG_TC);
GPIO_SetBits(GPIOB,GPIO_Pin_14);
USART_SendData(USART3,table2[j++]);
if(j==21)
USART_ITConfig(USART3, USART_IT_TXE, DISABLE);
//GPIO_ResetBits(GPIOB,GPIO_Pin_14);
// while(USART_GetFlagStatus(USART3, USART_FLAG_TXE) == RESET);
}
} |