不太清楚你的具體情況,比如說你的知識能力,比如你現在的學歷,比如說你要找工作的時候的學歷。
我只就我個人的能力發表一下意見:
我的觀點是,你還是學JAVA比較好。
對於0基礎的人而言,其實JAVA比較容易上手,而且工作的時候,要求的知識面少,而要求的深度面多,就是說,如果你刻苦用功的把JAVA學好,工作會相對順利一些。
而單片機的編程,不只要有軟體C語言基礎,還要有硬體基礎,單片機分為邏輯層和驅動層,驅動層,要求硬體要達到一定的水平,而且必要時,還要會單片機的匯編語言。
單片機的種類很多,比如51,AVR,STM32等等等等多達十數種,51是最簡單的,也是工資水平最低的。況且,單片機,對於學歷要求比JAVA要高,高中生做JAVA的不算少,但是高中生做單片機的,幾乎沒有。
所以你結合自己的實際情況決定吧。
② 嵌入式軟體開發就業前景如何,學習的難度又有多大
歡迎入坑。
發展方向
1、做純軟。只做嵌入式設備上的APP開發,那麼就集中精力到演算法與業務上,例如圖像處理、流媒體傳輸、QT界面開發。
2、半軟半硬。純軟入門簡單,跟其他的做軟體的沒什麼區別。再往深入發展,看懂硬體原理圖,了解CPU體系結構,匯編語言編程,操作系統原理,linux內核開發,設備驅動程序開發,等等等。這個方向需要很深的技術積累,知識多又雜,沉不下心來半途而廢太容易了。
找工作:去一線城市一線城市一線城市。一線城市對嵌入式的需求量還是很大的,厲害的去個華為大疆什麼的,既能鍛煉自己,又能學到知識。二線、三線城市嵌入式需求量不多,而且即使有,也是工業控制偏多,例如搞個單片機啥的,還需要你會用示波器,會焊板子,對於軟體人員來說跨度太大。
③ 桌面軟體程序編寫與單片機程序哪個更復雜難寫
桌面軟體程序太難,軟體(VB/VC/...)不斷更新版本不說,操作系統還經常升級,弄得硬碟裡面一片垃圾。
微軟公司就像趙本山一樣,今年賣拐,明年賣車,補丁不斷,多年來,也沒有弄出一個成熟穩定的版本。
單片機以及嵌入式系統的程序則簡單得多,它們的發展,是從實用的角度出發,並沒有多少是「忽悠」的,技術穩定的時間比桌面軟體程序要長的多。
④ 單片機編程和電腦軟體編程是一個門派嗎哪個要難點
單片機編程基於系統最底層的編程.也就是俗稱的低級語言.匯編語言.
電腦軟體編程是高級語言.需要經過編譯成EXE後在內存里於匯編跳轉指令運行.
至於那個難還要看樓主喜歡那方面的.如果樓主想學軟體編程.建議學C C++ VC
如果樓主想學系統集成.人工智慧之類的就學單片機編程ASM和C混編
⑤ 同一個項目分別用stm32和51單片機會有什麼不同
李工的經驗,有如下幾點不同,希望你供你參考。
1.51是8位單片機,而stm32是32位單片機。時鍾方面stm32運行頻率更高,性能更好。兩種單片機性能差別比較大。
2.片上資源不一樣。簡單講stm32單片機外設豐富,比如串口,I2c等。stm32單片機片上flash和RAM更大。以後升級功能,改進功能的空間大。如果考慮以後功能升級,建議考慮stm32.
3.成本上應該是51單片機要便宜一些。
4.stm32單片機開發資料和參考程序比較多,有庫函數,應用起來方便。51單片機更多直接操作寄存器,開發不方便。
我是北漂李工,一個北漂8年的程序員。
在項目開發過程中,我們經常會遇到需要單片機選型,所以我們常常會根據項目功能需求來選擇合適的單片機品牌和型號。常見的51內核單片機和STM32單片機也會是我們主要考慮的型號。
STM32與51單片機的參數差異 STM32與51單片機軟體開發難度差異STM32使用寄存器比51單片機要多很多,其配置比51復雜,而且中斷邏輯,時鍾配置使能控制等很多概念都是51單片機中所沒有的,再加上stm32很多功能如USB,FSMC。等等功能,其功能更加強大,雖然官方提供了開發固件庫和相關開發輔助工具,但很多時候,遇到bug調試難度也加大了很多。
stm32固件庫很多實用結構體和指針變數,很多在51單片機開發過程不太注重結構體與指針的使用,那麼在STM32開發過程中,就難以理解其固件庫的運用邏輯。
STM32與51單片機的性價比差異STM32比51處理速度快,外設功能豐富強大,所以價格普遍比51單片機偏貴,在項目選型過程中,需要根據項目功能需求,選擇合適的單片機,如果是51單片機能用,那麼考慮項目成本,肯定是不能選擇STM32,如果51單片機不能用,即使再便宜,也用不了。
總之, 作為單片機開發工程師,需要能夠進行一定的器件選型能力,這個也是必備的專業技能。
搞多了開發,你會發現其實用什麼真的不重要,只要你會用就行。單片機好比一個精密機床,你要想加工一件作品,你用任何品牌的機床都可以,關鍵點是這個機床你會不會用,了解通透程度如何。不同品牌機床操作方法肯定大同小異,不會差別很多,你會用一種,另外一種不用看手冊,也能猜出個七八分。機床這樣,編程也是這樣,給你個51,你應該能控制全世界。
首先如果同一個項目可以用51和STM32同時開發,就不建議使用STM32了,51成本更低。
STM32和51單片機不同點有很多:
1.開發方式不同
51單片機一般是直接操作寄存器,STM32主要操作庫函數編程
2.系統資源不同
一般而言STM32資源要比51單片機更多
3.開發環境可能不同
51和STM32一般來講都可以在Keil下開發,但STM32有更多中選擇,可以在Linux下面開發,windows Esplise下開發,甚至直接用VSCode + 插件方式開發。
4.操作系統區別
一般而言,51單片機不支持操作系統,STM32支持各種主流操作系統,STM32開發起來更容易,可以很方便的利用系統實現各種場景下的應用,51單片機由於沒有操作系統,開發起來有一定阻礙,甚至有時候必須要做出部分功能的犧牲才能達到整體功能的和諧運行。
5.後期維護方式可能不同
STM32資源足夠多,可以寫一個bootloader程序來完成之後的系統升級工作,不需要拆機就可以完成固件的升級,而51單片機則不可以。
STM32系列單片機分為CORTEX M0,M1,M4內核,個人覺得STM32F0系列的從性價比,功能上可以完全替代51單片機,而且性能更好。當然也可以使用51,價格更便宜一些,,但是要做功能復雜一些的產品,51系列的單片機是不能滿足的,比如驅動RGB 屏,至少要用STM32F429,支持LTDC介面,而且需要外擴內存,支持FMC介面,比如要做數字音頻,要支持I2S ,比如要做USB傳輸,要支持USB ,要移植操作系統,文件系統等等,要看CPU 的資源等等,總之,要根據所做的項目看CPU的資源是否滿足要求是非常重要的,這要再設計前期靠考慮周到,否則,項目做到一半發現資源不夠,需要重來是很郁悶的事情。
做產品要考慮成本,幾毛錢就能搞定的,沒必要幾塊甚至幾十塊。一般來講,價格越貴的,資源越多,使用起來越簡單,隨心所欲。簡而言之,價格越低,資源越少的單片機,完成項目的難度越大,需要優化代碼和演算法。
在stm32之前是8051的天下,silabs的c8051f外設相當的強大。硬體不錯,可惜代碼不夠多。atmel的代碼比較多,可惜晶元不夠強大。
stm32一出,橫掃天下,要硬體有硬體,要軟體有軟體,價格便宜量又足,連低端產品都用他。
電動自行車控制器都用它,無刷電機都用它。
stm32是史上最廣泛使用的單片機。
只要資源夠用,都可以,20年前我用8051,現在用stm32。stm32方便些,可以在線調試。我現在開發東西復雜一點的,用stm32 1系列和4系列。簡單一點的用stm8s一塊多錢的樣子。
我覺得你的問題對比對象不太對,一般能用51的項目用stm8或者avr即可。一般來說stm32比51強太多了,無論是性能和價格都沒有可比性。
所以在我看來開發上沒有什麼太大不同,無非就是開發環境不一樣,如果代碼規范的話很容易進行互相移植(最近晶元漲價嚴重,我們公司正在換國產),而所謂的外設(uart iic spi等等)其實沒有太大區別。
但是在生產上差別就出來了,主要在於交貨能力,一般而言同為一級代理采購物料,st的交貨能力要比stc的強(當然最近行情st也不行了,交期干到了9月份)。所以如果你的產品是主力長期貨,建議選擇交貨能力強的。
我就記得51單片機放不了幾個變數就超出了。復雜點的程序都很難寫。
⑥ 學習單片機編程真的很難嗎好多已經是高手的人都說不簡單,讓我大失信心,我該怎麼辦呢
我現在也是剛剛開始學習單片機的編程,感覺不是很難呀。我是從51入手的,自己買了一塊開發板。看看視頻看看書,20天時間後自己獨立編寫計算器程序,畫PCB板、到最後的焊接。最終功能實現。感覺不是很難,貴在堅持,並且最好有什麼人規定你在一定時間內製作一件作品出來,這樣學習比較有動力。我是看郭天祥的視頻。這個視頻不錯,對於程序的講解十分詳細。如果你C語言的基礎不錯的話,會上手很快的。買一塊板子自己學習很快的。動手很關鍵,寫好程序後,測試的過程能發現很多問題,解決之後你會對這方面的知識有非常深刻的認識。
先看郭天祥的視頻,然後買塊板子,一般裡面都會有對於硬體的講解。與此同時一定要有一本單片機原理方面的書,實踐一定要以理論為基礎。前期先實踐,理論一點一點跟上,這樣學習會很快的。加油。貴在堅持!!!
⑦ 嵌入式、單片機和應用層開發比較,那個更有前途,更有挑戰性
1,嵌入式,我認為這是最有挑戰性的,也更有前途的。因為他是有個特殊的設備平台,既包含有硬體的方向,像嵌入式驅動開發,也有軟體方向的,如嵌入式應用開發。所以我認為是最有挑戰的,當然可以選擇的范圍也更廣,更有前途。
2,單片機,首先,他么有操作系統,在難度上低於嵌入式,在實際的應用中,一般是作為一些模塊的一些簡單的數據處理。更側重於硬體方向。
3,應用開發,我認為這是最為廣泛的,只要是有系統的平台,被人使用就必然會需要應用程序,變化也是最多的,一個系統上可以有各種跑各種應用。但是,相較於硬體驅動來說,就如同將一塊木頭雕刻成一件樂器,而應用開發只是使用這件樂器奏出樂曲。先比較之下誰更有挑戰也就一目瞭然了。
⑧ 我想學c語言和單片機有難度嗎,一點都不懂
我學過單片機,這個還是非常簡單的,因為單片機的程序可以說都是面向過程的,只不過可以實現一些中斷,你可以看經典的清華大學出版社的 譚浩強的《C程序設計》,語言方面不太難,如果是結合學單片機,那你還要多了解單片機裡面的寄存器控制呀,一些常用的外圍設備之類的。這個一定要有實物(開發板)來練習才會有提高的。等你玩得差不多了,你可以玩arm呀,移植linux,寫驅動,編寫圖形程序之類的,到時看你興趣再去學習。不過你如果要學習驅動,那也要學很多東西,如數據結構、linux驅動框架之類的。。。哈哈,拙見而已。
⑨ 單片機(如:stm32)與Android哪個開發難度大
STM32,這都類似於嵌入式了,安卓網上教程很多,很快可以學會,而單片機需要長時間的編程原理的磨練才可以。