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