欢迎来到三一文库! | 帮助中心 三一文库31doc.com 一个上传文档投稿赚钱的网站
三一文库
全部分类
  • 研究报告>
  • 工作总结>
  • 合同范本>
  • 心得体会>
  • 工作报告>
  • 党团相关>
  • 幼儿/小学教育>
  • 高等教育>
  • 经济/贸易/财会>
  • 建筑/环境>
  • 金融/证券>
  • 医学/心理学>
  • ImageVerifierCode 换一换
    首页 三一文库 > 资源分类 > DOC文档下载
     

    基于TI_BLE协议栈_ZStack协议栈解析.doc

    • 资源ID:3416362       资源大小:20KB        全文页数:3页
    • 资源格式: DOC        下载积分:2
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录   微博登录  
    二维码
    微信扫一扫登录
    下载资源需要2
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    基于TI_BLE协议栈_ZStack协议栈解析.doc

    基于TI_BLE协议栈_ZStack协议栈解析基于STM32的虚拟多线程,可以很好的用于裸机程序中,用于模拟小型操作系统的多线程概念。本实例参考TI_BLE协议栈_ZStack协议栈。#include “Hal_Led/Hal_Led.h”#include “Hal_delay/delay.h”#include “Hal_Key/Hal_Key.h”#include “ringbuffer.h”#define APP_LED2_BLINK_EVENT 0x0001#define HAL_LED1_BLINK_EVENT 0x0001#define TASK_NO_TASK_RUNNING 0xFFunsigned short Hal_ProcessEvent( unsigned char task_id, unsigned short events );unsigned short App_ProcessEvent( unsigned char task_id, unsigned short events );typedef unsigned short uint16;typedef unsigned char uint8;#define TASK_CNT 2 /定义线程的个数/定义函数指针typedef unsigned short (*pTaskEventHandlerFn)( unsigned char task_id, unsigned short events );/线程函数表const pTaskEventHandlerFn tasksArr =Hal_ProcessEvent,App_ProcessEvent;const unsigned char tasksCnt = sizeof( tasksArr ) / sizeof( tasksArr0 );/uint16 *tasksEvents;uint16 tasksEventsTASK_CNT = 0; /每个线程有16位位域空间用于设置事件staTIc uint8 acTIveTaskID = 0xFF; /当前任务ID,指示作用#define SUCCESS 0x00#define FAILURE 0x01#define INVALID_TASK 0x02uint8 osal_set_event( uint8 task_id, uint16 event_flag )if ( task_id tasksCnt )tasksEventstask_id |= event_flag; / Stuff the event bit(s)return ( SUCCESS );elsereturn ( INVALID_TASK );/* brief 程序入口* param none* return none*/int main(void)unsigned short taskID = 0;uint8 idx = 0;SystemInit(); /系统时钟初始化delayInit(72); /滴答定时器初始化Led_Init(); /LED初始化NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);osal_set_event(0, HAL_LED1_BLINK_EVENT);osal_set_event(1, APP_LED2_BLINK_EVENT);while(1)doif(tasksEventsidx) /轮训获知哪个线程有事件需要进行处理break;while (+idx tasksCnt);if (idx tasksCnt)uint16 events;events = tasksEventsidx;tasksEventsidx = 0; / 清除事件数组中的事件acTIveTaskID = idx;events = (tasksArridx)( idx, events ); /调用线程函数acTIveTaskID = TASK_NO_TASK_RUNNING;tasksEventsidx |= events; / 添加未处理的事件到本线程的事件组中

    注意事项

    本文(基于TI_BLE协议栈_ZStack协议栈解析.doc)为本站会员(白大夫)主动上传,三一文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    经营许可证编号:宁ICP备18001539号-1

    三一文库
    收起
    展开