liehuf-notes liehuf-notes
首页
K230
Verilog
留言板
我的博客 (opens new window)
GitHub (opens new window)
首页
K230
Verilog
留言板
我的博客 (opens new window)
GitHub (opens new window)
  • 1.K230 简单介绍
  • 2.K230 micropython基础
  • 3.K230 FPIOA&GPIO - 一切的根源
  • 4.K230 PWM的玩法
  • 5.K230 UART-发送和接收
  • 6.K230 RTC-时间都去哪了
  • 7.我用定时器定时画个圈圈祝福你
    • 1. 这玩意儿能干嘛?
    • 2. Quick Look:初始化一个定时器
      • 💡关键词解读:
    • 3. 想停就停:停止定时器
      • 🧹小贴士:
    • 4. 想玩花活?定时器还能干这些事:
    • 5. 高阶玩法:多个定时器一起转
    • 6. 小坑快避开
    • 7. 总结
    • 8. 参考资料
    • 免责声明
  • 8.修勾别复位,我来喂你
  • 9.哈基摄,给我拍
  • 10.摄像头的基本素养-画面
  • 11.摄像头的猫-在画面上画画
  • K230
猎户f
2025-07-06
目录

7.我用定时器定时画个圈圈祝福你

# 我用定时器定时画个圈圈祝福你

# 1. 这玩意儿能干嘛?

定时器(Timer)听起来很朴素,但在嵌入式系统中,它可是掌管“时间的守门员”:从精准延时、定时任务,到编码器测速、PWM波控制,它都插一脚。

在K230中,每个定时器都支持 时基模式 和 编码器模式,支持 中断回调函数,用起来很有 STM32 的味道,但比裸写寄存器要友善不少。


# 2. Quick Look:初始化一个定时器

from machine import Timer

# 初始化定时器1,每隔1000ms触发一次回调
def my_callback(timer):
    print("时间到了,开始画圈圈")

tim1 = Timer(1, period=1000, mode=Timer.MODE_PERIODIC, callback=my_callback)
1
2
3
4
5
6
7

# 💡关键词解读:

参数 含义
1 定时器编号(K230 支持多个定时器)
period 周期,单位是毫秒
mode 支持单次(ONE_SHOT)或循环(PERIODIC)
callback 定时时间到时调用的函数

# 3. 想停就停:停止定时器

tim1.deinit()  # 停止定时器
1

# 🧹小贴士:

  • 用完记得 .deinit(),否则它会一直在那里默默打圈圈……
  • 如果你的回调函数里有长时间阻塞,可能会影响下一次触发,建议用轻量级任务。

# 4. 想玩花活?定时器还能干这些事:

应用场景 示例
定时打印 每秒输出一次信息
自动切换状态 计时完成后改变LED状态或蜂鸣器响
周期性采样 ADC数据周期采集
软件定时器 替代 time.sleep() 实现非阻塞延时

# 5. 高阶玩法:多个定时器一起转

你可以初始化多个 Timer,比如 Timer(0)、Timer(1)、Timer(2)……各自有自己的频率和回调,互不干扰。

from machine import Timer

def hello(timer):
    print("Hello")

def world(timer):
    print("World")

Timer(0, 500, Timer.MODE_PERIODIC, hello)
Timer(1, 1000, Timer.MODE_PERIODIC, world)
1
2
3
4
5
6
7
8
9
10

输出效果(每0.5秒与1秒交替):

Hello
World
Hello
Hello
World
...
1
2
3
4
5
6

# 6. 小坑快避开

  1. 回调函数不要太重,避免阻塞。
  2. 定时器编号别冲突,否则初始化会失败。
  3. 定时器不会自动释放资源,要手动 .deinit()。
  4. 某些板子的 GPIO 和 Timer 有映射限制,建议查查原理图或官方文档。

# 7. 总结

K230的定时器模块在 MicroPython 下使用体验丝滑、写法简洁,非常适合快速实现各种定时任务。无论你是要写个心跳灯,还是轮询采样,只要定时器到位,项目的节奏就能踩得稳稳当当。


# 8. 参考资料

  • K230 Timer 官方文档 (opens new window)
  • MicroPython Timer API 文档

# 免责声明

本文档及所有内容(包括文字、图片、代码等)均为作者基于嘉立创庐山派K230开发板公开资料和个人使用经验整理分享,仅供学习和技术交流之用。

所有涉及的品牌名称、商标、图片及相关资源均归嘉立创官方所有,未经授权不得用于商业宣传或其他用途。

作者与嘉立创官方无任何隶属或代理关系,内容不构成任何形式的官方承诺或保证。

用户在使用相关资源时,应遵守相应的开源协议和法律法规,确保合法合规。

如涉及版权问题,请联系作者或嘉立创官方处理。

帮助我们改善此页面 (opens new window)
上次更新: 2025/07/12, 16:01:22
6.K230 RTC-时间都去哪了
8.修勾别复位,我来喂你

← 6.K230 RTC-时间都去哪了 8.修勾别复位,我来喂你→

Theme by Vdoing | Copyright © 2025-2025 Eryajf | MIT License
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式