本文來源電子發燒友社區,作者:盧化月, 帖子地址: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瀏覽量
826
發布評論請先 登錄
相關推薦
【敏矽微ME32G070開發板免費體驗】點亮WS2812B燈板
【敏矽微ME32G070開發板免費體驗】開箱及環境搭建
【敏矽微ME32G070開發板免費體驗】+ADC測試與LED點亮
【敏矽微ME32G070開發板免費體驗】之開箱與基本測試
追加名額丨米爾瑞芯微RK3576開發板有獎試用
![追加名額丨米爾瑞芯<b class='flag-5'>微</b>RK3576<b class='flag-5'>開發板</b>有獎<b class='flag-5'>試用</b>](https://file.elecfans.com/web2/M00/08/64/pYYBAGDwFEGADIPWAAFlJOlmLxg664.jpg)
常用在工業控制系統上的MCU芯片資料:CSM32RV20
![常用在工業控制系統上的MCU芯片資料:<b class='flag-5'>CSM32RV20</b>](https://file1.elecfans.com/web1/M00/F4/DC/wKgZoWczDC-AV7TwAAEXvP1_BJ0707.png)
有獎丨米爾 瑞芯微RK3576開發板免費試用
![有獎丨米爾 瑞芯<b class='flag-5'>微</b>RK3576<b class='flag-5'>開發板</b>免費<b class='flag-5'>試用</b>](https://file.elecfans.com/web2/M00/08/64/pYYBAGDwFEGADIPWAAFlJOlmLxg664.jpg)
論如何使用WS2812以及類似燈珠
![論如何使用<b class='flag-5'>WS2812</b>以及類似燈<b class='flag-5'>珠</b>](https://file.elecfans.com/web2/M00/03/FB/poYBAGDYdXCAWkKMAAAAK8RNs4s030.png)
評論