单片机面试知识点汇总
GPIO
輸入模式:
1. 浮空輸入:對I/O口當前電平進行輸入,通常用于讀取I/O口輸入,輸入狀態是不確定的。
2. 上拉輸入:對I/O口置高電平輸入。
3. 下拉輸入:對I/O口置低電平輸入,上拉和下拉電阻經常用于在不確定GPIO輸入時確定狀態。
4. 模擬輸入:和另外三種輸入方式不同,模擬輸入的是模擬信號,一般用于AD轉換。
輸出模式:(值得注意的是,輸出模式的輸出結果可以用輸入模式讀取。)
1. 開漏輸出:寫入口與CPU相連。寫入1時輸出由外部上拉或下拉電阻決定電平;寫入0時N-MOS管導通,電壓為VSS,輸出電平為低電平。
2. 復用開漏輸出:與開漏輸出模式類似,但寫入口不與CPU相連而是和片上的外設模塊相連。
3. 推挽輸出:寫入口與CPU相連。寫入1時P-MOS管導通,N-MOS管截止,輸出高電平;寫入0時P-MOS管截止,N-MOS管導通,輸出低電平。
4. 復用推挽輸出:與推挽輸出模式類似,但寫入口不與CPU相連而是和片上的外設模塊相連。
推挽輸出和開漏輸出的區別:
推挽輸出:可以輸出強高低電平(VSS和VDD),連接數字器件。
開漏輸出:只能輸出強低電平(VSS),高電平需要靠外部上拉電阻。輸出相當于三極管集電極,電流吸收能力較好(20mA以內),適合做電流型的驅動。
中斷
什么是中斷?
? 1)中斷請求:
? 2)中斷響應:
? 3)現場保護:
? 4)中斷處理:
? 5)恢復現場:
? 6)中斷返回:
中斷的觸發方式有哪些?
沿觸發: 這是很最常見的觸發方式,我們可以用數字電路的方法來解釋它的特性。邊觸發應該應觸發器來描述: ?輸入引腳(當作觸發器的CLK) ----> 觸發器------> 中斷控制器 ,當輸入引腳的相應的沿到來時,就會將觸發器置1,并觸發中斷,觸發器會一直保持電平1除非在ISR中用一條語句清0,否則會不斷的觸發中斷,這也就是每次觸發中斷都要清0的原因。當有高優先級的中斷運行后退出時,處理器檢測到觸發器的值為1,所以依然會進入中斷服務程序。
?電平觸發: 有的時候,邊沿觸發很容易產生毛刺并導致誤中斷,這時候就要使用電平觸發,電平觸發是持續觸發,可以用數字電路的緩沖器來描述
哪些函數不能在中斷中使用?
printf,malloc,free
什么叫不可重入函數?
中斷與異常有何區別?
中斷的響應執行流程是什么?
寫一個中斷服務需要注意哪些?
1、中斷服務子程序設計原則是要快進快出,printf的實現會一直調用到底層逐個字節的打印輸出,
這種IO操作效率很慢,不適合放到中斷里面。如果有鎖機制,可能會造成死鎖。
中斷和輪詢哪個效率高?怎樣決定是采用中斷方式還是采用輪詢方式去實現驅動?
中斷是CPU處于被動狀態下來接受設備的信號,而輪詢是CPU主動去查詢該設備是否有請求。凡事都是兩面性,所以,看效率所以,看效率不能簡單的說那個效率高。如果是請求設備是一個頻繁請求cpu的設備,或者有大量數據請求的網絡設備,那么輪詢的效率是比中斷高。如果是一般設備,并且該設備請求cpu的頻率比較底,則用中斷效率要高一些。主要是看請求頻率。
中斷優先級有哪些?
一種是搶占優先級,一種是固有優先級
單片機這種沒有操作系統的,中斷處理函數不能有輸入參數也不能有函數返回
定時器
通信協議
什么是異步傳輸和同步傳輸?
異步傳輸是面向字符的傳輸,而同步傳輸是面向比特的傳輸。
UART、IIC、SPI對比的優缺點?
SPI IIC UART三種通信方式的比較
? ? ? (1)UART(Universal Asynchronous Receive Transmitter):也就是我們經常所說的串口,基本都用于調試。
? ? ? ? ? ? ? ?主機和從機之間采用三根線,RX,TX,GND。TX是用來發送數據,RX是用來接收數據,這個過程中,收和發不是同一根線,所以它是全雙工進行通信,GND 是地線;
? ? ? ?(2)IIC(Inter Integrated Circuit):
? ? ? ? ? ? ? ? 它的通信只需要兩根數據線,一個時鐘線SCL和一個數據線SDA。只有一根數據線,所以是半雙工通信,兩條線上可以掛載許多設備(不同的設備會有不同的IIC地址)
? ? ? ?(3)SPI(Serial Peripheral Interface, 同步外設接口):
? ? ? ? ? ? ? ? 是摩托羅拉開發的全雙工同步串行總線,該總線大量在EEPROM,ADC,FRAM和顯示驅動器之類的外設器件通信(通信速度比較慢);
? ? ? ? ? ? ? ? SPI是一種串行同步通訊協議,由一個主設備和一個或多個從設備組成,主設備啟動一個與從設備的同步通訊,從而完成數據的交換。SPI 接口由SDI(串行數據輸入),SDO(串行數據輸出),SCK(串行移位時鐘),CS(從使能信號)四種信號構成,CS 決定了唯一的與主設備通信的從設備,片選信號低電平有效。如沒有CS 信號,則只能存在一個從設備,主設備通過產生移位時鐘來發起通訊。通訊時,數據由SDO 輸出,SDI 輸入,數據在時鐘的上升或下降沿由SDO 輸出,在緊接著的下降或上升沿由SDI 讀入,這樣經過8/16 次時鐘的改變,完成8/16 位數據的傳輸。
UART串口
usart和uart的區別?
首先從名字上看:
UART:universal asynchronous receiver and transmitter通用異步收/發器
USART:universal synchronous asynchronous receiver and transmitter通用同步/異步收/發器
從名字上可以看出,USART在UART基礎上增加了同步功能,即USART是UART的增強型,事實也確實是這樣。但是具體增強到了什么地方呢?
其實當我們使用USART在異步通信的時候,它與UART沒有什么區別,但是用在同步通信的時候,區別就很明顯了:大家都知道同步通信需要時鐘來觸發數據傳輸,也就是說USART相對UART的區別之一就是能提供主動時鐘。如STM32的USART可以提供時鐘支持ISO7816的智能卡接口。 USART支持流控制
在s3c2440中看到的是uart,而在一般新的芯片手冊中看到的都是usart,雖然在以前也都看到過,原本以為這倆其實是相同的,以為只是不同芯片采用不同的名稱而已,其實不然,uart全名叫通用異步收發傳輸器,在uart上追加同步方式的序列信號變換電路則稱之為usart
UART 是一種通用串行數據總線,用于異步通信,全雙工,
與UART的區別是USART具有發送部分有外部時鐘輸入驅動和波特率發生器,發送器有一個單獨的寫入緩沖器(發送UDR),一個串行移位寄存器、校驗位發生器和用于處理不同幀結構的控制邏輯電路構成。使用寫入緩沖器,實現了連續發送多幀數據無延遲的通信。其實USART是UART的增強型,只是比UART多了個同步功能,擁有獨立的時鐘驅動器,可以實現無延遲的數據傳輸。
uart優缺點?
優點
通信只需要兩條數據線;
無需時鐘信號;
有奇偶校驗位,方便通信的差錯檢查;
只需要接收端和發送端設置好數據包結構,即可穩定通信;
缺點
數據幀最大支持9位數據;
不支持多主機或多從機的主從系統;
要配置什么參數?
時序?
傳輸速率?
RX為什么要上拉?
RX為什么要上拉?原因分析,是因為RX不上拉,懸空的話,電路的某些信號影響(比如射頻,大功率器件),就容易誤觸發,進入接收中斷。改成上拉就可以解決。
怎么傳輸浮點數?
串口如何接收不定長數據?
第一種:使用中斷方式? 第二種使用自定義結束符
軟件怎么實現自動波特率檢測?
IIC
SPI
其他接口
DMA
ADC
存儲
其他問題
STCR51
STM32
DSP430:
1、MSP430系列單片機是美國德州儀器(TI)1996年開始推向市場的一種16 位超低功耗的混合信號處理器(Mixed Signal Processor)
。稱之為混合信號處理器,主要是由于其針對實際應用需求,把許多模擬電路、數字電路和微處理器集成在一個芯片上,以提供“單片”解決方案。
2、MSP430是16位單片機,51是8位單片機
3、MSP430采用RISC精簡指令集,單個時鐘周期就可以執行一條指令,相同晶振,速度較51快12倍。
4、其它片上資源也是MSP較豐富。
Arudino:就是一個很方便的集成開發環境,有著各種各樣的庫,擁有很不錯的生態,屏蔽掉了很多底層代碼,不用再去頭疼GPIO怎么配,
各種設備怎么初始化,讓開發者專注于軟件上的開發。
?
?
總結
以上是生活随笔為你收集整理的单片机面试知识点汇总的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 湖南自考计算机及应用,湖南2010年自考
- 下一篇: 400G交换机技术前景和主流产品