OpenEdv-开源电子网

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

求教各位大神怎么将串口收到的数据读出来

[复制链接]

3

主题

6

帖子

0

精华

新手上路

积分
38
金钱
38
注册时间
2014-3-21
在线时间
0 小时
发表于 2014-9-14 19:02:39 | 显示全部楼层 |阅读模式
5金钱

如题,用其他单片机串口发数据给cc2530,接收函数MT_uart.c中处理如下

void MT_UartProcessZToolData_DIY ( uint8 port, uint8 event )

{

    uint8 flag=0,i,j=0;   //flag 是判断有没有收到数据,j 记录数据长度

    uint8 buf[128];       //串口 buffer 最大缓冲默认是 128,我们这里用 128.

   (void)event;           // Intentionally unreferenced parameter  

    while (Hal_UART_RxBufLen(port)) //检测串口数据是否接收完成

   {

      HalUARTRead (port,&buf[j], 1);    //把数据接收放到 buf 中

      j++;                              //记录字符数

      flag=1;                           //已经从串口接收到信息

   } 

    if(flag==1)      //已经从串口接收到信息

    {  /* Allocate memory for the data */

      //分配内存空间,为结构体内容+数据内容+1 个记录长度的数据

    pMsg = (mtOSALSerialData_t *)osal_msg_allocate( sizeof   

              ( mtOSALSerialData_t )+j+1);

        //事件号用原来的 CMD_SERIAL_MSG

    pMsg->hdr.event = CMD_SERIAL_MSG; 

    pMsg->msg = (uint8*)(pMsg+1);   //把数据定位到结构体数据部分

    pMsg->msg [0]= j;               //给上层的数据第一个是长度

    for(i=0;i<j;i++)                //从第二个开始记录数据 

       pMsg->msg [i+1]= buf;   

    osal_msg_send( App_TaskID, (byte *)pMsg );  //登记任务,发往上层

          /* deallocate the msg */

    osal_msg_deallocate ( (uint8 *)pMsg );    //释放内存

    }

  }


数据存在结构体中了发往上层了,我现在想在SampleApp.c的 SampleApp_SerialCMD(mtOSALSerialData_t *cmdMsg)处理函数中将收到的数据读出来该怎么写啊,我自己的如下,貌似读不出来


void SampleApp_SerialCMD(mtOSALSerialData_t *cmdMsg)

{

   uint16 receive_data[10];  

   uint8 i,len,*str=NULL;  //len有用数据长度

   str=cmdMsg->msg;        //指向数据开头

   len=*str;               //msg里的第1个字节代表后面的数据长度

   

   /********打印出串口接收到的数据,用于提示*********/

   for(i=1;i<=len;i++)

   {

     HalUARTWrite(0,str+i,1 );

     receive_data=*(str+i);

   }

     HalUARTWrite(0,"n",1 );//换行

   if(receive_data[2]=='b')

     HalLedblink( HAL_LED_1, 6,50, 500 ); //LED1 闪烁提示

(PS,我发给CC2530的是char Data[4]={'a','b','c','d'};我想判断收到的数据第二位是否正确,跪求指点)

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

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165353
金钱
165353
注册时间
2010-12-1
在线时间
2108 小时
发表于 2014-9-15 00:52:16 | 显示全部楼层
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2024-11-25 12:30

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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