一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

按這個(gè)步驟 STM32即可完美控制 NeoPixels

得捷電子DigiKey ? 來(lái)源:未知 ? 2023-10-12 16:05 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

Q A &

問(wèn):玩轉(zhuǎn)STM32 - 使用 STM32 來(lái)控制 NeoPixels

目前,諸如ArduinoFeather等高級(jí)開發(fā)平臺(tái)已經(jīng)提供了出色的支持,可以通過(guò)易于使用的庫(kù)和普遍使用的示例代碼與NeoPixelLE?D、燈帶矩陣等相連接。然而,更高級(jí)的平臺(tái)(例如STM32 開發(fā)板)通常缺乏相同水平的支持。因此,希望將NeoPixels整合到項(xiàng)目中的 開發(fā)人員需要全面了解NeoPixel通信協(xié)議以及如何克服它所帶來(lái)的挑戰(zhàn)。

wKgaomUt2iSAGmG6AATc_qP0mvo000.gif

NeoPixels

Adafruit推出的極受歡迎的可尋址全彩LED燈“NeoPixels”系列分為RGB和RGBW兩個(gè)種類。盡管二者都將紅、綠和藍(lán)色LED與驅(qū)動(dòng)器芯片相集成,但RGBW組件還集成了第四個(gè)純白色的LED。可以使用類似的單線串行接口來(lái)控制這兩種類型的NeoPixel,其時(shí)間值和數(shù)據(jù)結(jié)構(gòu)僅存在微小的差異。

WS2812

RGB NeoPixels實(shí)際上是WS2812智能控制LED,包括數(shù)據(jù)信號(hào)輸入引腳(DIN)和數(shù)據(jù)信號(hào)輸出引腳(DOUT)。這允許多個(gè)LED級(jí)聯(lián)并且只用一個(gè)數(shù)據(jù)線進(jìn)行控制。鏈中的第一個(gè)LED負(fù)責(zé)處理從MCU接收到的前三個(gè)字節(jié)數(shù)據(jù),然后將后續(xù)的數(shù)據(jù)簡(jiǎn)單地轉(zhuǎn)發(fā)給DOUT引腳,該引腳可以連接到另一個(gè)LED的DIN引腳。LED將以此方式繼續(xù)向下傳遞數(shù)據(jù),直到它們接收到復(fù)位信號(hào)為止(即,DIN線在一段時(shí)間內(nèi)持續(xù)保持低電平狀態(tài))。傳輸?shù)淖止?jié)按照?qǐng)D1所示的協(xié)議進(jìn)行組織。第一個(gè)字節(jié)(G7-G0)表示綠色LED的8位PWM強(qiáng)度,其中0x00是完全關(guān)閉,0xFF是完全打開。類似地,第二個(gè)字節(jié)(R7-R0)用于控制紅色LED的強(qiáng)度,第三個(gè)字節(jié)(B7-B0)用于控制藍(lán)色LED的強(qiáng)度。

wKgaomUt2iWARBrUAAChoW2HPEQ727.png1WS2812 LED的3字節(jié)數(shù)據(jù)協(xié)議的結(jié)構(gòu)這些24位數(shù)據(jù)都是通過(guò)改變方波的脈沖寬度來(lái)進(jìn)行編碼的,如圖2所示。請(qǐng)注意,無(wú)論發(fā)送代碼0還是代碼1,方波的周期仍保持在1.25μs。對(duì)于WS2812,使數(shù)據(jù)線保持低電平至少50μs即可生成復(fù)位信號(hào)。另請(qǐng)注意,圖2中顯示的計(jì)時(shí)值具有±0.15μs的公差。

wKgaomUt2iWAY2DiAABEp1s2eiI317.png

圖2:WS2812 LED的0和1位的計(jì)時(shí)圖

一種截然不同的組件,NeoPixels的RGBW種類實(shí)際上是SK6812智能控制LED,采用與WS2812 LED相同的運(yùn)作原理。然而,由于它們包含第四個(gè)LED,因此實(shí)施了圖3所示的4字節(jié)數(shù)據(jù)協(xié)議。與圖1相比,唯一的區(qū)別在于數(shù)據(jù)的串聯(lián)字節(jié)(W7-W0),該字節(jié)指定了白色LED的8位PWM強(qiáng)度。

