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