我用ch340实现串口,正确应该在发送时txd信号灯亮,接收时rxd信号灯亮;例程是按住复位键,PC端接收到数据,但是我的板子从按下复位键到抬起,rxd灯一直亮,应该只亮一下。请问是什么原因呢??
例程如下:
void USART2_IRQHandler(void) //USART接收中断
{
if(USART_GetITStatus(USART2, USART_IT_RXNE) != RESET) //判断标志位
{
USART_ClearFlag(USART2, USART_IT_RXNE); //清除标志位
sprintf((char*)string,"HELLO %d",11); //写入字符串
LCD_DisplayStringLine(Line1,string); //
}
}
void USART_SEND(u8 *str) //定义串口发送函数
{
int index=0; //定义一个整型变量
do
{
USART_SendData(USART2, str[index++]); //当查询到标志位后,一位一位发送数据,直至数据全部发送完毕
while(USART_GetFlagStatus(USART2,USART_FLAG_TXE)==RESET);
} while(str[index]!=0);
}