[ BLE4.0 ] 伦茨ST17H66开发-OSAL系统中添加自己的Task任务
目录一、开发背景二、任务要求三、实现步骤四、效果展示一、开发背景本文的开发是在基础的SimpleBlePeripheral工程中进行的在此之前应该熟悉伦茨ST17H66例程中的OSAL系统的基本组成。复习OSAL系统任务调度OSAL的任务结构二、任务要求本文将带领大家实现OSAL系统中创建一个输出任务该任务每隔2s输出一次信息。因此在本文中我们也会学到定时器的功能。三、实现步骤首先打开工程并创建一个名为MyTask的头文件和.c文件保存在./source/目录下。保存到其他目录下可能需要添加头文件引用路径。将.c文件添加到项目工程中。在头文件中添加如下代码。分别声明TaskID任务初始化函数和事件处理函数。函数结构仿照其它任务即可。#ifndef MYTASK_H #define MYTASK_H #include rom_sym_def.h #include comdef.h #include log.h #include OSAL.h #define MyTask_INIT_EVT 0x4000 #define MyTask_SIMPLE_EVT 0x2000 extern uint8 Mytask_id; void MyTask_Init( uint8 task_id ); uint16 MyTask_ProcessEvent( uint8 task_id, uint16 events ); #endif这里定义事件ID从0x4000开始就是从第二个高位开始在之前的文章中已经阐述过因为0x8000即最高位被系统事件占用所以我们可用的事件id一共是15个也就代表我们一个任务可以创建15个事件。系统事件SYS_EVENT_MSG定义在comdef.h文件中。随后在.c文件中实现这些函数代码如下#include MyTask.h uint8 Mytask_id; void MyTask_Init( uint8 task_id ){ //保存任务id Mytask_id task_id; //初始化完成事件 osal_set_event(task_id,MyTask_INIT_EVT); } uint16 MyTask_ProcessEvent( uint8 task_id, uint16 events ){ if(events MyTask_INIT_EVT) { //创建任务定时器 osal_start_reload_timer(Mytask_id,MyTask_SIMPLE_EVT,2000); return events ^ MyTask_INIT_EVT; } else if(events MyTask_SIMPLE_EVT) { LOG(OutPut...\n); return events ^ MyTask_SIMPLE_EVT; } return 0; }随后打开OSAL_SimpleBLEPeripheral.c文件先导入我们的任务的头文件。添加任务初始化注意taskid的连续性。对应顺序中添加Mytask的事件处理函数。四、效果展示将程序烧录进芯片。查看输出信息。任务成功实现。五、工程源码本文所使用的源码如下注意需要与该工程放到同一个路径下因为程序引用了SDK中最外层的资源。源码工程源码

相关新闻

Linux服务器操作

Linux服务器操作

一、服务器网络 1.1ssh客户端工具: SecureCRT是一款Windows系统下支持登录UNIX或Linux等服务器主机的软件。 链接:https://pan.quark.cn/s/8a4f6d445bc5 navicat: 链接:https://pan.quark.cn/s/7c42917959ce 1.2 网络 #服务器外网设置 …

2026/7/30 17:29:46阅读更多 →
原创小众!24年新算法RBMO优化SVMD实现3D分解+五种熵值+频谱+参数变化等10张图!

原创小众!24年新算法RBMO优化SVMD实现3D分解+五种熵值+频谱+参数变化等10张图!

目录 数据输入方法 优化流程 创新点 1.使用SVMD的创新点在于: 2.使用红嘴蓝鹊优化算法RBMO创新点在于: 结果展示 完整代码 今天给大家带来一期知网以及WOS上从来没有人用过的参数优化方法:红嘴蓝鹊算法RBMO优化SVMD分解! …

2026/7/30 17:29:45阅读更多 →
修改 conda新环境默认安装路径

修改 conda新环境默认安装路径

1. 在Ananconda Prompt(或CMD进入虚拟环境)下执行命令conda info会显示出conda创建环境的位置(图片为修正之后):你会看到,默认的位置,即c盘路径,会处在顺位第一行。2. 在c盘C:\Use…

2026/7/30 17:29:44阅读更多 →
解密VideoDownloadHelper:智能视频下载插件的完整技术指南

解密VideoDownloadHelper:智能视频下载插件的完整技术指南

解密VideoDownloadHelper:智能视频下载插件的完整技术指南 【免费下载链接】VideoDownloadHelper Chrome Extension to Help Download Video for Some Video Sites. 项目地址: https://gitcode.com/gh_mirrors/vi/VideoDownloadHelper 在当今数字内容爆炸的时…

2026/7/30 18:34:20阅读更多 →
竞品技术调研:小米自由窗口Freeform实现方案剖析

竞品技术调研:小米自由窗口Freeform实现方案剖析

文章目录背景:自由窗口实现功能和技术原理剖析小米自由窗口为啥比原生体验好?自由窗口整体结构剖析放大进入全屏的功能退出自由窗口的相关交互方式拖动自由窗口最右侧交互最小化功能背景: 国内这些手机大厂在自由窗口这块的功能其实都做得比…

2026/7/30 18:34:20阅读更多 →
WindowResizer:快速掌握窗口强制调整的完整指南

WindowResizer:快速掌握窗口强制调整的完整指南

WindowResizer:快速掌握窗口强制调整的完整指南 【免费下载链接】WindowResizer 一个可以强制调整应用程序窗口大小的工具 项目地址: https://gitcode.com/gh_mirrors/wi/WindowResizer 还在为那些"顽固"的Windows窗口而烦恼吗?WindowR…

2026/7/30 18:34:20阅读更多 →
如何5分钟完成智能配置:OpenCore EFI自动化工具的终极指南

如何5分钟完成智能配置:OpenCore EFI自动化工具的终极指南

