# SoftTimer **Repository Path**: jhembed/SoftTimer ## Basic Information - **Project Name**: SoftTimer - **Description**: 软件定时器的实现,应用于小型嵌入式系统,如STM32裸机、RTOS编程环境。 - **Primary Language**: C - **License**: Apache-2.0 - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 10 - **Forks**: 11 - **Created**: 2022-01-19 - **Last Updated**: 2025-03-31 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # SoftTimer 软件定时器的实现,应用于小型嵌入式系统,如STM32裸机、RTOS编程环境。 使用示例: ```c void Systick_Handler() /* 假设此函数一毫秒执行一次 */ { stimer_ticks(); } stimer_t UARTTimer; stimer_t LED0Timer; void LED0TimerCallback(void* arg) { printf("%s\r\n", __FUNCTION__); fflush(stdout); } void UARTTimerCallback(void* arg) { printf("%s\r\n", __FUNCTION__); fflush(stdout); } int main() { int i = 0; stimer_init( &LED0Timer, // 定时器句柄 "LED0Timer", // 定时器名称 LED0TimerCallback, // 定时器溢出回调函数 &LED0Timer, // 参数 500, // 定时周期 STIMER_MODE_REPEAT // 周期模式 ); stimer_start(&LED0Timer); // 启动定时器 stimer_init( &UARTTimer, // 定时器句柄 "UARTTimer", // 定时器名称 UARTTimerCallback, // 定时器溢出回调函数 &UARTTimer, // 参数 1000, // 定时周期 STIMER_MODE_SINGLE // 单次模式 ); stimer_start(&UARTTimer); // 启动定时器 for(i = 0; i < 1100; i++) // 模拟时间走过来1001毫秒 Systick_Handler(); for(;;) { stimer_poll(); } return 0; } ```