下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、關(guān)于WS2812B我就不多說了,規(guī)格說明書講的很詳細(xì)。目前網(wǎng)上分享的2812驅(qū)動比較少,而且說明不詳,使用起來不是很方便,本著共同進(jìn)步的精神在這里和大家分享一下我的調(diào)試經(jīng)驗。MCU:STC12C5A08S2晶振:24M/經(jīng)驗:2812時序要求還是比較嚴(yán),對傳統(tǒng)51來說實現(xiàn)真的有難度,之前網(wǎng)上共享的STC89C52的驅(qū)動,即使真的點亮了燈帶,估計也達(dá)不到我們的控制要求。因為1T的51加上24M的晶振,我在調(diào)試時也有點勉強,一次IO的翻轉(zhuǎn)就要300ns。下面是燈帶的驅(qū)動程序,可直接用:sbit Din = P32;uint8 bdata LED_DAT;/可位操作的數(shù)據(jù)發(fā)送暫存變量聲明sbit b
2、it0 = LED_DAT0; /被發(fā)送的數(shù)據(jù)各位定義sbit bit1 = LED_DAT1;sbit bit2 = LED_DAT2;sbit bit3 = LED_DAT3;sbit bit4 = LED_DAT4;sbit bit5 = LED_DAT5;sbit bit6 = LED_DAT6;sbit bit7 = LED_DAT7;/復(fù)位碼:低電平>50usvoid Reset()uint8 i;Din = 0;for(i = 0; i < 50; i+) ; /=/發(fā)送RGB數(shù)據(jù),一個nop為40ns, 刷新一次32*24*1.25us=960us/=/1碼 高電平
3、850ns,低電平400ns實測863,424#define CODE1Din = 1;_nop_();_nop_();_nop_();_nop_();_nop_(); _nop_();_nop_();_nop_();_nop_();_nop_(); _nop_();_nop_();_nop_();_nop_();_nop_(); _nop_();_nop_(); Din = 0;_nop_();_nop_();/0碼 高電平400ns,低電平850ns實測343,704#define CODE0Din = 1;_nop_();_nop_();_nop_();_nop_(); Din = 0;
4、_nop_();_nop_();_nop_();_nop_();_nop_();1 / 4 _nop_();_nop_();_nop_();_nop_(); void SendData(uint8 *dat) /數(shù)據(jù)格式G7-G0-R7-R0-B7-B0 LED_DAT = *dat+; if(bit7=1) CODE1 else CODE0 if(bit6=1) CODE1 else CODE0 if(bit5=1) CODE1 else CODE0 if(bit4=1) CODE1 else CODE0 if(bit3=1) CODE1 else CODE0 if(bit2=1) CODE
5、1 else CODE0 if(bit1=1) CODE1 else CODE0 if(bit0=1) CODE1 else CODE0 LED_DAT = *dat+; if(bit7=1) CODE1 else CODE0 if(bit6=1) CODE1 else CODE0 if(bit5=1) CODE1 else CODE0 if(bit4=1) CODE1 else CODE0 if(bit3=1) CODE1 else CODE0 if(bit2=1) CODE1 else CODE0 if(bit1=1) CODE1 else CODE0 if(bit0=1) CODE1 e
6、lse CODE0 LED_DAT = *dat; if(bit7=1) CODE1 else CODE0 if(bit6=1) CODE1 else CODE0 if(bit5=1) CODE1 else CODE0 if(bit4=1) CODE1 else CODE0 if(bit3=1) CODE1 else CODE0 if(bit2=1) CODE1 else CODE0 if(bit1=1) CODE1 else CODE0 if(bit0=1) CODE1 else CODE0/經(jīng)驗:SendData的傳入?yún)?shù),我用的是數(shù)組uint8 GRBData323; 分別對應(yīng)32顆燈的
7、GRB數(shù)據(jù)。這里有兩點需要注意:1 、別用結(jié)構(gòu)體。雖然結(jié)構(gòu)體看起來用起來很直觀方便,但是結(jié)構(gòu)體的尋址方式時間比數(shù)組長很多,哪怕你傳入后用指針也不行。typedef struct uint8 G;uint8 R;uint8 B;COLOUR;2 、編譯方式Memory Model 只能選擇Small。此時局部變量是放在0x00-0x7f的128個RAM里面執(zhí)行的,速度也是最快的;選其他模式,則會放到xdata 里,這樣讀取速度慢了,我們的時序也會變。下面是STM32的驅(qū)動(聲明:這是網(wǎng)友給我的,用不起別找我)#include "led_register.h"#include
8、"stm32f0xx.h"#define LED_ON (GPIOA->BSRR = 0x00000040)#define LED_OFF (GPIOA->BSRR = 0x00400000)void LED_GPIO_Init() RCC->AHBENR |= 0x00020000 ; /enable the clock of PORTA GPIOA->MODER |= 0x00001000 ; / PA6 out GPIOA->OTYPER &= 0x00000000 ; /pull out GPIOA->OSPEEDR |=
9、 0x00003000 ; / high speed 50MHZ GPIOA->PUPDR |= 0x00002000 ; / PUPD = DOWN GPIOA->BSRR |= 0x00400000 ; / reset PA5 void Send_8bits(uint8_t dat) uint8_t a; for(a=0;a<8;a+) LED_ON; if(dat & 0x80) asm("nop");asm("nop");asm("nop");asm("nop");asm(&quo
10、t;nop");asm("nop"); asm("nop");asm("nop");asm("nop");asm("nop");asm("nop");asm("nop"); asm("nop");asm("nop");asm("nop");asm("nop");asm("nop");asm("nop"); asm("n
11、op");asm("nop");asm("nop");asm("nop");asm("nop");asm("nop"); asm("nop");asm("nop");asm("nop");asm("nop");asm("nop");asm("nop"); asm("nop");asm("nop");asm("nop&q
12、uot;);asm("nop");asm("nop");asm("nop"); dat=dat<<1; LED_OFF; asm("nop");asm("nop");asm("nop");asm("nop");asm("nop");asm("nop"); else asm("nop");asm("nop");asm("nop");asm(&quo
13、t;nop");asm("nop");asm("nop"); dat=dat<<1; LED_OFF; asm("nop");asm("nop");asm("nop");asm("nop");asm("nop");asm("nop"); asm("nop");asm("nop");asm("nop");asm("nop");asm(&q
14、uot;nop");asm("nop"); asm("nop");asm("nop");asm("nop");asm("nop");asm("nop");asm("nop"); asm("nop");asm("nop");asm("nop");asm("nop");asm("nop");asm("nop"); asm("nop");asm("nop");asm("nop");asm("nop");asm("nop");asm("nop"); asm("nop");asm("nop");asm("nop");as
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 肉牛養(yǎng)殖收購合同協(xié)議書范本
- 工服購銷合同模板
- 2025年度公寓樣板間設(shè)計承包裝修施工合同3篇
- 家具購買合同樣本
- 2025年救災(zāi)專用帳篷政府采購合同范本-單帳篷供應(yīng)協(xié)議6篇
- 北京中醫(yī)藥大學(xué)《分子生物學(xué)實驗1》2023-2024學(xué)年第一學(xué)期期末試卷
- 臨建彩鋼板房合同樣本
- 活動計劃模板集合8篇
- 計算機畢業(yè)實習(xí)報告匯編八篇
- 北京郵電大學(xué)《大學(xué)生心里健康教育1》2023-2024學(xué)年第一學(xué)期期末試卷
- IT企業(yè)安全生產(chǎn)管理制度范本
- 工業(yè)傳感器行業(yè)市場調(diào)研分析報告
- 小學(xué)生心理健康講座5
- 上海市市轄區(qū)(2024年-2025年小學(xué)五年級語文)部編版期末考試((上下)學(xué)期)試卷及答案
- 國家職業(yè)技術(shù)技能標(biāo)準(zhǔn) X2-10-07-18 陶瓷工藝師(試行)勞社廳發(fā)200633號
- 人教版八年級上冊生物全冊教案(完整版)教學(xué)設(shè)計含教學(xué)反思
- 2024年銀行考試-銀行間本幣市場交易員資格考試近5年真題附答案
- 人教版小學(xué)四年級數(shù)學(xué)上冊期末復(fù)習(xí)解答題應(yīng)用題大全50題及答案
- 冀教版五年級上冊脫式計算題100道及答案
- 你是排長我是兵(2022年山東濟南中考語文試卷記敘文閱讀題及答案)
- 廣東省中山市2023-2024學(xué)年高三物理上學(xué)期第五次統(tǒng)測試題含解析
評論
0/150
提交評論