日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > windows >内容正文

windows

三、实战小例程 基于STM32F103C8T6最小系统板和STM32CubeMX驱动WS2812B光立方

發布時間:2023/12/9 windows 73 豆豆
生活随笔 收集整理的這篇文章主要介紹了 三、实战小例程 基于STM32F103C8T6最小系统板和STM32CubeMX驱动WS2812B光立方 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

系列文章目錄

一、基于STM32F103C8T6最小系統板和STM32CubeMX實現LED燈循環閃爍
二、基于STM32F103C8T6和STM32CubeMX實現UART串口通信數據收發
三、實戰小例程 基于STM32F103C8T6最小系統板和STM32CubeMX驅動WS2812B光立方
四、基于STM32F103C8T6最小系統板HAL庫CubeMX驅動HC-SR501紅外人體傳感模塊
五、基于STM32F103C8T6(HAL庫)的HC-SR501紅外人體傳感及HC-SR04超聲波測距


文章目錄

  • 系列文章目錄
  • 前言
  • 一、配置CubeMX
    • 1.1 時鐘樹配置
    • 1.2 配置DMA
  • 二、代碼部分
  • 三、現象
  • 四、后記


前言

完整工程下載鏈接:

基于STM32F103C8T6最小系統板(HAL庫)和STM32CubeMX驅動WS2812B光立方.rar

RGB顏色值與十六進制顏色碼轉換工具鏈接:
https://www.sioe.cn/yingyong/yanse-rgb-16/

參考博文:
ws2812 程序設計與應用(1)DMA 控制 PWM 占空比原理及實現(STM32)

5X5X5光立方電路工程:
立創開源廣場5X5X5光立方

本文開發環境:

MCU型號:STM32F103C8T6最小系統板
IDE環境: MDK V5.36
代碼生成工具:STM32CubeMx 6.3.0

電路板實拍:



一、配置CubeMX

新建工程,選擇芯片,配置SYS,RCC略

1.1 時鐘樹配置

這里直接把時鐘開到最高72MHz

讀數據手冊,可以發現只有TIM1是掛載在APB2總線上的

1.2 配置DMA

周期計算:

WS2812B需要800kb的周期,系統時鐘是72MHz,TIM1是掛在APB2總線上的,它的時鐘也是72MHz,
因此,有:72 * 1000 / 800 = 90 (89+1),因此自動裝載值設為 89 ;


這樣cubeMX的配置就完畢了,打開生成的工程文件。

最終引腳配置圖:


可以發現,PWM輸出引腳為PA8

二、代碼部分

在main.c里添加:

此函數實現了燈效的控制,可以通過用戶傳入的RGB參數,來自動填充數組:

int fputc(int ch,FILE *f) {ITM_SendChar(ch);return (ch); }#define ONE_PULSE (60) //1 碼計數個數 #define ZERO_PULSE (30) //0 碼計數個數 #define RESET_PULSE (48) //80 復位電平個數(不能低于40) #define LED_NUMS (25) //led 個數 #define LED_DATA_LEN (24) //led 長度,單個需要24個字節 #define WS2812_DATA_LEN (LED_NUMS*LED_DATA_LEN) //ws2812燈條需要的數組長度 #define DMA_LED_LEN (RESET_PULSE+WS2812_DATA_LEN) //傳輸數據長度uint16_t static RGB_buffur[RESET_PULSE + WS2812_DATA_LEN] = { 0 };void ws2812_set_RGB(uint8_t R, uint8_t G, uint8_t B, uint16_t num) {//指針偏移:需要跳過復位信號的N個0uint16_t* p = (RGB_buffur + RESET_PULSE) + (num * LED_DATA_LEN);for (uint16_t i = 0;i < 8;i++){//填充數組p[i] = (G << i) & (0x80)?ONE_PULSE:ZERO_PULSE;p[i + 8] = (R << i) & (0x80)?ONE_PULSE:ZERO_PULSE;p[i + 16] = (B << i) & (0x80)?ONE_PULSE:ZERO_PULSE;}}

這里寫2個小函數,方便對連續的一組燈進行控制

void LED_ON_Purple(int Num_Start,int Num_End) {int Num_flag;for(Num_flag=Num_Start;Num_flag<=Num_End;Num_flag++) ws2812_set_RGB(0x94, 0x00, 0xD3, Num_flag); }void LED_OFF(int Num_Start,int Num_End) {int Num_flag;for(Num_flag=Num_Start;Num_flag<=Num_End;Num_flag++) ws2812_set_RGB(0x00, 0x00, 0x00, Num_flag); }

此函數設置了燈的顏色情況,并通過延時來控制燈的閃爍:

