JAVA或Python編程語(yǔ)言可不可以用來(lái)編寫51單片機(jī)程序?
網(wǎng)友解答: 不是。51什么的屬于硬件編程了,底層的東西離不開(kāi)指針,用JAVA Python就沒(méi)得指針的概念,你處理個(gè)寄存器什么的還好,牽涉到內(nèi)存管理什么的這玩意兒就沒(méi)得用了。當(dāng)然了,你可
不是。51什么的屬于硬件編程了,底層的東西離不開(kāi)指針,用JAVA Python就沒(méi)得指針的概念,你處理個(gè)寄存器什么的還好,牽涉到內(nèi)存管理什么的這玩意兒就沒(méi)得用了。當(dāng)然了,你可以把接口用C封裝起來(lái),然后用Python或者JAVA調(diào)用那就沒(méi)問(wèn)題了,不過(guò)那就不像是搞單片機(jī)了,像是在搞應(yīng)用層的東西了。而且對(duì)內(nèi)部硬件原理可能就很難搞清楚了,更不要提什么硬件設(shè)計(jì)了。
所以,在看待這個(gè)問(wèn)題之前,你要知道C和Python的區(qū)別。一個(gè)是解釋性需要一個(gè)是面相過(guò)程的編譯性語(yǔ)言,本身處理的方向就不太一樣,Python更著重處理現(xiàn)實(shí)的問(wèn)題,像是個(gè)工具類的,上手就用,C像是制造這個(gè)工具的材料。
另外,C的運(yùn)行速度也要高于Python與Java,當(dāng)然了,在PC上是幾乎看不出來(lái)什么的,但是單片機(jī)資源無(wú)法跟PC媲美的,所以,差距很明顯的,而嵌入式系統(tǒng)要求實(shí)時(shí)性很高,你也不想按下按鈕,等半分鐘機(jī)器才運(yùn)行吧。當(dāng)然沒(méi)那么夸張啦。
總之,搞硬件的會(huì)點(diǎn)C語(yǔ)言不會(huì)差的,目前想用其他語(yǔ)言替代C去搞硬件還很早,不要跟我說(shuō)你用樹(shù)莓派什么的,那是個(gè)PC,那不是單片機(jī)。。都1.4Ghz處理器了。。。
網(wǎng)友解答:難易、執(zhí)行效率等因素所決定。單片機(jī)存貯往往有限,程序的運(yùn)行環(huán)境不易太大或復(fù)雜,越簡(jiǎn)單越好。一般Linux或DOS等操作系統(tǒng)較適合。WⅠNCE也是單片機(jī)較常用的操作系統(tǒng)。
單片機(jī)的CPU較簡(jiǎn)單,不宜用太慢的解釋執(zhí)行系統(tǒng)。最適合的是匯編,高級(jí)語(yǔ)言是C。
JAVA是虛擬指令的解釋執(zhí)行,既要虛擬機(jī)環(huán)境又要解釋執(zhí)行,太慢,不太適合單片機(jī)。也不是絕對(duì),安卓手機(jī)偏喜歡安卓java呢,越用越卡受夠了。
高級(jí)語(yǔ)言中最適合單片機(jī)的是C語(yǔ)言,語(yǔ)法簡(jiǎn)潔,代碼質(zhì)量高,最接近匯編語(yǔ)言,真編譯,代碼運(yùn)行速度快。單片機(jī)更喜歡高級(jí)語(yǔ)言中接近硬件的低級(jí)語(yǔ)言。
一些解釋執(zhí)行的高級(jí)語(yǔ)言執(zhí)行慢,也不太適合單片機(jī)。難以控制硬件細(xì)節(jié)。百度了一下,python是Web腳本語(yǔ)言,用于網(wǎng)頁(yè)中解釋執(zhí)行的語(yǔ)言,對(duì)于單片機(jī)更不適合。
并未從事單片機(jī),只是扯扯。