Skip to content

适用于GD32的NeoPixelBus库,适用Timer+DMA输出PWM波形,驱动可编程LED

License

Notifications You must be signed in to change notification settings

SamFisher940425/NeoPixelBus_GD32_DMA

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

简介

NeoPixelBus是Arduino平台上著名的LED驱动库,可支持多种总线型LED和数码管等设备

本项目将其移植到GD32平台上(目前支持E1、F1、F3系列,修改宏定义可支持更多型号),基于SPL标准外设库开发,使用TIMER定时器PWM输出功能,配合DMA功能实现数据发送

目录结构

examples文件夹中存储官方库中提供的的各种样例,使用Arduino工程文件格式,文件中Setup函数为初始化内容,Loop函数为主循环内容,可供参考

NeoPixelBus文件夹中存储NeoPixel库源码

systick文件夹存储GD32内置的Systick定时器相关函数

LED文件夹存储类的实例化,LED初始化,基础灯效等函数

使用方法

NeoPixelBussystick两文件夹至于同级目录(因为头文件之间有相对路径包含关系,推荐使用PlatformIO开发,文件结构兼容度更好)

按需要配置Systick时钟,默认设置是生成1us的中断,并需要在中断中调用Time_Accumulation()函数累加us级计时结果变量

按需要修改NeoPixelBus\internal\methods\NeoArmMethod.h中头文件引用(此文件是该库的接口核心,各种改造都可以从此处下手)

按需要修改上述文件中dma_pwm_initdma_pwm_send两函数的具体实现,注意要在外部初始化TIMER的PWM输出功能,此处只初始化了DMA

编译后,参考样例代码进行测试

Tips

实例化NeoPixelBus时,需要按照实际情况选择颜色模板和灯珠型号,即可正常驱动灯珠。目前已测试的灯珠有WS2812和WS2816系列

About

适用于GD32的NeoPixelBus库,适用Timer+DMA输出PWM波形,驱动可编程LED

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published