單片機用C語言編程很好學,為什么還要用匯編呢?
c語言是發展趨勢,匯編可以幫助學生熟悉單片機的內部結構。首先,匯編語言和C語言都是編程語言。匯編是一種直接面向底層的機器語言,與單片機底層硬件架構密切相關。與C語言相比,C語言是一種低級語言,是一種面向過程的語言。,在編譯執行中會轉換成匯編中生成的單片機可執行文件。是一種高級語言,兩種語言各有優缺點。
C語言/匯編的優缺點。1學習困難。
匯編更難學是因為它比C語言更難理解和開發,而且都是寄存器操作。學習匯編,需要學習這個單片機的硬件結構和基本組成,存儲器訪問,單片機的I/O操作順序,定時器計數器,中斷處理,指令系統,尋址。知識點;而且每個系列芯片的內部注冊地址和寄存器都不一樣,維護起來非常困難。
2執行效率
匯編的實時性優于C語言,占用單片機資源少,生成的執行文件更小,匯編語言程序直接轉換成機器指令。C語言的編譯過程會先形成一個匯編,然后變成機器語言。
3便攜性
c語言比匯編有更好的可移植性和可讀性。實現同樣的功能,C語言的代碼數量會比較少。對于匯編來說,每個單片機的匯編語言都不一樣。所以便攜性差。
c語言通過結構和指針映射寄存器地址。必要時,只需改變寄存器地址或寄存器定義,即可滿足程序和項目的移植。
4、調試
c語言調試方便。比如在STM32的開發過程中,可以使用jlink通過SWD進行在線模擬,調試各種語法和語句的執行,檢查變量值的變化,這樣就可以很容易的定位bug問題。但組裝調試難度大,往往很難快速定位。問題
第二,單片機的開發不一定都用C語言。20世紀70年代,單片計算機開始出現。早期使用匯編語言進行開發。隨著技術的發展和進步,單片機的處理速度迅速提高,很多單片機都是用C語言編譯生產的。二進制文件。
但由于產品BOM的成本要求,很多低端單片機還是一次性用OTP燒,程序空間小。很多型號還在組裝開發,比如翼龍,松寒。
學匯編不是沒用。1.在大學學習匯編有助于理解單片機系統架構、指令集、寄存器尋址等知識點,對C語言使用指針也有促進作用。
2.目前一些linux或者開發的低級bootload文件。stm32的s啟動文件都是使用匯編語言的文件,都是使用匯編進行底層引導。修改堆棧,或者程序開始運行的位置,都需要在相應的文件中進行修改。或者學習UC。操作系統還涉及修改啟動文件中的相關數據。
單片機發展趨勢:C語言半導體的成本隨著工藝技術的提高而降低。越來越多的低端8位單片機正在從匯編轉向C語言,單片機也在向集成度更高、功能更強大的方向發展。
所以你不學習單片機不一定要精通匯編,但是你對匯編有一定的了解,對學習單片機是有幫助的。只有在需要某些功能的時候,才可以適當使用匯編。
求一個基于stm32的簡單一點設計,各種實物材料名稱?
制作一個簡單的帶彩屏的示波器,采樣頻率可以通過按鈕調節,波形可以自校準,實時數據可以通過串口同步到計算機。注意屏幕用fsmc,數據傳輸用dma。
如果你能做到,stm32就有六成把握了。然后可以學習cortexm3,學習操作系統,最后嘗試獨立移植ucos。如果你成功了,恭喜你。在嵌入式領域,你有資格說你勉強入門!
這個要看你需要做什么樣的設計了。STM32很強大,但是你需要熟悉軟件,以及這個芯片的架構和單元功能。如果你有一個基本模塊,那就簡單點。你可以做一套流水燈。;不需要很多東西,包括LED燈和電阻。。還可以做電機驅動控制,可以控制電機前進和后退,需要電機,繼電器或者三極管來驅動。如果想多做一些體力活,可以去貼吧。看著別人在網站上做一些好玩的東西,買一些材料自己做,然后自己寫代碼,就能找到很多樂趣。。
謝謝邀請,最簡單的設計,想想,然后音樂呼吸光。
物理材料:各種顏色的發光二極管、一個有源或無源蜂鳴器和一個孔板。這么多材料就夠了。
音樂可選,一個PWM控制音樂;呼吸燈節奏由另一個PWM控制;各種顏色的發光二極管的發光順序通過間隔計時器和自檢獲得。
快樂設計!