本文来源电子发烧友社区,作者:卢化月, 帖子地址:https://bbs.elecfans.com/jishu_2293168_1_1.html
非常感谢南京中科微联合电子发烧友平台提供的开发板。
1.硬件介绍
2.原理图
3.新建项目
4.加载代码
5.WS2812介绍

6.代码
void u_delay(uint32_t i)
{
while(i--)
{
NOP;
}}
void u_pa0_low(void)
{
GPIO_Write(GPIOA,PIN0,GPIO_SET); //GPIO 输出
NOP;NOP;NOP;NOP;NOP;
GPIO_Write(GPIOA,PIN0,GPIO_RESET); //GPIO 输出
NOP;NOP;NOP;NOP;NOP;NOP;NOP;NOP;NOP;NOP;
}
void u_pa0_high(void)
{
GPIO_Write(GPIOA,PIN0,GPIO_SET); //GPIO 输出
NOP;NOP;NOP;NOP;NOP;NOP;NOP;NOP;NOP;NOP;
GPIO_Write(GPIOA,PIN0,GPIO_RESET); //GPIO 输出
NOP;NOP;NOP;NOP;NOP;
}
void u_pa0_reset(void)
{
GPIO_Write(GPIOA,PIN0,GPIO_RESET); //GPIO 输出
u_delay(1000);
}
void u_pa0_send_data(uint8_t dat)
{
uint8_t i;
for(i=0;i<8;i++)
{
if(dat&0x80){u_pa0_high();}
else{u_pa0_low();}
dat <<= 1;
}
}
void u_pa0_send_RGB(uint8_t G,uint8_t R,uint8_t B)
{
uint8_t i;
SYS_Interrupt_Disable();
for(i=0;i<60;i++)
{
u_pa0_send_data(G);
u_pa0_send_data(R);
u_pa0_send_data(B);
}
SYS_Interrupt_Enable();//CLIC开总中断
u_pa0_reset();
}
注意:
1.WS2812采用单极性归零码,对时序要求比较高,发送数据时尽量关闭中断。
2.库函数比寄存器操作慢。
3.开发板带有保险丝,输出功率受限。
-
南京中科微
+关注
关注
0文章
60浏览量
1452
发布评论请先 登录
在昉·星光开发板上控制WS2812B炫彩灯环
CW32L012/F030灵眸X1智能小车——板载WS2812驱动示例
【瑞萨RA6E2地奇星开发板试用】点亮 WS2812 全彩点阵屏
基于STM32F103C8T6驱动WS2812彩灯模块点亮RGB灯
【瑞萨RA6E2】驱动 WS2812 实现 RGB 跑马灯效果
【瑞萨RA6E2】点亮 WS2812 全彩点阵屏
【作品合集】中科昊芯Core_DSC280025C开发板测评
【作品合集】玄铁Banana Pi BPI-RV2开发板测评
有奖丨米尔 瑞芯微RK3506开发板免费试用
中微爱芯32位MCU开发板AiP32RV15X介绍
【南京中科微CSM32RV20开发板试用体验】驱动WS2812幻彩灯珠
评论