# Tsk **Repository Path**: shareLib/tsk ## Basic Information - **Project Name**: Tsk - **Description**: No description available - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-04-10 - **Last Updated**: 2025-04-23 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Tsk #### 介绍 该代码用于裸机编程,实现功能模块的划分,若有需要 任务里可结合状态机处理降低整个系统代码的复杂度,实现功能模块的高内聚低耦合,便于功能模块代码的维护和移植。 #### 软件架构 软件架构说明 #### 安装教程 1. xxxx 2. xxxx 3. xxxx #### 使用说明 1. 将tsk.c和tsk.h 包含在工程中 2. TimerSoftTick() 在毫秒定时中断里进行调用,以维护系统运行时基; 3. tsk.h--> TSK_FUNC_NUM 按需求设置需要开销的任务数量; 4. TskCreate() 注册任务调用的周期和回调函数,任务函数里不要使用阻塞延时,而应采用非阻塞延时; 5. TskLooperHandle() 在循环里进行调用; 6. 如下使用示例: /** * @brief This function handles System tick timer. */ void SysTick_Handler(void) { /* USER CODE BEGIN SysTick_IRQn 0 */ /* USER CODE END SysTick_IRQn 0 */ HAL_IncTick(); /* USER CODE BEGIN SysTick_IRQn 1 */ TimerSoftTick(); /* USER CODE END SysTick_IRQn 1 */ } /* USER CODE BEGIN 0 */ void Tsk1LedRun(void) { Led0Toggle(); Led1Toggle(); } void Tsk2AdcSample(void) { // 任务2 数据采集 } void Tsk3Communicat(void) { // 通信处理 } void Tsk4LogicHandle(void) { // 逻辑处理 } /* USER CODE END 0 */ /** * @brief The application entry point. * @retval int */ int main(void) { /* USER CODE BEGIN 1 */ /* USER CODE END 1 */ /* MCU Configuration--------------------------------------------------------*/ /* Reset of all peripherals, Initializes the Flash interface and the Systick. */ HAL_Init(); /* USER CODE BEGIN Init */ /* USER CODE END Init */ /* Configure the system clock */ SystemClock_Config(); /* USER CODE BEGIN SysInit */ /* USER CODE END SysInit */ /* Initialize all configured peripherals */ MX_GPIO_Init(); /* USER CODE BEGIN 2 */ /* USER CODE END 2 */ TskCreate(500, Tsk1LedRun); // 创建任务1, 500 毫秒翻转一次指示灯 TskCreate(10, Tsk2AdcSample); // 创建任务2, 10 毫秒采集一次数据 TskCreate(10, Tsk3Communicat); // 创建任务1, 10 毫秒处理一次通信数据 TskCreate(20, Tsk4LogicHandle); // 创建任务1, 20 毫秒处理一次逻辑数据 /* Infinite loop */ /* USER CODE BEGIN WHILE */ while (1) { /* USER CODE END WHILE */ TskLooperHandle(); /* USER CODE BEGIN 3 */ } /* USER CODE END 3 */ } #### 参与贡献 1. Fork 本仓库 2. 新建 Feat_xxx 分支 3. 提交代码 4. 新建 Pull Request #### 特技 1. 使用 Readme\_XXX.md 来支持不同的语言,例如 Readme\_en.md, Readme\_zh.md 2. Gitee 官方博客 [blog.gitee.com](https://blog.gitee.com) 3. 你可以 [https://gitee.com/explore](https://gitee.com/explore) 这个地址来了解 Gitee 上的优秀开源项目 4. [GVP](https://gitee.com/gvp) 全称是 Gitee 最有价值开源项目,是综合评定出的优秀开源项目 5. Gitee 官方提供的使用手册 [https://gitee.com/help](https://gitee.com/help) 6. Gitee 封面人物是一档用来展示 Gitee 会员风采的栏目 [https://gitee.com/gitee-stars/](https://gitee.com/gitee-stars/)