wKgaomUt2iWAWZ39AACfmWmMTtM004.png3SK6812 LED的4字節(jié)數(shù)據(jù)協(xié)議的結(jié)構(gòu)。圖4展示了SK6812控制信號(hào)的時(shí)間值,同樣與WS2812略有差別(不過(guò)仍在±0.15μs的公差范圍內(nèi))。請(qǐng)注意,這兩種代碼的方波周期均保持不變,都為1.2μs。此外,SK6812的復(fù)位信號(hào)長(zhǎng)度為80μs,而非50μs。

wKgaomUt2iWAVVOiAABClficJjc287.png圖4:SK6812 LED的0位和1位的計(jì)時(shí)圖。

步驟

由于NeoPixel的控制信號(hào)對(duì)計(jì)時(shí)要求非常嚴(yán)格,因此除非使用匯編語(yǔ)言,否則無(wú)法通過(guò)簡(jiǎn)單的比特帶寬方法產(chǎn)生此信號(hào)。雖然還有許多其他方法可以利用各種MCU外設(shè)、外部硬件或其組合來(lái)生成該信號(hào),但其中最直接的方法是配置MCU定時(shí)器來(lái)生成PWM輸出信號(hào)。這是因?yàn)?,如上一部分中所述,NeoPixel控制信號(hào)只是一種固定頻率的PWM信號(hào),采用不同的占空比表示0位和1位。為了以與傳輸協(xié)議相同的速率高效地在這兩個(gè)占空比之間進(jìn)行切換,還必須配置DMA流來(lái)管理更新。盡管這種方法可能是內(nèi)存效率最低的方式,但它易于理解、CPU高效并且易于實(shí)施(得益于STM32Cube環(huán)境)。

以下應(yīng)用程式利用STM32CubeIDE(版本1.8.0)、NUCLEO-F401RE開發(fā)板和RGBW5x8 NeoPixel Shield實(shí)現(xiàn)上述的方法。不過(guò),這些步驟可以輕松地推廣到任何STM32MCU/板和NeoPixel產(chǎn)品上。假定我們已經(jīng)創(chuàng)建了一個(gè)STM32CubeIDE項(xiàng)目。如需使用其他IDE,你可以改為使用獨(dú)立的STM32CubeMX代碼配置器工具,將項(xiàng)目導(dǎo)出到所需的開發(fā)平臺(tái)上。

1.配置PWMa. 先打開STM32CubeMX配置.ioc文件(如果還未打開的話)。隨后,STM32CubeIDE將切換到*器件配置工具(*Device Configuration Tool視圖,供你配置MCU。

b. 將定時(shí)器通道備用功能分配給選定的GPIO引腳,以與NeoPixel進(jìn)行連接。所選定時(shí)器通道應(yīng)該能夠生成PWM輸出。圖5顯示了我的項(xiàng)目中的相關(guān)部分,我選擇了引腳PB10,并將它分配給定時(shí)器2、通道3(TIM2_CH3)功能。

wKgaomUt2iWAVVSLAAJfdM6V1Qs446.png圖5:將連接到DIN的GPIO引腳配置為定時(shí)器通道c. 從左側(cè)的組件列表中選擇上一步中確定的定時(shí)器外設(shè),以打開模式和配置(*Mode andConfiguration面板。在模式(*Mode面板中,選擇“內(nèi)部時(shí)鐘”作為時(shí)鐘源,并從適當(dāng)?shù)亩〞r(shí)器通道的下拉列表中選擇“PWM生成CHx”。在圖6中,定時(shí)器2、通道3已設(shè)為“PWM生成CH3”模式,因?yàn)槲以谏弦徊街羞x擇了TIM2_CH3備用功能。請(qǐng)注意,在完成此步驟后,關(guān)聯(lián)的GPIO引腳應(yīng)在引腳排列視圖中從黃色變?yōu)榫G色。

