打印

关于stm32f207 串口中断问题

[复制链接]
3103|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

粉丝