void ws2812_example(void) { LED_ON_Purple(0,4);LED_OFF(5,24);HAL_TIM_PWM_Start_DMA(&htim1,TIM_CHANNEL_1,(uint32_t *)RGB_buffur,DMA_LED_LEN); //#2.傳輸數據HAL_Delay(500);//#3.延時:使效果可以被觀察LED_OFF(0,4);LED_OFF(10,24);LED_ON_Purple(5,9); HAL_TIM_PWM_Start_DMA(&htim1,TIM_CHANNEL_1,(uint32_t *)RGB_buffur,DMA_LED_LEN); HAL_Delay(500);LED_OFF(0,9);LED_ON_Purple(10,14);LED_OFF(15,24);HAL_TIM_PWM_Start_DMA(&htim1,TIM_CHANNEL_1,(uint32_t *)RGB_buffur,DMA_LED_LEN); HAL_Delay(500);LED_OFF(0,14);LED_ON_Purple(15,19);LED_OFF(20,24);HAL_TIM_PWM_Start_DMA(&htim1,TIM_CHANNEL_1,(uint32_t *)RGB_buffur,DMA_LED_LEN); HAL_Delay(500);LED_OFF(0,19);LED_ON_Purple(20,24);HAL_TIM_PWM_Start_DMA(&htim1,TIM_CHANNEL_1,(uint32_t *)RGB_buffur,DMA_LED_LEN); HAL_Delay(500); } while (1){ws2812_example();/* USER CODE END WHILE *//* USER CODE BEGIN 3 */}

三、現象

(角落里有個燈沒焊好,回頭改一下)

四、后記

我是在立創開源廣場看到的5X5X5光立方工程,然后就想復現一下,理論上有五層(光立方),目前只做了一層(光平方)做測試,后續我會把五塊都做出來然后連起來。

然后WS2812的具體原理和代碼邏輯,在前言里的那篇大佬寫的博文里寫的很清楚,在這里我也只是做一些小補充,然后移植到一個實例中來。

另外,單片機給的3.3V供電不能保證電路能正常工作,燈少好像還行,但多了的話經過實測,至少要到3.5V的供電電壓,這可能與具體元器件有關系,如果亮滅情況有問題的話,大家也可以從供電的角度查一查。

總結

以上是生活随笔為你收集整理的三、实战小例程 基于STM32F103C8T6最小系统板和STM32CubeMX驱动WS2812B光立方的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: av成人免费观看 | asian日本肉体pics | 一区二区三区国产 | 激情 小说 亚洲 图片 伦 | 精品国产一区二区三区在线 | 国产鲁鲁视频在线观看免费 | 91亚洲视频在线观看 | 欧美另类精品 | 在线观看免费黄色 | 中文乱码人妻一区二区三区视频 | 人人看人人看 | 日本一区二区色 | 亚洲自拍偷拍综合 | 人人艹在线 | 丁香婷婷综合激情五月色 | 中文字幕精品无码亚 | 青青草国产成人99久久 | 成人网页在线观看 | 国产综合在线播放 | 91网站在线看 | 最新日韩在线视频 | 91高跟黑色丝袜呻吟在线观看 | 国模无码一区二区三区 | 日韩aaa | 黄色成年人网站 | 国产精品伦理 | 水蜜桃色314在线观看 | 久久av网址| 亚洲黄色网络 | 另类亚洲色图 | 嫩草影院一区二区三区 | 九九色视频 | 无码人妻精品一区二区蜜桃视频 | 一区二区三区www污污污网站 | 少妇人妻丰满做爰xxx | 国自产拍偷拍精品啪啪一区二区 | 91chinese在线 | av噜噜色| 800av免费在线观看 | 中文字幕一二区 | 69精品久久久| www.com捏胸挤出奶 | 久久7777| 中国特级毛片 | 国产 丝袜 欧美中文 另类 | 嫩色av| 日韩免费高清视频 | 一区二区三区免费在线观看 | 久久人爽| 亚洲激情社区 | 久久久久久久久久久久久久久久久久久久 | 淫久久 | 国产69精品久久久久久久 | 欧美少妇一区二区 | 日本美女逼 | 亚洲视频图片小说 | 少妇精品无码一区二区免费视频 | 超碰操| 国产又粗又猛又爽又 | 在线观看中文字幕码 | 91精品久久久久久久久久久 | 日韩精品成人一区二区在线 | 你懂得在线视频 | 污污小视频| 又黄又爽又色视频 | 久久国产视频网 | 日本乱码一区二区 | 青草伊人久久 | 18岁禁黄网站| 亚洲 自拍 另类 欧美 丝袜 | 最新网址av | 国产一级二级毛片 | 欧美色乱| 日本欧美一级 | 国产精品美女久久 | 香蕉视频网站入口 | 青青草原综合久久大伊人精品 | 人人玩人人干 | 国产黄色三级网站 | 人妻精品无码一区二区三区 | 国产精品久久久久久69 | 亚洲高h | 亚洲av无码国产精品永久一区 | 逼逼爱插插网站 | 国产一区二区三区乱码 | 三级艳丽杨钰莹三级 | 五月天校园春色 | 一起射导航 | 水果视频污 | 亚洲成人基地 | 免费精品一区二区 | 亚洲男同视频 | 色一情一交一乱一区二区三区 | 男生操女生动漫 | 在线播放视频高清在线观看 | 成人久久久精品国产乱码一区二区 | 久久久999| 色黄视频在线观看 | 色视屏|