d. 在定時(shí)器的*配置(*Configuration面板中,驗(yàn)證“預(yù)分頻器”和“脈沖”值是否都設(shè)置為0。計(jì)數(shù)器周期,即自動(dòng)重載寄存器(ARR),需要進(jìn)行設(shè)置以得到所需的PWM周期(如果使用RGB WS2812 LED,則為1.25μs;如果使用RGBW SK6812 LED,則為1.2μs)。這將取決于定時(shí)器外設(shè)輸入的速率。只需將所需的PWM周期除以時(shí)鐘周期,并減去1即可得到此值(減去1是因?yàn)槎〝?shù)器從0開始)。就我的器件而言,該公式得出的ARR值為99.8,我將其四舍五入為100(圖6)。請(qǐng)參見下文,了解有關(guān)計(jì)算理想ARR值的詳細(xì)說(shuō)明。

wKgaomUt2iaAOugvAAPcVg6siNg852.png圖6:將所選定時(shí)器通道配置為PWM輸出計(jì)算ARR值

假設(shè)定時(shí)器“預(yù)分頻器”值設(shè)為0,可以很容易的計(jì)算出ARR值

wKgaomUt2iaAIheuAAAKT9ljiw4625.png具體來(lái)說(shuō),ARR值等于PWM信號(hào)周期除以定時(shí)器外設(shè)的時(shí)鐘信號(hào)周期。我們知道,根據(jù)使用的NeoPixel類型不同,TPWM可以是1.25μs或1.2μs(例如本例中,TPWM=1.2μs)。要確定Ttimer,你需要查閱器件的規(guī)格書,確定定時(shí)器外設(shè)連接到哪個(gè)總線。規(guī)格書可以在ST的網(wǎng)站上找到或STM32CubeIDE會(huì)隨附提供:選擇幫助>目標(biāo)器件文檔和資源(Help>TargetDevice Docs and Resources。然后,在MCU選項(xiàng)卡下選擇規(guī)格書,如圖7所示。

wKgaomUt2iaAfEYGAADp-K-bUZI268.png7查找器件規(guī)格書

在我使用的MCU(STM32F401RE)規(guī)格書中,器件框圖中顯示我的定時(shí)器(TIM2)已連接到APB1(見圖8)。

wKgaomUt2iaAP45cAAOisIZiqBU143.png8STM32F401xD/xE的部分框圖(源自DS10086

圖9介紹了:通過(guò)切換到STM32CubeIDE中的*時(shí)鐘配置(*Clock Configuration)選項(xiàng)卡,我們可以發(fā)現(xiàn)TIM2的時(shí)鐘頻率為84MHzwKgaomUt2iaASHdtAAAJBaFQjxw634.png

wKgaomUt2iaAXwR4AAKKzg2YOko038.png

9確定定時(shí)器時(shí)鐘頻率

因此,wKgaomUt2iaAZ65gAAAJ-6pVqXY778.png為了使PWM周期盡可能接近NeoPixel控制信號(hào)的周期,我們四舍五入至最接近的整數(shù)并得到ARR=100。2.配置DMA

a. 從組件列表中選擇DMA外設(shè)。

b. 在配置(Configuration)面板的DMA1選項(xiàng)卡下,點(diǎn)擊添加Add按鈕。在下拉菜單中,選擇你的定時(shí)器/通道組合。在我的項(xiàng)目中,我選擇了“TIM2_CH3/UP”。

c. 針對(duì)該新的DMA請(qǐng)求,將方向改為“內(nèi)存到外設(shè)”。

d. 同時(shí),將優(yōu)先級(jí)改為“非常高”。

e. 驗(yàn)證默認(rèn)的DMA請(qǐng)求設(shè)置是否與圖10中顯示的相匹配。

f. 保存.ioc文件,以生成項(xiàng)目代碼。

wKgaomUt2ieADmNXAAIi9i5fDls339.png10配置DMA流,以便有效更新PWM信號(hào)的占空比

3.編寫代碼

在main.c文件中,按從上到下的順序編寫,本部分展示了一個(gè)簡(jiǎn)單的示例應(yīng)用,用于測(cè)試NeoPixel LED的全彩能力。此處提供了兩個(gè)版本的main()函數(shù),一個(gè)用于RGB WS2818 LED,另一個(gè)用于RGBW SK6812 LED。

a. 在main.c文件的私有typedef部分,你可以創(chuàng)建一個(gè)新的數(shù)據(jù)類型,以便輕松訪問(wèn)單個(gè)LED顏色值以及整個(gè)NeoPixel數(shù)據(jù)結(jié)構(gòu)(如圖1和圖3所示)。列表1提供了RGB和RGBW NeoPixel組件的typedef。此代碼應(yīng)粘貼在/* USER CODE BEGIN PTD */和/* USER CODE END PTD */注釋之間。

列表1為RGB WS2812和RGBW SK6812 LED自定義數(shù)據(jù)類型

typedef union

{

struct

{

uint8_t b;

uint8_t r;

uint8_t g;

} color;

uint32_t data;

} PixelRGB_t;

typedef union

{

struct

{

uint8_t w;

uint8_t b;

uint8_t r;

uint8_t g;

} color;

uint32_t data;

} PixelRGBW_t;

b. 更改“脈沖”寄存器(也稱為CCRx)的值,這樣可以改變PWM波形的占空比。因此,我們必須計(jì)算適當(dāng)?shù)腃CRx值,以實(shí)現(xiàn)使用的NeoPixels所需的代碼0和代碼1方波(無(wú)論是在圖2還是圖4中所示的那些)。對(duì)于RGBWS2812 LED,這些值計(jì)算如下:

ZERO=(ARR+1)(0.32)

ONE=(ARR+1)(0.64)

對(duì)于RGBW SK6812 LED,其計(jì)算過(guò)程稍有不同。

ZERO=(ARR+1)(0.25)

ONE=(ARR+1)(0.5)

當(dāng)然,這些計(jì)算出的值應(yīng)該四舍五入到最接近的整數(shù)。在main.c文件的私有定義部分,為每個(gè)值創(chuàng)建一個(gè)#define指令(請(qǐng)參見以下圖11中的示例)。

c. 除了CCRx值之外,還應(yīng)在私有定義部分中定義控制的NeoPixel LED數(shù)量和DMA緩沖區(qū)大小。如圖11所示,只需將LED的數(shù)量乘以相應(yīng)的NeoPixel數(shù)據(jù)結(jié)構(gòu)中的位數(shù)即可(回想圖1和圖3)。還必須分配一個(gè)額外的緩沖區(qū)元素,因?yàn)樽詈笠粋€(gè)CCRx值應(yīng)為零(復(fù)位信號(hào))。

