OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 7325|回复: 1

uCOS下串口中断数据的接收问题

[复制链接]

17

主题

54

帖子

0

精华

初级会员

Rank: 2

积分
143
金钱
143
注册时间
2012-8-23
在线时间
0 小时
发表于 2013-12-23 14:33:34 | 显示全部楼层 |阅读模式
在ucos下建立的一个任务处理串口中断的数据,将串口中断的数据通过串口发回给电脑。
串口中断主要接受电脑发来的数据,数据长度在40个字节以下,波特率为115200。
在app.c中定义了一个全局数组DataBuffer[40],串口中断中外部引用这个数组,将串口接收到的数据拷贝到DataBuffer中,然后置位Data_Flag说明接收到全部数据。
然后在任务中循环查询Data_Flag这个标识,如果置位了就将数据放入放松缓冲区,开始发送。
void USART1_IRQHandler(void)
   u8 tmp;
   
   if(USART_GetITStatus(USART1, USART_IT_RXNE) != RESET)
   { 
 USART_ClearITPendingBit(USART1, USART_IT_RXNE);
          tmp = USART_ReceiveData(USART1);
             Rxbuffer[Rxcount++]=tmp;
   }
  
   if(USART_GetITStatus(USART1, USART_IT_TXE) != RESET)
   {
      USART_ClearITPendingBit(USART1, USART_IT_TXE);
   }

  if(Rxcount>0x20)
  {
    for(int i=0;i<40;i++)
    {
        DataBuffer=Rxbuffer;
    }
    DataCount=Rxcount;
    Data_Flag=1;

     if(Rxbuffer[0]==0xFF)
{
   switch(Rxbuffer[1])  
{
    
case 0xEE:
if(Rxbuffer[2]==0x55)
{
AutoRun_Flag=1;
                                        }
  default:  break;
}

   }
    }
for(tmp=0;tmp<40;tmp++)  //清空数据缓冲区,等待下一次接收
   Rxbuffer[tmp]=0x00;
Rxcount=0x00;
  }
}


static  void  AppTaskKbd (void *p_arg)  
{
   INT8U tmp=0;
   (void)p_arg;

   while(DEF_TRUE) 
     {
if(Data_Flag==1)
{
Data_Flag=0;
USART1_Printf(Data_Buffer,DataCount);
                }
     }
}

现在的问题是串口中断接收到数据后,任务里面发送不了数据。

试了在串口中断里面手动填充8个数据,任务里面还是发送不了。如果在任务里面手动填充数据,就能发送。感觉好像是Data_Buffer这个全局数组不能由串口填充,两边不能共享。

求大神解答

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-12-23 17:21:51 | 显示全部楼层
回复【楼主位】lxc115:
---------------------------------
可以仿真看一下,Data_Buffer里面的数据是什么情况.
在你的:AppTaskKbd 任务:
USART1_Printf(Data_Buffer,DataCount);
处设置断点,然后等待进入,再看:,Data_Buffer的数据即可.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-7-7 17:05

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表