如何5分钟完成智能配置:OpenCore EFI自动化工具的终极指南 【免费下载链接】OpCore-Simplify A tool designed to simplify the creation of OpenCore EFI 项目地址: https://gitcode.com/GitHub_Trending/op/OpCore-Simplify 想在PC上安装macOS却对复杂的Op…

2026/7/30 18:34:20阅读更多 →
栈和队列应用

栈和队列应用

一、栈1.限制线性表(数组链表)的插入和删除,插入删除在同一端进行,不考虑查找只考虑插入删除用栈2.先进后出package com.qcby.db;public class Stack {private int[] arr new int[5];private int top -1;//栈满,顶端…

2026/7/30 18:34:20阅读更多 →
CardView高级特性:交互状态管理与手势识别

CardView高级特性:交互状态管理与手势识别

CardView高级特性:交互状态管理与手势识别 【免费下载链接】CardView CardsView | CarouselView | CoverflowView | CubeView for Xamarin.Forms 项目地址: https://gitcode.com/gh_mirrors/ca/CardView CardView是Xamarin.Forms中一款功能强大的卡片视图组…

2026/7/30 18:32:19阅读更多 →
覆盖国产 + 海外 + 开源模型,OpenClaw 2.7.9 Windows/Mac 双端部署详解

覆盖国产 + 海外 + 开源模型,OpenClaw 2.7.9 Windows/Mac 双端部署详解

🔹 工具基础介绍 OpenClaw 是开源生态中一款实用性较强的本地智能工具,凭借本地离线运行、可视化图形操作和任务自动化三大核心特性,赢得了众多用户的青睐。与普通在线对话AI工具不同,它属于能够直接操控本机软硬件的智能数字员工…

2026/7/30 15:03:16阅读更多 →
伺服阀焊完微漏毁整机?精密激光焊接三关锁住高压

伺服阀焊完微漏毁整机?精密激光焊接三关锁住高压

所谓液压伺服阀体的精密激光焊接,是用激光束对阀座壳体(通常为不锈钢或铝合金)进行密封焊接,使阀体在21-35MPa的高压液压油或压缩气体中长期运行而不发生介质泄漏。液压伺服阀是高端液压系统的"大脑"。从航空航天飞行控…

2026/7/30 12:22:27阅读更多 →
D2DX:三步实现《暗黑破坏神2》高清宽屏体验的终极指南

D2DX:三步实现《暗黑破坏神2》高清宽屏体验的终极指南

D2DX:三步实现《暗黑破坏神2》高清宽屏体验的终极指南 【免费下载链接】d2dx D2DX is a complete solution to make Diablo II run well on modern PCs, with high fps and better resolutions. 项目地址: https://gitcode.com/gh_mirrors/d2/d2dx 你是否还在…

2026/7/30 15:13:02阅读更多 →
3分钟解锁iOS应用自由:TrollInstallerX让你的iPhone摆脱安装限制 [特殊字符]

3分钟解锁iOS应用自由:TrollInstallerX让你的iPhone摆脱安装限制 [特殊字符]

3分钟解锁iOS应用自由:TrollInstallerX让你的iPhone摆脱安装限制 🚀 【免费下载链接】TrollInstallerX A TrollStore installer for iOS 14.0 - 16.6.1 项目地址: https://gitcode.com/gh_mirrors/tr/TrollInstallerX 你是否曾经因为iOS系统的严格…

2026/7/30 0:00:58阅读更多 →
[GESP202606 四级] 扫雷

[GESP202606 四级] 扫雷

B4557 [GESP202606 四级] 扫雷 https://www.luogu.com.cn/problem/B4557 中国计算机学会(CCF)2026年6月C四级讲解——扫雷 https://www.bilibili.com/video/BV1MCMg6AEXR/ B4557 [GESP202606 四级] 扫雷 https://www.bilibili.com/video/BV1ZKTj6ZEVh/ 2…

2026/7/30 0:00:58阅读更多 →
Windows驱动存储终极清理工具:DriverStoreExplorer完全指南

Windows驱动存储终极清理工具:DriverStoreExplorer完全指南

Windows驱动存储终极清理工具:DriverStoreExplorer完全指南 【免费下载链接】DriverStoreExplorer Driver Store Explorer 项目地址: https://gitcode.com/gh_mirrors/dr/DriverStoreExplorer 您是否曾因Windows系统盘空间不足而烦恼?是否遇到过设…

2026/7/30 0:00:58阅读更多 →
YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

如果你在部署 YOLOv8 时,发现推理速度只有可怜的 1-2 FPS,而别人的演示视频却能跑到 30 FPS 以上,那么问题很可能不在模型本身,而在于你的整个处理链路。很多开发者拿到一个训练好的 YOLOv8 模型后,会直接使用官方示例…

2026/7/30 0:27:26阅读更多 →
Coze与Dify对比指南:低代码AI应用开发从入门到实战

Coze与Dify对比指南:低代码AI应用开发从入门到实战

1. 从零到一:为什么你需要了解 Coze 和 Dify?如果你对 AI 应用开发感兴趣,但一看到“大模型”、“智能体”、“工作流”这些词就头疼,觉得门槛太高,那这篇文章就是为你准备的。很多开发者,包括我自己&#…

2026/7/30 4:47:18阅读更多 →
AI生图工具怎么选?2026年6月版实测对比

AI生图工具怎么选?2026年6月版实测对比

做自媒体的朋友应该都有体会:配图一直是个让人头疼的问题。2026年,AI生图工具已经非常成熟了,但工具太多反而不知道怎么选。以下是截至2026年6月我对主流AI生图工具的实测对比。Midjourney V8.1:速度之王2026年6月11日&#xff0c…

2026/7/30 15:43:46阅读更多 →