wKgaomUt2ieAQ_4iAAJKl2kCKjk144.png11WS2812和SK6812LED的私有定義

d. 將列表2中提供的DMA完成回調(diào)函數(shù)添加到/* USER CODE BEGIN 0/和/USER CODE END 0*/之間的私有用戶代碼部分。務(wù)必將TIM_CHANNEL_x更改為步驟1c中配置的通道。

列表2HAL_TIM_PWM_PulseFinishedCallback()函數(shù)的實(shí)施

void HAL_TIM_PWM_PulseFinishedCallback(TIM_HandleTypeDef *htim)

{

HAL_TIM_PWM_Stop_DMA(htim, TIM_CHANNEL_x);

}

e. 最后,必須將應(yīng)用代碼添加到main()函數(shù)中。列表3提供了一個(gè)使用WS2812LED的示例main()函數(shù),而列表4提供了使用SK6812 LED的類似示例main()函數(shù)。請(qǐng)注意,HAL_TIM_PWM_Start_DMA()函數(shù)的TIM_CHANNEL_x參數(shù)必須再次進(jìn)行修改,以匹配步驟1c中配置的通道。

列表3RGB WS2812 LED的示例main()函數(shù)

int main(void)

{

/* USER CODE BEGIN 1 */

PixelRGB_tpixel[NUM_PIXELS] = {0};

uint32_tdmaBuffer[DMA_BUFF_SIZE] = {0};

uint32_t *pBuff;

int i, j, k;

uint16_t stepSize;

/* USER CODE END 1 */

/* MCUConfiguration--------------------------------------------------------*/

/* Reset of allperipherals, Initializes the Flash interface and the Systick. */

HAL_Init();

/* USER CODE BEGIN Init*/

/* USER CODE END Init*/

/* Configure the systemclock */

SystemClock_Config();

/* USER CODE BEGINSysInit */

/* USER CODE ENDSysInit */

/* Initialize allconfigured peripherals */

MX_GPIO_Init();

MX_USART2_UART_Init();

MX_DMA_Init();

MX_TIM2_Init();

/* USER CODE BEGIN 2 */

/* USER CODE END 2 */

/* Infinite loop */

/* USER CODE BEGINWHILE */

k = 0;

stepSize = 4;

while (1)

{

/* USER CODE ENDWHILE */

/* USER CODE BEGIN 3*/

for (i = (NUM_PIXELS- 1); i > 0; i--)

{

pixel[i].data =pixel[i-1].data;

}

if (k < 255)

{

pixel[0].color.g =254 - k; //[254, 0]

pixel[0].color.r= k + 1; //[1, 255]

pixel[0].color.b =0;

}

else if (k < 510)

{

pixel[0].color.g =0;

pixel[0].color.r =509 - k; //[254, 0]

pixel[0].color.b =k - 254; //[1, 255]

j++;

}

else if (k < 765)

{

pixel[0].color.g =k - 509; //[1, 255];

pixel[0].color.r =0;

pixel[0].color.b =764 - k; //[254, 0]

}

k = (k + stepSize) %765;

// not so bright

pixel[0].color.g>>= 2;

pixel[0].color.r>>= 2;

pixel[0].color.b>>= 2;

pBuff = dmaBuffer;

for (i = 0; i

{

for (j = 23; j>= 0; j--)

{

if((pixel[i].data >> j) & 0x01)

{

*pBuff =NEOPIXEL_ONE;

}

else

{

*pBuff =NEOPIXEL_ZERO;

}

pBuff++;

}

}

dmaBuffer[DMA_BUFF_SIZE - 1] = 0; // last element must be 0!

HAL_TIM_PWM_Start_DMA(&htim2, TIM_CHANNEL_x, dmaBuffer,DMA_BUFF_SIZE);

HAL_Delay(10);

}

/* USER CODE END 3 */

}

列表4RGBW SK6812 LED的示例main()函數(shù)

int main(void)

{

/* USER CODE BEGIN 1 */

PixelRGBW_tpixel[NUM_PIXELS] = {0};

uint32_tdmaBuffer[DMA_BUFF_SIZE] = {0};

uint32_t *pBuff;

int i, j, k;

uint16_t stepSize;

/* USER CODE END 1 */

/* MCU Configuration--------------------------------------------------------*/

/* Reset of allperipherals, Initializes the Flash interface and the Systick. */

HAL_Init();

/* USER CODE BEGIN Init*/

/* USER CODE END Init*/

/* Configure the systemclock */

SystemClock_Config();

/* USER CODE BEGINSysInit */

/* USER CODE ENDSysInit */

/* Initialize allconfigured peripherals */

MX_GPIO_Init();

MX_USART2_UART_Init();

MX_DMA_Init();

MX_TIM2_Init();

/* USER CODE BEGIN 2 */

/* USER CODE END 2 */

/* Infinite loop */

/* USER CODE BEGINWHILE */

k = 0;

stepSize = 4;

while (1)

{

/* USER CODE ENDWHILE */

/* USER CODE BEGIN 3*/

for (i = (NUM_PIXELS- 1); i > 0; i--)

{

pixel[i].data =pixel[i-1].data;

}

if (k < 255)

{

pixel[0].color.g =254 - k; //[254, 0]

pixel[0].color.r= k + 1;//[1, 255]

pixel[0].color.b =0;

pixel[0].color.w =0;

}

else if (k < 510)

{

pixel[0].color.g =0;

pixel[0].color.r =509 - k; //[254, 0]

pixel[0].color.b =k - 254; //[1, 255]

pixel[0].color.w =0;

j++;

}

else if (k < 765)

{

pixel[0].color.g =0;

pixel[0].color.r =0;

pixel[0].color.b =764 - k; //[254, 0]

pixel[0].color.w =k - 509; //[1, 255]

}

else if (k < 1020)

{

pixel[0].color.g =k - 764; //[1, 255]

pixel[0].color.r =0;

pixel[0].color.b =0;

pixel[0].color.w =1019 - k; //[254, 0]

}

k = (k + stepSize) %1020;

// 50% brightness

pixel[0].color.g>>= 2;

pixel[0].color.r>>= 2;

pixel[0].color.b>>= 2;

pixel[0].color.w>>= 2;

pBuff = dmaBuffer;

for (i = 0; i

{

for (j = 31; j>= 0; j--)

{

if((pixel[i].data >> j) & 0x01)

{

*pBuff =NEOPIXEL_ONE;

}

else

{

*pBuff =NEOPIXEL_ZERO;

}

pBuff++;

}

}

dmaBuffer[DMA_BUFF_SIZE- 1] = 0; // last element must be 0!

HAL_TIM_PWM_Start_DMA(&htim2, TIM_CHANNEL_x, dmaBuffer,DMA_BUFF_SIZE);

HAL_Delay(10);

}

/* USER CODE END 3 */

}

該項(xiàng)目現(xiàn)在應(yīng)該能夠成功構(gòu)建,并支持你在器件上運(yùn)行代碼了。

結(jié)論

使用邏輯分析儀捕獲了上面提供的RGB和RGBW配置生成的控制信號(hào)。分別如圖12和圖13中所示。請(qǐng)注意,它們與圖2和圖4中指定的預(yù)期輸出相匹配。

wKgaomUt2ieAcksKAAEm1bEMPC4910.png

12生成的WS2812控制信號(hào)(正在發(fā)送0b0011……)

wKgaomUt2ieAcYyWAAEI1x0Mck0349.png

13生成的SK6812控制信號(hào)(正在發(fā)送0b0010……)

wKgaomUt2ieAZduiAAABcngP-W4089.png

更多STM32項(xiàng)目的相關(guān)內(nèi)容,請(qǐng)查看以下帖子:
  • 在STM32上輕松使用printf函數(shù)

  • 在STM32上輕松使用scanf

  • 輕松在 STM32 系列之間進(jìn)行遷移

  • 利用 STM32CubeIDE 中構(gòu)建分析儀

  • VL53L5CXToF傳感器使用入門
wKgaomUt2ieAZduiAAABcngP-W4089.png ? ?最后,如果你喜歡這篇文章,快分享給更多的小伙伴吧!切記點(diǎn)個(gè)贊哦!

提示點(diǎn)擊菜單設(shè)計(jì)支持:工程師錦囊,獲取更多工程師小貼士

秘技知識(shí)學(xué)不停 專屬福利享不停

就等您加入!

點(diǎn)此登記

賺積分、換好禮

立即到「會(huì)員權(quán)益」查看您的禮遇! 如有任何問(wèn)題,歡迎聯(lián)系得捷電子DigiKey的客服團(tuán)隊(duì)

中國(guó)(人民幣)客服

wKgaomUt2iiAeQBCAAADBaTNctA462.png400-920-1199wKgaomUt2iiAB_4FAAADAQryhLs505.png服務(wù)支持 > 聯(lián)系客服 > 微信客服wKgaomUt2iiALRPpAAADNUSMvSY112.pngservice.sh@digikey.comwKgaomUt2iiATrlcAAACyRJDcPk162.png QQ在線實(shí)時(shí)咨詢:4009201199

中國(guó)(美金)/ 香港客服

wKgaomUt2iiAeQBCAAADBaTNctA462.png

400-882-4440

wKgaomUt2iiAeQBCAAADBaTNctA462.png852-3104-0500wKgaomUt2iiALRPpAAADNUSMvSY112.pngchina.support@digikey.comwKgaomUt2iiAZleMAACA1g3d7HM828.png

wKgaomUt2iiAeytWAAJQEo9UZ9g629.png

點(diǎn)擊下方“閱讀原文”查看更多

讓我知道你在看wKgaomUt2iiAfDHdAAAD385SHbk261.png


原文標(biāo)題:按這個(gè)步驟 STM32即可完美控制 NeoPixels

文章出處:【微信公眾號(hào):得捷電子DigiKey】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。


聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 得捷電子
    +關(guān)注

    關(guān)注

    1

    文章

    255

    瀏覽量

    9789

原文標(biāo)題:按這個(gè)步驟 STM32即可完美控制 NeoPixels

文章出處:【微信號(hào):得捷電子DigiKey,微信公眾號(hào):得捷電子DigiKey】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    訓(xùn)練完模型后用cls_video.py在canmvIDE上運(yùn)行,步驟操作但是攝像頭沒有識(shí)別到是什么情況?

    訓(xùn)練完模型后用cls_video.py在canmvIDE上運(yùn)行,步驟操作但是攝像頭沒有識(shí)別到是什么情況啊,沒有框出現(xiàn)
    發(fā)表于 06-10 06:57

    STM32與機(jī)智云連接實(shí)現(xiàn)步驟與技巧(下篇):機(jī)智云代碼移植與優(yōu)化

    在《STM32與機(jī)智云連接實(shí)現(xiàn)步驟與技巧(上篇)》中,我們介紹了硬件連接和通信協(xié)議配置。本篇將重點(diǎn)講解如何將機(jī)智云相關(guān)代碼移植到STM32,完成數(shù)據(jù)上傳和設(shè)備控制。我們將介紹如何在
    的頭像 發(fā)表于 05-23 18:10 ?261次閱讀
    <b class='flag-5'>STM32</b>與機(jī)智云連接實(shí)現(xiàn)<b class='flag-5'>步驟</b>與技巧(下篇):機(jī)智云代碼移植與優(yōu)化

    STM32與機(jī)智云連接實(shí)現(xiàn)步驟與技巧(上篇)

    通過(guò)STM32與機(jī)智云的連接,開發(fā)者可以實(shí)現(xiàn)設(shè)備的遠(yuǎn)程控制和數(shù)據(jù)管理,提升物聯(lián)網(wǎng)應(yīng)用的智能化水平。本文將介紹STM32與機(jī)智云連接的具體步驟,涵蓋硬件連接、通信協(xié)議配置、數(shù)據(jù)傳輸及云平
    的頭像 發(fā)表于 05-23 18:10 ?321次閱讀
    <b class='flag-5'>STM32</b>與機(jī)智云連接實(shí)現(xiàn)<b class='flag-5'>步驟</b>與技巧(上篇)

    EMC電機(jī)控制器測(cè)試整改:確保產(chǎn)品可靠性關(guān)鍵步驟

    深圳南柯電子|EMC電機(jī)控制器測(cè)試整改:確保產(chǎn)品可靠性關(guān)鍵步驟
    的頭像 發(fā)表于 01-13 14:25 ?840次閱讀
    EMC電機(jī)<b class='flag-5'>控制</b>器測(cè)試整改:確保產(chǎn)品可靠性關(guān)鍵<b class='flag-5'>步驟</b>

    BNC座開孔標(biāo)準(zhǔn):確保完美適配的尺寸與步驟

    在電子設(shè)備的安裝與組裝過(guò)程中,BNC座的正確安裝至關(guān)重要,而開孔則是其中的關(guān)鍵環(huán)節(jié)。遵循準(zhǔn)確的BNC座開孔標(biāo)準(zhǔn),能確保其與設(shè)備完美適配,保障信號(hào)傳輸?shù)姆€(wěn)定性與設(shè)備的正常運(yùn)行。 一、BNC座開孔
    的頭像 發(fā)表于 01-13 08:57 ?772次閱讀
    BNC座開孔標(biāo)準(zhǔn):確保<b class='flag-5'>完美</b>適配的尺寸與<b class='flag-5'>步驟</b>

    STM32F405xx和STM32F407xx微控制器數(shù)據(jù)手冊(cè)

    電子發(fā)燒友網(wǎng)站提供《STM32F405xx和STM32F407xx微控制器數(shù)據(jù)手冊(cè).pdf》資料免費(fèi)下載
    發(fā)表于 01-03 14:49 ?2次下載

    濕法刻蝕步驟有哪些

    說(shuō)到濕法刻蝕了,這個(gè)是專業(yè)的技術(shù)。我們也得用專業(yè)的內(nèi)容才能給大家講解。聽到這個(gè)工藝的話,最專業(yè)的一定就是講述濕法刻蝕步驟。你知道其中都有哪些步驟嗎?如果想要了解,今天是一個(gè)不錯(cuò)的機(jī)會(huì),
    的頭像 發(fā)表于 12-13 14:08 ?817次閱讀

    stm32 GPIO中斷配置教程

    理解GPIO中斷 在STM32中,GPIO中斷允許微控制器在引腳狀態(tài)變化時(shí)(如從低到高或從高到低)立即響應(yīng),而無(wú)需不斷輪詢引腳狀態(tài)。這對(duì)于處理外部事件(如按鈕下、傳感器信號(hào)等)非常有用。 2. 硬件準(zhǔn)備
    的頭像 發(fā)表于 11-19 15:53 ?3465次閱讀

    LMK05318手冊(cè)里的編寫EEPROM的步驟,這個(gè)掩碼什么意思?

    如下圖所示,是LMK05318手冊(cè)里的編寫EEPROM的步驟,沒看懂這個(gè)掩碼什么意思 然后,我在調(diào)試過(guò)程中發(fā)現(xiàn)幾個(gè)問(wèn)題: 1.在編寫程序時(shí),如果不執(zhí)行第三步,燒錄后發(fā)現(xiàn)程序能出來(lái)正常波形,否則
    發(fā)表于 11-11 08:14

    STM32項(xiàng)目實(shí)戰(zhàn):基于STM32U5的智能燈光控制系統(tǒng)(LVGL),附項(xiàng)目教程/源碼

    《智能燈光控制系統(tǒng)_STM32U5》項(xiàng)目完整文檔、項(xiàng)目源碼,點(diǎn)擊免費(fèi)領(lǐng)取。項(xiàng)目資料領(lǐng)?。篽ttps://s.c1ns.cn/F5XyUSTM32項(xiàng)目實(shí)戰(zhàn)之“智能燈光控制系統(tǒng)”(基于
    的頭像 發(fā)表于 11-07 18:50 ?2406次閱讀
    <b class='flag-5'>STM32</b>項(xiàng)目實(shí)戰(zhàn):基于<b class='flag-5'>STM32</b>U5的智能燈光<b class='flag-5'>控制</b>系統(tǒng)(LVGL),附項(xiàng)目教程/源碼

    高低溫試驗(yàn)箱的操作步驟

    1、高溫試驗(yàn)(1) 打開總開關(guān)電源(2) 將樣件擺放在試驗(yàn)箱內(nèi),產(chǎn)品互相之間不可以接觸,有一定的間距,不擋風(fēng)道,不貼箱體內(nèi)壁;關(guān)閉試驗(yàn)箱門(3) 打開溫度控制儀,規(guī)定的要求設(shè)定溫度,操作方法如下
    的頭像 發(fā)表于 11-01 11:16 ?1592次閱讀
    高低溫試驗(yàn)箱的操作<b class='flag-5'>步驟</b>

    STM32項(xiàng)目實(shí)戰(zhàn):基于STM32F4的智能燈光控制系統(tǒng)(LVGL),附項(xiàng)目教程/源碼

    《智能燈光控制系統(tǒng)_STM32F4》項(xiàng)目完整文檔、項(xiàng)目源碼,私信小雯老師免費(fèi)領(lǐng)取。STM32項(xiàng)目實(shí)戰(zhàn)之“智能燈光控制系統(tǒng)”(基于STM32F
    的頭像 發(fā)表于 10-17 16:16 ?1870次閱讀
    <b class='flag-5'>STM32</b>項(xiàng)目實(shí)戰(zhàn):基于<b class='flag-5'>STM32</b>F4的智能燈光<b class='flag-5'>控制</b>系統(tǒng)(LVGL),附項(xiàng)目教程/源碼

    電氣控制線路的安裝步驟和注意事項(xiàng)

    在電氣工程領(lǐng)域,控制線路的安裝是確保電氣系統(tǒng)正常運(yùn)行的關(guān)鍵步驟。為了實(shí)現(xiàn)高效且安全的安裝過(guò)程,以下是一系列詳盡的步驟和注意事項(xiàng): 理解原理圖:在開始任何實(shí)際工作之前,徹底理解原理圖是必不可少
    的頭像 發(fā)表于 09-30 15:30 ?1793次閱讀

    stm32g與stm32h的區(qū)別

    STM32G和STM32H是STMicroelectronics(意法半導(dǎo)體)推出的兩個(gè)不同的微控制器系列,它們都屬于STM32的廣泛產(chǎn)品線。STM
    的頭像 發(fā)表于 09-04 09:15 ?1738次閱讀

    bin文件怎么燒錄到stm32

    號(hào)的STM32開發(fā)板,如STM32F103、STM32F407等。選擇適合自己需求的開發(fā)板即可。 USB數(shù)據(jù)線 燒錄STM32
    的頭像 發(fā)表于 08-22 09:38 ?4386次閱讀