单独串口发送正常,单独串口接受正常,现在先串口发送,然后串口接收不正常,怎么回事?
现在用STM32F103和迪文屏通信
写了串口发送函数:
void chaxun(char addr_l,char addr_h)
{
USART2->DR=0x5a;
while((USART2->SR&0X40)==0);//等待发送结束
USART2->DR=0xa5;
while((USART2->SR&0X40)==0);//等待发送结束
USART2->DR=0x04;
while((USART2->SR&0X40)==0);//等待发送结束
USART2->DR=0x83;
while((USART2->SR&0X40)==0);//等待发送结束
USART2->DR=addr_l;
while((USART2->SR&0X40)==0);//等待发送结束
USART2->DR=addr_h;
while((USART2->SR&0X40)==0);//等待发送结束
USART2->DR=0x01;
while((USART2->SR&0X40)==0);//等待发送结束
}
现在执行chaxun(0x00,0x20),串口发送5a a5 04 83 00 20 01 正常
写了串口接收函数:
void USART2_IRQHandler(void) ///串口 1 的中断响应函数
{
USART2_RX_BUF[Rec2i]=USART2->DR;
  ag_D[Rec2i]=USART2_RX_BUF[Rec2i]; //Pag_D[] 自己定义的数组,接收串口数据
Rec2i++; //Rec2i---自己定义的int8变量
}
可以接受串口数据
但是现在
chaxun(0x00,0x20);
USART2_IRQHandler();
串口一个 数据也接受不到,怎么回事?
用串口调试助手,发送5a a5 04 83 00 20 01,然后就可以接收到屏发回来的数据,都正常
请大家指点,多谢!!!
|