【国民技术N32项目移植】迷你灯带控制器代码说明

电子说

1.3w人已加入

描述

原文链接

BootLoader UF2移植

  • BootLoader 跳转 APP 函数。

bootloader

  • 初始化 RTC备份寄存器USBFLASHUF2
    • RTC备份寄存器:APP 复位后把延时等待参数回传给 Bootloader
    • USB:给 UF2 提供底层硬件服务。
    • FLASH:用于擦除和重写APP所在的flash
    • UF2:提供模拟U盘和 .uf2 文件解包功能。

bootloader

APP配置

  • 通过分散加载文件实现 APP 固件的偏移。

bootloader

  • 通过修改 ini 文件实现 APP 进入 debug 的时候能正确停在 main 函数。
    bootloader
  • 最后需要修改中断向量表,使 APP 的中断正常被触发。
NVIC_SetVectorTable(FLASH_BASE, VECT_TAB_OFFSET);

按钮驱动

  • 按键功能使用开源的 multi_button 驱动。

bootloader

  • 初始化按键驱动,并在 1ms 定时器中断中添加 button_ticks();函数给按键类型检测提供准确的节拍计算。

bootloader

灯带驱动逻辑

  • 灯带通过单链表记录每一个灯带的参数。

bootloader

  • 在循环中通过遍历单链表,当链表中的设定的节拍超时后,调用对应的灯带控制算法计算出下一帧的颜色,并在对应通道中输出。

bootloader

通道初始化

  • 通过宏定义简化了初始化参数,参考下图即可设置初始化参数。

bootloader

  • 灯效算法通过数组的形式返回计算结果,因此多通道可复用同一灯效算法,并且可根据延时节拍的不同以不同的速度显示。

bootloader

通道链表

  • 通道链表控制参数。

bootloader

算法链表

  • 算法链表控制参数。

bootloader

双链表绑定

  • 通过对 通道链表算法链表 的遍历实现对灯效算法的绑定。

bootloader

UF2自动构建

  • keil 的设置中添加编译后生成 bin 文件配置,并调用生成的 exe 文件将 bin 文件打包生成 uf2 文件。

bootloader

  • bin 文件打包成 uf2 程序。

bootloader

  审核编辑:汤梓红

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分