{eval=Array;=+count(Array);}
除了C和匯編,超子還接觸過使用Arduino、Labview、Python以及Lua對單片機(jī)進(jìn)行程序開發(fā)。不過這些相對比較小眾,沒有普適性。
Arduino應(yīng)該算是一種對C和C++語言高度延伸的特有編程語言吧,因為其核心庫是基于C和C++混合編寫而成,提供給用戶高度封裝過的API接口。
其通常只針對于特定的Arduino環(huán)境的硬件開發(fā)板,通常是ATMEL公司的ATMEGA系列的8位或是32位的單片機(jī)。還有就是ESP8266也可以使用Arduino進(jìn)行開發(fā)。
LabVIEW是由美國國家儀器(NI)公司研制開發(fā)的一種編程語言。它不同于C這種基于文本的編程語言,而是采用圖形化編輯語言G編寫程序。通過拖動控件,使用連接線連接各個控件,所有的數(shù)據(jù)都要基于數(shù)據(jù)流的模式。
使用LabVIEW可以對STM32單片機(jī)進(jìn)行編程,當(dāng)然這種方式還是比較小眾,適合有一定Labview基礎(chǔ)的人群。
一說起Python,知道的人肯定非常多,它是一種面向?qū)ο蟮膭討B(tài)類型語言,而且也是一個非常熱門的編程語言。更多的應(yīng)該和爬蟲或是人工智能聯(lián)系在一起。
不過Python確實(shí)可以對STM32單片機(jī)進(jìn)行編程,當(dāng)然功能上并不是太多,使用上也不是太友好,也不具備普適性,而且需要基于特定的STM32開發(fā)板。
Lua是一種非常輕量而且十分小巧的腳本編程語言,Lua語言非常簡單,易擴(kuò)展,而且非常靈活。幾乎在所有操作系統(tǒng)和平臺上都可以編譯,運(yùn)行。
超子經(jīng)常使用Lua語言對2G或是4G模塊進(jìn)行編程,使用起來非常靈活。
以一個業(yè)內(nèi)近15年工作經(jīng)驗的人來解答:單片機(jī)派系眾多,美系、日系、韓系、臺系,還有現(xiàn)在的大陸系,各家使用的IDE各不相同。
對于非公版MCU來說,只有原廠對自家底層最熟悉,各種指令架構(gòu)各種坑,只有自家的編譯器才能正確解釋,當(dāng)然自家的匯編指令集是最高效的,各種停產(chǎn)各種升級,想要移植換片子,想起來就頭大!
對于公版的如8051、ARM架構(gòu),繁衍出很多能夠適配的第三方編譯環(huán)境,如Keil、IAR等,使用C語言編輯,能夠完全不用理會各種“bit寬度、BANK、Page”,不太了解指令架構(gòu)也可以越過各種溝各種坑!
只要給的起錢,這些第三方的編譯器都會盡量滿足你,想要用什么語言來寫,只要你高興就好。未來Python、JavaScript流行開來,這些也能免費(fèi)適配。
總之不管用什么語言來編輯,能夠簡單高效的解析出硬件需求,實(shí)現(xiàn)產(chǎn)品所規(guī)劃的功能才是一個程序員的價值所在。
現(xiàn)在主要還是c語言和匯編語言,這兩個是當(dāng)前底層系統(tǒng)必須的。未來可能會出現(xiàn)新的語言,現(xiàn)在也有在單片機(jī)上跑Python解釋器然后用Python編寫應(yīng)用程序的,如micropython。也有JavaScript虛擬機(jī)的,然后使用JavaScript編寫應(yīng)用。這兩個在單片機(jī)軟件開發(fā)中還沒成氣候。
10
回答10
回答10
回答10
回答10
回答3
回答7
回答0
回答9
回答0
回答