关于stm32f207 串口中断问题

[复制链接]
3505|3
 楼主| wlzxzq 发表于 2013-11-20 08:54 | 显示全部楼层 |阅读模式
一下是中断处理函数。   
uint8_t i=0;
   if(USART_GetITStatus(UART4, USART_IT_RXNE) != RESET)    //判断读寄存器是否非空
   {
        USART_ClearITPendingBit(UART4,USART_IT_RXNE);  //请中断标志
         UARTRcvBuffer[RxCounter1++] = USART_ReceiveData(UART4);   //将读寄存器的数据缓存到接收缓冲区里
   }
      
  if((UARTRcvBuffer[0]==0x41 && UARTRcvBuffer[1]==0x54))
  {
   if((UARTRcvBuffer[RxCounter1-2]==0x0d && UARTRcvBuffer[RxCounter1-1]==0x0a))    //判断结束标志是否是0x0d 0x0a
   {
   flag_a  = 1;
   memcpy( DataProcQuene , UARTRcvBuffer , RxCounter1 );
   DataProcQueneLengh = RxCounter1;
   memset( UARTRcvBuffer , 0x00 , RxCounter1 );
   RxCounter1=0;
    }
}


在这里我发现一个问题。就是说 我发送  41 54 00 11 22 33 0d 0a 是正常接收并且处理的
但是 当我发送41 54 00 11 22 33 0d 0a  01 的时候,处理器就会回返41 54 00 11 22 33 0d 0a  然后我在利用串口精灵向mcu发送41 54 00 11 22 33 0d 0a  01,这个时候cpu就不知道怎么发送了,就是说我利用串口精灵回显时,接收不到数据了。
我看到了stm32 uart4 的中断机制是 一个字节(8位)中断一次。也就是说我的通信协议有问题,我没有找出问题来
请同学们帮我看一下吧,谢谢
chenyu988 发表于 2013-11-20 12:00 | 显示全部楼层
换个串口工具试试
 楼主| wlzxzq 发表于 2013-11-21 08:42 | 显示全部楼层
你这是什么思路,不是串口问题
 楼主| wlzxzq 发表于 2013-12-15 20:48 | 显示全部楼层
是我的ttl转232模块除了问题,是mcu地方的rxd txd浮空。输出不稳定
您需要登录后才可以回帖 登录 | 注册

本版积分规则

13

主题

177

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部