雖然技術(shù)更新迭代很快,但有很多基本的技術(shù),仍然在實際項目中會用到,今天就拿LED為例來說說吧。
LED有哪些作用別小看LED,它在實際生活中應(yīng)用很廣泛的。
首先就是以LED為光源的項目,比如呼吸燈、廣告燈、LED顯示屏等,這類控制LED亮滅(閃爍),或者亮度漸變。
再次就是LED背光燈,像液晶背光燈、按鍵背光燈等,這種也是需要控制LED變化的。我之前做過有按鍵的項目,按鍵背光燈需要漸變、配合音效控制LED不同頻率閃爍,目的就是為了達(dá)到更好的體驗效果。
再再次,LED作為指示燈,電源指示燈、狀態(tài)指示燈,這種就和接近初學(xué)者的學(xué)習(xí)時的LED燈,但這種卻在項目中很常見。拿狀態(tài)指示燈來說,一個項目的LED狀態(tài)指示燈可以直觀明了的指示設(shè)備的運行狀態(tài),比如:運行、故障、待機(jī)、死機(jī)等常見狀態(tài)。通過RGB,或者紅黃綠不同顏色LED組合,可以實現(xiàn)更多狀態(tài)的指示。
下面針對LED狀態(tài)燈,說幾點細(xì)節(jié)的內(nèi)容。
LED狀態(tài)燈實現(xiàn)這里結(jié)合代碼為大家分享一些項目中常見的LED狀態(tài)燈的實現(xiàn)方法。
1.單色LED運行狀態(tài)指示燈
通過閃爍(一亮一滅)指示設(shè)備運行的狀態(tài)的指示燈,一個關(guān)鍵作用:設(shè)備有沒有死機(jī)。
很多產(chǎn)品中都會用到,你買一個開發(fā)板,提供的綜合例程也基本都有。
裸機(jī)情況下(一般狀態(tài)機(jī)),在某一個狀態(tài)實現(xiàn)LED閃爍:
int main(void){??//系統(tǒng)初始化 while(1) {????//do?something switch(State) { case 狀態(tài)1: //do something break;
case 狀態(tài)2: //do something??????break; · ·??????· case 狀態(tài)燈: ED_TOGGLE(); //LED閃爍 break; } }}RTOS情況下,新建一個狀態(tài)燈線程,在線程里面直接控制即可:
void StatusLight_Task(void *pvParameters){??static?TickType_t?xLastWakeTime; //初始化 xLastWakeTime = xTaskGetTickCount();
for(;;) { //do something
LED_TOGGLE(); //LED閃爍 vTaskDelayUntil( 




