[導(dǎo)讀]前言使用uFUNSTM32開發(fā)板配合Qt上位機,實現(xiàn)任意顏色的混合,Qt的上位機下發(fā)RGB數(shù)值,范圍0-255,uFUN開發(fā)板進行解析,然后輸出不同占空比的PWM,從而實現(xiàn)通過RGB三原色調(diào)制出任意顏色。Qt上位機界面:STM32下位機基于uFUN開發(fā)板的STM32程序串口驅(qū)動,...
前言
使用uFUN STM32開發(fā)板配合Qt上位機,實現(xiàn)任意顏色的混合,Qt的上位機下發(fā)RGB數(shù)值,范圍0-255,uFUN開發(fā)板進行解析,然后輸出不同占空比的PWM,從而實現(xiàn)通過RGB三原色調(diào)制出任意顏色。 Qt上位機界面:
RGB簡介
使用uFUN STM32開發(fā)板配合Qt上位機,實現(xiàn)任意顏色的混合,Qt的上位機下發(fā)RGB數(shù)值,范圍0-255,uFUN開發(fā)板進行解析,然后輸出不同占空比的PWM,從而實現(xiàn)通過RGB三原色調(diào)制出任意顏色。
STM32下位機
- 基于uFUN開發(fā)板的STM32程序
- 串口驅(qū)動,串口中斷,數(shù)據(jù)的接收和解析。
- 定時器的使用,PWM方式驅(qū)動RGB
- 基于Qt 5.8.0開發(fā),采用串口協(xié)議和uFUN開發(fā)板進行通訊,數(shù)據(jù)協(xié)議固定,串口波特115200,可自定義RGB的亮度,可通過調(diào)色板來選擇任意顏色
- 串口的使用,串口的搜索,串口參數(shù)的設(shè)置
- 串口的打開關(guān)閉,串口數(shù)據(jù)的發(fā)送和接收
- 串口自定義波特率的實現(xiàn)
- 滑動條的使用,滑動條值的獲取和設(shè)置,調(diào)色板RGB顏色值的獲取
- 按鈕的觸發(fā),信號與槽
- 多窗口的打開和關(guān)閉
RGB簡介
RGB模型是目前常用的一種彩色信息表達方式,它使用紅,綠,藍三原色的亮度來定量表示顏色。該模型也稱為加色混色模型,是以RGB三色光互相疊加來實現(xiàn)混色的方法,因而適合于顯示器等發(fā)光體的顯示。可以通過調(diào)整RGB三種原色的比例,來混合出任何你想要的顏色。
uFUN開發(fā)板的硬件電路
uFUN開發(fā)板上的RGB燈硬件電路也很簡單,可以通過TIM5 / TIM2的通道1,通道2,通道3來控制,通過實際驗證,發(fā)現(xiàn)PWM?B和PWM?G兩個引腳的網(wǎng)絡(luò)標號反了,如下圖:定時器輸出PWM配置
使用TIM5或者TIM2都可以,但是在使用TIM5軟件仿真的時候,發(fā)現(xiàn)沒有PWM波輸出,而實際有輸出,不知道這是不是的Keil的一個BUG,我的是5.16a版本的。void RGB_LED_Init(void){GPIO_InitTypeDef IO_Init;TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure;TIM_OCInitTypeDef OC_Init;RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM5, ENABLE);IO_Init.GPIO_Mode = GPIO_Mode_AF_PP;IO_Init.GPIO_Pin = GPIO_Pin_0 | GPIO_Pin_1 | GPIO_Pin_2;IO_Init.GPIO_Speed = GPIO_Speed_50MHz;GPIO_Init(GPIOA,





