[導(dǎo)讀] ▼更多精彩推薦,請(qǐng)關(guān)注我們▼大家好,我是小舒,今天和大家一起探討一下編程的規(guī)范,不管是全新的工程,還是老工程的維護(hù),規(guī)范的編程可以賞心悅目,不僅愉悅自己也能愉悅他人,更能提升工作的效率。之前和大家分享過很多關(guān)于編程的文章(例如:辛苦整理的C語言筆記,還好沒放棄),今天來分享一下老...
▼ 更多精彩推薦,請(qǐng)關(guān)注我們▼ 大家好,我是小舒,今天和大家一起探討一下編程的規(guī)范,不管是全新的工程,還是老工程的維護(hù),規(guī)范的編程可以賞心悅目,不僅愉悅自己也能愉悅他人,更能提升工作的效率。之前和大家分享過很多關(guān)于編程的文章(例如:辛苦整理的C語言筆記,還好沒放棄 ),今天來分享一下老外的編程風(fēng)格。 01 最重要的規(guī)則 ? ? ? 編寫代碼時(shí)最重要的一條規(guī)則是:檢查周圍的代碼并嘗試模仿它。 ??作為維護(hù)人員,如果收到的補(bǔ)丁明顯與周圍代碼的編碼風(fēng)格不同,這是令人沮喪的。這是不尊重人的,就像某人穿著泥濘的鞋子走進(jìn)一間一塵不染的房子。 ??因此,無論本文推薦的是什么,如果已經(jīng)編寫了代碼并且您正在對(duì)其進(jìn)行修補(bǔ),請(qǐng)保持其當(dāng)前的樣式一致,即使它不是您最喜歡的樣式。 02 一般性的規(guī)則 ??這 里列出了最明顯和最重要的一般規(guī)則。在你繼續(xù)閱讀其他章節(jié)之前,請(qǐng)仔細(xì)檢查它們。 使用 C99 標(biāo)準(zhǔn) 不使用制表符,而是使用空格 每個(gè)縮進(jìn)級(jí)別使用 4 個(gè)空格 在關(guān)鍵字和左括號(hào)之間使用一個(gè)空格 在函數(shù)名和左括號(hào)之間不要使用空格 int32_t?a?=?sum(4 ,?3 );??????????????/*?OK?*/ int32_t?a?=?sum?(4 ,?3 );?????????????/*?Wrong?*/ 不要在變量 / 函數(shù) / 宏 / 類型中使用 _ 或前綴。這是為 C 語言本身保留的 對(duì)于嚴(yán)格的模塊私有函數(shù),使用prv _ ? name 前綴 對(duì)于包含下劃線 _ ? char 的變量 / 函數(shù) / 宏 / 類型,只能使用小寫字母 左花括號(hào)總是與關(guān)鍵字 (for, ? while, ? do, ? switch, ? if ,… ) 在同一行 size_t?i;for ?(i?=?0 ;?i?5 ;? i)?{???????????/*?OK?*/ }for ?(i?=?0 ;?i?5 ;? i){????????????/*?Wrong?*/ }for ?(i?=?0 ;?i?5 ;? i)?????????????/*?Wrong?*/ { } 在比較操作符和賦值操作符之前和之后使用單個(gè)空格 int32_t?a; a?=?3 ? ?4 ;??????????????/*?OK?*/for ?(a?=?0 ;?a?5 ;? a)?/*?OK?*/ a=3 4 ;??????????????????/*?Wrong?*/ a?=?3 4 ;????????????????/*?Wrong?*/for ?(a=0 ;a<5 ; a)???????/*?Wrong?*/ func_name(5 ,?4 );????????/*?OK?*/ func_name(4 ,3 );?????????/*?Wrong?*/ 不要初始化靜態(tài)和全局變量為 0( 或 NULL) ,讓編譯器為您做 static?int32_t?a;???????/*?OK?*/ static?int32_t?b?=?4 ;???/*?OK?*/ static?int32_t?a?=?0 ;???/*?Wrong?*/ void?my_func(void)?{ ????static?int32_t*?ptr;/*?OK?*/ ????static?char?abc?=?0 ;/*?Wrong?*/ } void?my_func(void)?{ ????char?a;?????????????/*?OK?*/ ????char?b;?????????????/*?Wrong,?variable?with ?char?type?already?exists?*/ ????char?a,?b;??????????/*?OK?*/ } ??i. 自定義結(jié)構(gòu)和枚舉 ??ii. 整數(shù)類型,更寬的無符號(hào)類型優(yōu)先 ??iii. 單/雙浮點(diǎn) int?my_func(void)?{ ????/*?1 ?*/ ????my_struct_t?my;?????/*?First?custom?structures?*/ ????my_struct_ptr_t*?p;?/*?Pointers?too?*/ ????/*?2 ?*/ ????uint32_t?a; ????int32_t?b; ????uint16_t?c; ????int16_t?g; ????char?h; ????/*?...?*/ ????/*?3 ?*/ ????double?d; ????float?f; } 總是在塊的開頭聲明局部變量,在第一個(gè)可執(zhí)行語句之前 在for循環(huán)中聲明計(jì)數(shù)器變量 /*?OK?*/for ?(size_t?i?=?0 ;?i?10 ;? i) /*?OK,?if ?you?need?counter?variable?later?*/ size_t?i;for ?(i?=?0 ;?i?10 ;? i)?{ ????if ?(...)?{ ????????break ; ????} }if ?(i?*?10 )?{ } /*?Wrong?*/ size_t?i;for ?(i?=?0 ;?i?10 ;? i)?... 避免在聲明中使用函數(shù)調(diào)用來賦值變量,除了單個(gè)變量 void?a(void)?{ ????/*?Avoid?function?calls?when?declaring?variable?*/ ????int32_t?a,?b?=?sum(1 ,?2 ); ????/*?Use?this?*/ ????int32_t?a,?b; ????b?=?sum(1 ,?2 ); ????/*?This?is ?ok?*/ ????uint8_t?a?=?3 ,?b?=?4 ; } 除了 char 、 float 或 double 之外,始終使用 stdint.h 標(biāo)準(zhǔn)庫中聲明的類型。例如, 8 位的uint 8 _t等 不要使用 stdbool.h 庫。分別使用 1 或 0 表示真或假 /*?OK?*/ uint8_t?status; status?=?0 ; /*?Wrong?*/#include? bool?status?=?true; 永遠(yuǎn)不要與真實(shí)相比較。例如,使用 if(check_func()){…} 替換 if (check_func() * 1) 總是將指針與空值進(jìn)行比較 void*?ptr; /*?...?*/ /*?OK,?compare?against?NULL?*/if ?(ptr?*?NULL?||?ptr?!=?NULL)?{ } /*?Wrong?*/if ?(ptr?||?!ptr)?{ } int32_t?a?=?0 ; ... a ;????????????/*?Wrong?*/ a;????????????/*?OK?*/for ?(size_t?j?=?0 ;?j?10 ;? j)?{}??/*?OK?*/ 總是使用 size_t 作為長度或大小變量 如果函數(shù)不應(yīng)該修改指針?biāo)赶虻膬?nèi)存,則總是使用 const 作為指針 如果不應(yīng)該修改函數(shù)的形參或變量,則總是使用 const /*?When?d?could?be?modified,?data?pointed?to?by?d?could?not ?be?modified?*/ void my_func(const?void*?d)?{ } /*?When?d?and ?data?pointed?to?by?d?both?could?not ?be?modified?*/ void my_func(const?void*?const?d)?{ } /*?Not?required,?it?is ?advised?*/ void my_func(const?size_t?len)?{ } /*?When?d?should?not ?be?modified?inside?function,?only?data?pointed?to?by?d?could?be?modified?*/ void my_func(void*?const?d)?{ } 當(dāng)函數(shù)可以接受任何類型的指針時(shí),總是使用 void ?*,不要使用 uint8_t ?*。函數(shù)在實(shí)現(xiàn)時(shí)必須注意正確的類型轉(zhuǎn)換 /* ?*?To?send?data,?function?should?not ?modify?memory?pointed?to?by?`data`?variable ?*?thus?`const`?keyword?is ?important ?* ?*?To?send?generic?data?(or ?to?write?them?to?file) ?*?any?type?may?be?passed?for ?data, ?*?thus?use?`void?*` ?*/ /*?OK?example?*/ void?send_data(const?void*?data,?size_t?len)?{?/*?OK?*/ ????/*?Do?not ?cast?`void?*`?or ?`const?void?*`?*/ ????const?uint8_t*?d?=?data;/*?Function?handles?proper?type?for ?internal?usage?*/ } void?send_data(const?void*?data,?int?len)?{????/*?Wrong,?not ?not ?use?int?*/ } 總是使用括號(hào)和 sizeof 操作符 不要使用變長數(shù)組。使用動(dòng)態(tài)內(nèi)存分配代替標(biāo)準(zhǔn) C ? malloc 和自由函數(shù),或者如果庫 / 項(xiàng)目提供了自定義內(nèi)存分配,使用它的實(shí)現(xiàn)看看 LwMEM ,一個(gè)自定義內(nèi)存管理庫。 /*?OK?*/#include? void my_func(size_t?size)?{ ????int32_t*?arr; ????arr?=?malloc(sizeof(*arr)?*?n);?/*?OK,?Allocate?memory?*/ ????arr?=?malloc(sizeof?*arr?*?n);??/*?Wrong,?brackets?for ?sizeof?operator?are?missing?*/ ????if ?(arr?*?NULL)?{ ????????/*?FAIL,?no?memory?*/ ????} ????free(arr);??/*?Free?memory?after?usage?*/ } /*?Wrong?*/ void my_func(size_t?size)?{ ????int32_t?arr[size];??/*?Wrong,?do?not ?use?VLA?*/ } 總是將 variable 與 0 進(jìn)行比較,除非它被視為布爾類型 永遠(yuǎn)不要將布爾處理的變量與 0 或 1 進(jìn)行比較。用 NOT(!) 代替 size_t?length?=?5 ;??/*?Counter?variable?*/ uint8_t?is_ok?=?0 ;??/*?Boolean-treated?variable?*/if ?(length)?????????/*?Wrong,?length?is ?not ?treated?as ?boolean?*/if ?(length?>?0 )?????/*?OK,?length?is ?treated?as ?counter?variable?containing?multi?values,?not ?only?0 ?or ?1 ?*/if ?(length?*?0 )????/*?OK,?length?is ?treated?as ?counter?variable?containing?multi?values,?not ?only?0 ?or ?1 ?*/if ?(is_ok)??????????/*?OK,?variable?is ?treated?as ?boolean?*/if ?(!is_ok)?????????/*?OK,?-||-?*/if ?(is_ok?*?1 )?????/*?Wrong,?never?compare?boolean?variable?against?1 !?*/if ?(is_ok?*?0 )?????/*?Wrong,?use?!?for ?negative?check?*/ 對(duì)于注釋,總是使用/ * ? comment */ ,即使是單行注釋 在頭文件中總是包含帶有 extern 關(guān)鍵字的 c 檢查 每個(gè)函數(shù)都必須包含 doxygen-enabled 注釋,即使函數(shù)是靜態(tài)的 使用英文名稱 / 文本的函數(shù),變量,注釋 變量使用小寫字母 如果變量包含多個(gè)名稱,請(qǐng)使用下劃線。 force_redraw 。不要使用 forceRedraw 對(duì)于 C 標(biāo)準(zhǔn)庫的包含文件,請(qǐng)始終使用<和>。例如, # ? include ? stdlib.h ?> 對(duì)于自定義庫,請(qǐng)始終使用 "" 。例如, # ? include “ my_library.h ” 當(dāng)轉(zhuǎn)換為指針類型時(shí),總是將星號(hào)與類型對(duì)齊,例如。 uint8_t* t = (uint8_t*)var_width_diff_type 始終尊重項(xiàng)目或庫中已經(jīng)使用的代碼風(fēng)格 03 注釋相關(guān)的規(guī)則 不允許以//開頭的注釋??偸鞘褂?/span>② comment */ ,即使是單行注釋 對(duì)于多行注釋,每行使用空格 星號(hào) /* ?*?This?is ?multi-line?comments, ?*?written?in ?2 ?lines?(ok) ?*/ /** ?*?Wrong,?use?double-asterisk?only?for ?doxygen?documentation ?*/ /* *?Single?line?comment?without?space?before?asterisk?(wrong) */ /* ?*?Single?line?comment?in ?multi-line?configuration?(wrong) ?*/ /*?Single?line?comment?(ok)?*/ 注釋時(shí)使用12個(gè)縮進(jìn)(12 * 4個(gè)空格)偏移量。如果語句大于12個(gè)縮進(jìn),將注釋4-空格對(duì)齊(下面的例子)到下一個(gè)可用縮進(jìn) void?my_func(void)?{ ????char?a,?b; ????a?=?call_func_returning_char_a(a);??????????/*?This?is ?comment?with ?12 *4 ?spaces?indent?from ?beginning?of?line?*/ ????b?=?call_func_returning_char_a_but_func_name_is_very_long(a);???/*?This?is ?comment,?aligned?to?4 -spaces?indent?*/ } 04 函數(shù)定義的規(guī)則 每個(gè)可以從模塊外部訪問的函數(shù)都必須包含函數(shù)原型(或聲明) 函數(shù)名必須小寫,可以用下劃線_分隔。 (這個(gè)原則好像因人而異 ) /*?OK?*/ void?my_func(void); void?myfunc(void); /*?Wrong?*/ void?MYFunc(void); void?myFunc(); 當(dāng)函數(shù)返回指針時(shí),將星號(hào)對(duì)齊到返回類型 /*?OK?*/ const?char*?my_func(void); my_struct_t*?my_func(int32_t?a,?int32_t?b); /*?Wrong?*/ const?char?*my_func(void); my_struct_t?*?my_func(void); 對(duì)齊所有的功能原型(使用相同/相似的功能)以提高可讀性 /*?OK,?function?names?aligned?*/ void????????set(int32_t?a); my_type_t???get(void); my_ptr_t*???get_ptr(void); /*?Wrong?*/ void?set(int32_t?a); const?char?*?get(void); 函數(shù)實(shí)現(xiàn)必須在單獨(dú)的行中包含返回類型和可選的其他關(guān)鍵字 /*?OK?*/ int32_t foo(void)?{ ????return ?0 ; } /*?OK?*/ static?const?char* get_string(void)?{ ????return ?"Hello?world!\r\n" ; } /*?Wrong?*/ int32_t?foo(void)?{ ????return ?0 ; } 05 變量相關(guān)的規(guī)則 /*?OK?*/ int32_t?a; int32_t?my_var; int32_t?myvar; /*?Wrong?*/ int32_t?A; int32_t?myVar; int32_t?MYVar; void?foo(void)?{ ????int32_t?a,?b;???/*?OK?*/ ????char?a; ????char?b;?????????/*?Wrong,?char?type?already?exists?*/ } 不要在第一個(gè)可執(zhí)行語句之后聲明變量 void?foo(void)?{ ????int32_t?a; ????a?=?bar(); ????int32_t?b;??????/*?Wrong,?there?is ?already?executable?statement?*/ } 你可以在下一個(gè)縮進(jìn)級(jí)別中聲明新的變量 int32_t?a,?b; a?=?foo();if ?(a)?{ ????int32_t?c,?d;???/*?OK,?c?and ?d?are?in ?if -statement?scope?*/ ????c?=?foo(); ????int32_t?e;??????/*?Wrong,?there?was?already?executable?statement?inside?block?*/ } /*?OK?*/ char*?a; /*?Wrong?*/ char?*a; char?*?a; 當(dāng)聲明多個(gè)指針變量時(shí),可以使用星號(hào)對(duì)變量名進(jìn)行聲明 /*?OK?*/ char?*p,?*n; 06 結(jié)構(gòu)、枚舉類型定義 結(jié)構(gòu)名或枚舉名必須小寫,單詞之間有下劃線 _ 字符 結(jié)構(gòu)或枚舉可以包含 typedef 關(guān)鍵字 所有結(jié)構(gòu)成員都必須小寫 所有枚舉成員必須是大寫的 結(jié)構(gòu) / 枚舉必須遵循 doxygen 文檔語法 在聲明結(jié)構(gòu)體時(shí),它可以使用以下三種不同的選項(xiàng)之一 : ??1. 當(dāng)結(jié)構(gòu)體僅用名稱聲明時(shí),它的名稱后不能包含 _t 后綴。 struct?struct_name?{ ????char*?a; ????char?b; }; ??2. 當(dāng)只使用 typedef 聲明結(jié)構(gòu)時(shí),它的名稱后面必須包含 _t 后綴。 typedef?struct?{ ????char*?a; ????char?b; }?struct_name_t; ??3. 當(dāng)結(jié)構(gòu)用 name 和 typedef 聲明時(shí),它不能包含t作為基本名稱,它必須在它的名稱后面包含t后綴作為 typedef 部分。 typedef?struct?struct_name?{ ????char*?a; ????char?b; ????char?c; }?struct_name_t; /*?a?and ?b?must?be?separated?to?2 ?lines?*/ /*?Name?of?structure?with ?typedef?must?include?_t?suffix?*/ typedef?struct?{ ????int32_t?a,?b; }?a; /*?Corrected?version?*/ typedef?struct?{ ????int32_t?a; ????int32_t?b; }?a_t; /*?Wrong?name,?it?must?not ?include?_t?suffix?*/ struct?name_t?{ ????int32_t?a; ????int32_t?b; }; /*?Wrong?parameters,?must?be?all?uppercase?*/ typedef?enum?{ ????MY_ENUM_TESTA, ????my_enum_testb, }?my_enum_t; 在聲明時(shí)初始化結(jié)構(gòu)時(shí),使用C99初始化風(fēng)格 /*?OK?*/ a_t?a?=?{ ????.a?=?4 , ????.b?=?5 , }; /*?Wrong?*/ a_t?a?=?{1 ,?2 }; 當(dāng)為函數(shù)句柄引入 new ? typedef 時(shí),使用 _fn 后綴 /*?Function?accepts?2 ?parameters?and ?returns?uint8_t?*/ /*?Name?of?typedef?has?`_fn`?suffix?*/ typedef?uint8_t?(*my_func_typedef_fn)(uint8_t?p1,?const?char*?p2); 07 復(fù)合語句規(guī)則 每個(gè)復(fù)合語句必須包括左花括號(hào)和右花括號(hào),即使它只包含1個(gè)嵌套語句 每個(gè)復(fù)合語句必須包含單個(gè)縮進(jìn);嵌套語句時(shí),每個(gè)嵌套包含1個(gè)縮進(jìn)大小 /*?OK?*/if ?(c)?{ ????do_a(); }?else ?{ ????do_b(); } /*?Wrong?*/if ?(c) ????do_a();else ????do_b(); /*?Wrong?*/if ?(c)?do_a();else ?do_b(); 在 if 或 if - else - if 語句的情況下, else 必須與第一條語句的右括號(hào)在同一行 /*?OK?*/if ?(a)?{ }?else ?if ?(b)?{ }?else ?{ } /*?Wrong?*/if ?(a)?{ }else ?{ } /*?Wrong?*/if ?(a)?{ }else { } 在 do-while 語句的情況下, while 部分必須與 do 部分的右括號(hào)在同一行 /*?OK?*/ do?{ ????int32_t?a; ????a?=?do_a(); ????do_b(a); }?while ?(check()); /*?Wrong?*/ do { /*?...?*/ }?while ?(check()); /*?Wrong?*/ do?{ /*?...?*/ }while ?(check()); 每一個(gè)開括號(hào)都需要縮進(jìn) if ?(a)?{ ????do_a(); }?else ?{ ????do_b(); ????if ?(c)?{ ????????do_c(); ????} }不要做沒有花括號(hào)的復(fù)合語句,即使是單個(gè)語句。下面的例子展示了一些不好的做法 if ?(a)?do_b();else ?do_c();if ?(a)?do_a();?else ?do_b();空 while 循環(huán)、 do-while 循環(huán)或 for 循環(huán)必須包含花括號(hào) /*?OK?*/while ?(is_register_bit_set())?{} /*?Wrong?*/while ?(is_register_bit_set());while ?(is_register_bit_set())?{?}while ?(is_register_bit_set())?{ } 如果 while (或for、 do-while 等)為空(嵌入式編程 中也可能是這種情況),請(qǐng)使用空的單行括號(hào) /*?Wait?for ?bit?to?be?set?in ?embedded?hardware?unit uint32_t*?addr?=?HW_PERIPH_REGISTER_ADDR; /*?Wait?bit?13 ?to?be?ready?*/while ?(*addr?
欲知詳情,請(qǐng)下載word文檔
下載文檔
本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
LED驅(qū)動(dòng)電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。
關(guān)鍵字:
驅(qū)動(dòng)電源
在工業(yè)自動(dòng)化蓬勃發(fā)展的當(dāng)下,工業(yè)電機(jī)作為核心動(dòng)力設(shè)備,其驅(qū)動(dòng)電源的性能直接關(guān)系到整個(gè)系統(tǒng)的穩(wěn)定性和可靠性。其中,反電動(dòng)勢抑制與過流保護(hù)是驅(qū)動(dòng)電源設(shè)計(jì)中至關(guān)重要的兩個(gè)環(huán)節(jié),集成化方案的設(shè)計(jì)成為提升電機(jī)驅(qū)動(dòng)性能的關(guān)鍵。
關(guān)鍵字:
工業(yè)電機(jī)
驅(qū)動(dòng)電源
LED 驅(qū)動(dòng)電源作為 LED 照明系統(tǒng)的 “心臟”,其穩(wěn)定性直接決定了整個(gè)照明設(shè)備的使用壽命。然而,在實(shí)際應(yīng)用中,LED 驅(qū)動(dòng)電源易損壞的問題卻十分常見,不僅增加了維護(hù)成本,還影響了用戶體驗(yàn)。要解決這一問題,需從設(shè)計(jì)、生...
關(guān)鍵字:
驅(qū)動(dòng)電源
照明系統(tǒng)
散熱
電動(dòng)汽車(EV)作為新能源汽車的重要代表,正逐漸成為全球汽車產(chǎn)業(yè)的重要發(fā)展方向。電動(dòng)汽車的核心技術(shù)之一是電機(jī)驅(qū)動(dòng)控制系統(tǒng),而絕緣柵雙極型晶體管(IGBT)作為電機(jī)驅(qū)動(dòng)系統(tǒng)中的關(guān)鍵元件,其性能直接影響到電動(dòng)汽車的動(dòng)力性能和...
關(guān)鍵字:
電動(dòng)汽車
新能源
驅(qū)動(dòng)電源
在現(xiàn)代城市建設(shè)中,街道及停車場照明作為基礎(chǔ)設(shè)施的重要組成部分,其質(zhì)量和效率直接關(guān)系到城市的公共安全、居民生活質(zhì)量和能源利用效率。隨著科技的進(jìn)步,高亮度白光發(fā)光二極管(LED)因其獨(dú)特的優(yōu)勢逐漸取代傳統(tǒng)光源,成為大功率區(qū)域...
關(guān)鍵字:
發(fā)光二極管
驅(qū)動(dòng)電源
LED
在LED照明技術(shù)日益普及的今天,LED驅(qū)動(dòng)電源的電磁干擾(EMI)問題成為了一個(gè)不可忽視的挑戰(zhàn)。電磁干擾不僅會(huì)影響LED燈具的正常工作,還可能對(duì)周圍電子設(shè)備造成不利影響,甚至引發(fā)系統(tǒng)故障。因此,采取有效的硬件措施來解決L...
關(guān)鍵字:
LED照明技術(shù)
電磁干擾
驅(qū)動(dòng)電源
開關(guān)電源具有效率高的特性,而且開關(guān)電源的變壓器體積比串聯(lián)穩(wěn)壓型電源的要小得多,電源電路比較整潔,整機(jī)重量也有所下降,所以,現(xiàn)在的LED驅(qū)動(dòng)電源
關(guān)鍵字:
LED
驅(qū)動(dòng)電源
開關(guān)電源
LED驅(qū)動(dòng)電源是把電源供應(yīng)轉(zhuǎn)換為特定的電壓電流以驅(qū)動(dòng)LED發(fā)光的電壓轉(zhuǎn)換器,通常情況下:LED驅(qū)動(dòng)電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。
關(guān)鍵字:
LED
隧道燈
驅(qū)動(dòng)電源
LED驅(qū)動(dòng)電源在LED照明系統(tǒng)中扮演著至關(guān)重要的角色。由于LED具有節(jié)能、環(huán)保、長壽命等優(yōu)點(diǎn),使得LED照明在各個(gè)領(lǐng)域得到廣泛應(yīng)用。然而,LED的電流、電壓特性需要特定的驅(qū)動(dòng)電源才能正常工作。本文將介紹常用的LED驅(qū)動(dòng)電...
關(guān)鍵字:
LED驅(qū)動(dòng)電源
led照明
LED驅(qū)動(dòng)電源是把電源供應(yīng)轉(zhuǎn)換為特定的電壓電流以驅(qū)動(dòng)LED發(fā)光的電源轉(zhuǎn)換器,通常情況下:LED驅(qū)動(dòng)電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。
關(guān)鍵字:
LED
驅(qū)動(dòng)電源
高壓工頻交流
崧盛股份9日發(fā)布投資者關(guān)系活動(dòng)記錄表,就植物照明發(fā)展趨勢、行業(yè)壁壘等問題進(jìn)行分享。植物照明未來市場需求廣闊崧盛股份指出,植物照明將會(huì)走向長期產(chǎn)業(yè)領(lǐng)域。主要原因有三:第一,LED植物照明賦能終端種植更具有經(jīng)濟(jì)價(jià)值。由于LE...
關(guān)鍵字:
崧盛股份
驅(qū)動(dòng)電源
在當(dāng)今高度發(fā)展的技術(shù)中,電子產(chǎn)品的升級(jí)越來越快,LED燈技術(shù)也在不斷發(fā)展,這使我們的城市變得豐富多彩。 LED驅(qū)動(dòng)電源將電源轉(zhuǎn)換為特定的電壓和電流,以驅(qū)動(dòng)LED發(fā)光。通常情況下:LED驅(qū)動(dòng)電源的輸入包括高壓工頻交流電(即...
關(guān)鍵字:
LED
驅(qū)動(dòng)電源
高壓直流
人類社會(huì)的進(jìn)步離不開社會(huì)上各行各業(yè)的努力,各種各樣的電子產(chǎn)品的更新?lián)Q代離不開我們的設(shè)計(jì)者的努力,其實(shí)很多人并不會(huì)去了解電子產(chǎn)品的組成,比如LED電源。
關(guān)鍵字:
LED
驅(qū)動(dòng)電源
低壓直流
隨著科學(xué)技術(shù)的發(fā)展,LED技術(shù)也在不斷發(fā)展,為我們的生活帶來各種便利,為我們提供各種各樣生活信息,造福著我們?nèi)祟?。LED驅(qū)動(dòng)電源實(shí)際上是一種電源,但是它是一種特定的電源,用于驅(qū)動(dòng)LED發(fā)射帶有電壓或電流的光。 因此,LE...
關(guān)鍵字:
LED
驅(qū)動(dòng)電源
電流
LED燈作為一種新型節(jié)能和無污染光源,由于其特有的發(fā)光照明特性,在現(xiàn)代照明應(yīng)用中發(fā)揮著革命性的作用。作為 LED 照明產(chǎn)業(yè)鏈中最為核心的部件之一,LED 驅(qū)動(dòng)電源的驅(qū)動(dòng)控制技術(shù)所存在的可靠性低、成本高等典型問題一直制約著...
關(guān)鍵字:
多路
LED
驅(qū)動(dòng)電源
隨著社會(huì)的快速發(fā)展,LED技術(shù)也在飛速發(fā)展,為我們的城市的燈光煥發(fā)光彩,讓我們的生活越來越有趣,那么你知道LED需要LED驅(qū)動(dòng)電源嗎?那么你知道什么是LED驅(qū)動(dòng)電源嗎?
關(guān)鍵字:
LED
開關(guān)電源
驅(qū)動(dòng)電源
早前有新聞稱,Cree在2018年開始宣布轉(zhuǎn)型高科技半導(dǎo)體領(lǐng)域,并一邊逐漸脫離照明與LED相關(guān)業(yè)務(wù),一邊持續(xù)投資半導(dǎo)體。在今日,Cree宣布與SMART Global Holdings, Inc.達(dá)成最終協(xié)議,擬將LED...
關(guān)鍵字:
cree
led照明