2794|0

144

帖子

2

TA的资源

一粒金砂(高级)

楼主
 

simpliciTI的polling with AP例程的一些理解 [复制链接]

在SimpliciTI的星状网络拓扑中,看了polling with AP的例程,其中关于串口通信中,有发送字符串函数和中断接收函数
串口发送字符串函数是比较通用的,
void UartSendWord(uchar *msg ,unsigned int lenth)
{
   for(i=0;i   {
     U0DBUF=*msg++;
     while(!UTX0IF);
     UTX0IF=0;
  }
}
串口接收函数是通过中断来完成的
#pragma vector=URX0_VECTOR
__interrupt void URX0_ISR(void)
{
   uart_R.Buf[uart_R.count++]=U0DBUF;
   if((Uart_s==EMPTY)||(Uart_s==RXING)&&(Uart_R.count<=FRAMELENTH))   //判断串口状态
    {
        Uart_s=RXING;
        RestTimer(3);
    }
   else
    {
     Uart_s=RXOVER;
     Uart_R.Flag=ture;
     }
}
而在AP和ED的主程序中,首先是固定的一些重要语句:
BSP_Init();------------------------------------------------------------------------------硬件目标板初始化
SMPL_Ioctl(IOCTL_OBJ_ADDR,IOCTL_ACT_SET,&lAddr)-----------------------设置本机地址(AP或者ED的地址)
SMPL_Init()-----------------------------------------------------------------------------Radio和协议栈初始化
当然AP和ED的SMPL_Init()是有区别的,AP的SMPL_Init()是这样的SMPL_Init(sCB),AP 引入了回调函数sCB,而ED并没有引入该回调函数。
AP引入回调函数sCB主要是通过lid来识别接收到的数据是ED请求加入网络的数据还是ED发给AP的通信数据。
sCB函数如下
static  uint8_t sCB(linkID_t  lid)
{
   if(lid)
   {
       sPeerFrameSem++;
   }
   else
   {
      sJoinSem++;
   }
}
如果是ED请求加入网路的数据,那么AP允许该ED加入网络,并分配应用程序接口PORT给它。不过,请注意PORT是设备加入网络,在网络
连接的过程中分配的,不受用户的干涉。
然后ED通过SMPL_Link(linkID_t *linkID)  向ED发送广播link帧,等待应答;AP通过SMPL_LinkListen(linkID_t *linkID)侦听到广播link帧,
就返回一个应答信号,ED一接到这个应答信号,连接就建立起来了,于是AP和ED之间就可以通信,不过,它们之间的通信需要经过串口。
于是上面讲的串口发送和接收函数就起到作用了。
同时协议栈提供了两个API函数用于无线的发送和接收。那就是SMPL_Send(linkID_t  lid,uint8_t   *msg, uint8_t  len)和
                                                                                                 SMPL_Receive(linkID_t  lid,uint8_t *msg, uint8_t len)


此帖出自编程基础论坛
点赞 关注
 

回复
举报
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/6 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表