[導(dǎo)讀]很多初學(xué)者覺得自己學(xué)的東西很基礎(chǔ),擔(dān)心今后實(shí)際工作用不到。有初學(xué)者問了這樣的問題:單片機(jī)真正開發(fā)產(chǎn)品和學(xué)習(xí)的時候有什么差別,平時學(xué)的LED、ADC這些東西,在實(shí)際項(xiàng)目中會用到嗎?雖然技術(shù)更新迭代很快,但有很多基本的技術(shù),仍然在實(shí)際項(xiàng)目中會用到,今天就拿LED為例來說說吧。LED有...
很多初學(xué)者覺得自己學(xué)的東西很基礎(chǔ),擔(dān)心今后實(shí)際工作用不到。有初學(xué)者問了這樣的問題:單片機(jī)真正開發(fā)產(chǎn)品和學(xué)習(xí)的時候有什么差別,平時學(xué)的LED、ADC這些東西,在實(shí)際項(xiàng)目中會用到嗎?
雖然技術(shù)更新迭代很快,但有很多基本的技術(shù),仍然在實(shí)際項(xiàng)目中會用到,今天就拿LED為例來說說吧。
LED有哪些作用別小看LED,它在實(shí)際生活中應(yīng)用很廣泛的。
首先就是以LED為光源的項(xiàng)目,比如呼吸燈、廣告燈、LED顯示屏等,這類控制LED亮滅(閃爍),或者亮度漸變。
再次就是LED背光燈,像液晶背光燈、按鍵背光燈等,這種也是需要控制LED變化的。我之前做過有按鍵的項(xiàng)目,按鍵背光燈需要漸變、配合音效控制LED不同頻率閃爍,目的就是為了達(dá)到更好的體驗(yàn)效果。
再再次,LED作為指示燈,電源指示燈、狀態(tài)指示燈,這種就和接近初學(xué)者的學(xué)習(xí)時的LED燈,但這種卻在項(xiàng)目中很常見。拿狀態(tài)指示燈來說,一個項(xiàng)目的LED狀態(tài)指示燈可以直觀明了的指示設(shè)備的運(yùn)行狀態(tài),比如:運(yùn)行、故障、待機(jī)、死機(jī)等常見狀態(tài)。通過RGB,或者紅黃綠不同顏色LED組合,可以實(shí)現(xiàn)更多狀態(tài)的指示。
下面針對LED狀態(tài)燈,說幾點(diǎn)細(xì)節(jié)的內(nèi)容。
LED狀態(tài)燈實(shí)現(xiàn)這里結(jié)合代碼為大家分享一些項(xiàng)目中常見的LED狀態(tài)燈的實(shí)現(xiàn)方法。
1.單色LED運(yùn)行狀態(tài)指示燈
通過閃爍(一亮一滅)指示設(shè)備運(yùn)行的狀態(tài)的指示燈,一個關(guān)鍵作用:設(shè)備有沒有死機(jī)。
很多產(chǎn)品中都會用到,你買一個開發(fā)板,提供的綜合例程也基本都有。
裸機(jī)情況下(一般狀態(tài)機(jī)),在某一個狀態(tài)實(shí)現(xiàn)LED閃爍:
RTOS情況下,新建一個狀態(tài)燈線程,在線程里面直接控制即可:
雖然技術(shù)更新迭代很快,但有很多基本的技術(shù),仍然在實(shí)際項(xiàng)目中會用到,今天就拿LED為例來說說吧。
LED有哪些作用別小看LED,它在實(shí)際生活中應(yīng)用很廣泛的。
首先就是以LED為光源的項(xiàng)目,比如呼吸燈、廣告燈、LED顯示屏等,這類控制LED亮滅(閃爍),或者亮度漸變。
再次就是LED背光燈,像液晶背光燈、按鍵背光燈等,這種也是需要控制LED變化的。我之前做過有按鍵的項(xiàng)目,按鍵背光燈需要漸變、配合音效控制LED不同頻率閃爍,目的就是為了達(dá)到更好的體驗(yàn)效果。
再再次,LED作為指示燈,電源指示燈、狀態(tài)指示燈,這種就和接近初學(xué)者的學(xué)習(xí)時的LED燈,但這種卻在項(xiàng)目中很常見。拿狀態(tài)指示燈來說,一個項(xiàng)目的LED狀態(tài)指示燈可以直觀明了的指示設(shè)備的運(yùn)行狀態(tài),比如:運(yùn)行、故障、待機(jī)、死機(jī)等常見狀態(tài)。通過RGB,或者紅黃綠不同顏色LED組合,可以實(shí)現(xiàn)更多狀態(tài)的指示。
下面針對LED狀態(tài)燈,說幾點(diǎn)細(xì)節(jié)的內(nèi)容。
LED狀態(tài)燈實(shí)現(xiàn)這里結(jié)合代碼為大家分享一些項(xiàng)目中常見的LED狀態(tài)燈的實(shí)現(xiàn)方法。
1.單色LED運(yùn)行狀態(tài)指示燈
通過閃爍(一亮一滅)指示設(shè)備運(yùn)行的狀態(tài)的指示燈,一個關(guān)鍵作用:設(shè)備有沒有死機(jī)。
很多產(chǎn)品中都會用到,你買一個開發(fā)板,提供的綜合例程也基本都有。
裸機(jī)情況下(一般狀態(tài)機(jī)),在某一個狀態(tài)實(shí)現(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( 




