嵌入式單片機(jī) 面經(jīng)
3.I/O接口(17道)
3.1 GPIO 口一般有哪三個(gè)寄存器?
以S3C2410為例,有控制寄存器、 數(shù)據(jù) 寄存器、上拉寄存器。
3.2 GPIO 的輸入輸出模式有哪些?
答案:
(1)輸入模式:浮空輸入、帶上拉輸入、帶下拉輸入、模擬輸入。
(2)輸出模式:開漏輸出、推挽輸出、開漏復(fù)用輸出、推挽復(fù)用輸出。
解讀:
浮空輸入 _IN_FLOATING
浮空輸入,可以做 KEY識(shí)別。
帶上拉輸入 _IPU
IO 內(nèi)部上拉電阻輸入。
帶下拉輸入 _IPD
IO 內(nèi)部下拉電阻輸入。
模擬輸入 _AIN
應(yīng)用 ADC模擬輸入,或者低功耗下省電。
開漏輸出 _OUT_OD
IO 輸出0 接GND ,IO 輸出1 則懸空,需要外接上拉電阻才能輸出高電平。當(dāng)輸出為 1 時(shí),IO 口的狀態(tài)由上拉電阻拉高,但同時(shí)IO 口也可由外部電路拉低,可以通過輸入 數(shù)據(jù) 寄存器讀取電平變化,實(shí)現(xiàn) C51的 IO雙向功能。
推挽輸出 _OUT_PP
IO 輸出0 接GND , IO 輸出1 接 VCC ,讀輸入值是未知的。
復(fù)用功能的推挽輸出 _AF_PP
片內(nèi)外設(shè)功能( I2C的 SCL,SDA)。
復(fù)用功能的開漏輸出 _AF_OD
片內(nèi)外設(shè)功能( TX1,MOSI,MISO.SCK.SS)
3.4 什么是異步串行?什么是同步串行?
(1)異步串行方式的特點(diǎn):
①以字符為單位傳送信息,相鄰兩個(gè)字符間的間隔是任意長;即字符內(nèi)部各位同步,字符間異步;
②因?yàn)橐粋€(gè)字符中的比特位長度有限,所以接收時(shí)鐘和發(fā)送時(shí)鐘只要相近就可以了。
(2)同步串行方式的特點(diǎn):
①以 數(shù)據(jù) 塊為單位傳送信息,在一個(gè) 數(shù)據(jù)塊內(nèi),字符與字符之間無間隔;即字符內(nèi)部各位同步,字符間也同步;
②因?yàn)橐淮蝹鬏數(shù)?nbsp;數(shù)據(jù) 塊中包含的 數(shù)據(jù) 較多,所以接收時(shí)鐘與發(fā)送時(shí)鐘需要嚴(yán)格同步。
3.5 IIC 總線時(shí)序圖?
(1)時(shí)序總結(jié):
總線空閑狀態(tài)
SCL 和SDA 均為高電平,接上拉電阻。
啟動(dòng)信號(hào)( START)
在 SCL保持高電平期間, SDA由高電平被拉低。由主控器發(fā)出。
數(shù)據(jù) 位傳送( DATA)
在 SCL保持高電平期間, SDA上的電平保持穩(wěn)定,低電平為 數(shù)據(jù) 0、高電平為 數(shù)據(jù) 1。用法:主控器和被控器都可發(fā)出。
應(yīng)答信號(hào)( ACK)
在 SCL保持高電平期間, SDA保持低電平。 IIC總線上所有 數(shù)據(jù) 都是以 8位字節(jié)傳送的,發(fā)送器每發(fā)送一個(gè)字節(jié),就在第 9個(gè)時(shí)鐘脈沖期間釋放 SDA(高電平),由接收器反饋一個(gè) ACK。
非應(yīng)答信號(hào)( NACK)
在 SCL保持高電平期間, SDA保持高電平。如果接收器是主控器,則它在收到最后一個(gè)字節(jié)后,發(fā)送一個(gè) NACK,通知被控器結(jié)束 數(shù)據(jù) 發(fā)送,并釋放 SDA(高電平),以便主控器發(fā)送一個(gè) STOP。
停止信號(hào)( STOP)
在 SCL保持高電平時(shí)間, SDA由低電平被釋放(拉高)。由主控器發(fā)出。
(2)寫 數(shù)據(jù) 步驟:
①主機(jī)發(fā)起一個(gè)啟動(dòng)信號(hào)(START)。
②主機(jī)發(fā)送7bit從機(jī)地址+1bit讀寫選擇位,1表示讀、0表示寫。
③從機(jī)產(chǎn)生應(yīng)答信號(hào)(ACK)。
④主機(jī)發(fā)送8bit從機(jī)寄存器地址。
⑤從機(jī)產(chǎn)生應(yīng)答信號(hào)(ACK)。
⑥主機(jī)發(fā)送一個(gè)字節(jié) 數(shù)據(jù) 。
⑦從機(jī)產(chǎn)生應(yīng)答信號(hào)(ACK)。
⑧主機(jī)發(fā)送一個(gè)停止信號(hào)(STOP)。
(3)讀 數(shù)據(jù) 步驟
①主機(jī)發(fā)送一個(gè)啟動(dòng)信號(hào)(START)。
②主機(jī)發(fā)送7bit從機(jī)地址+1bit讀寫選擇位,1表示讀、0表示寫。
③從機(jī)產(chǎn)生一個(gè)應(yīng)答信號(hào)(ACK)。
④主機(jī)發(fā)送8bit從機(jī)寄存器地址。
⑤從機(jī)產(chǎn)生一個(gè)應(yīng)答信號(hào)。
⑥主機(jī)再次發(fā)送一個(gè)啟動(dòng)信號(hào)(START)。
⑦主機(jī)再次發(fā)送7bit從機(jī)地址+1bit讀寫選擇位,1表示讀、0表示寫。
⑧從機(jī)產(chǎn)生一個(gè)應(yīng)答信號(hào)( ACK)。
⑨主機(jī)讀取一個(gè)字節(jié) 數(shù)據(jù) 。
⑩主機(jī)產(chǎn)生一個(gè)非應(yīng)答信號(hào)(NACK)。之后產(chǎn)生一個(gè)停止信號(hào)(STOP)。
以上內(nèi)容摘自??肚度胧綅徫还P試面試真題講解》,該??粌H有真題講解,還有經(jīng)驗(yàn)分享,不清楚嵌入式該學(xué)什么的同學(xué),想找嵌入式實(shí)習(xí)/正式工作的同學(xué),都可以來看看:
https://blog.nowcoder.net/zhuanlan/v0ELPM
公司推薦: 華為 、 小米 、 OPPO、VIVO、榮耀、一加、 CVTE、 大疆 、insta360影石、 美的 、 TCL 、 海信、創(chuàng)維、烽火、 比亞迪 、吉利、長安、大眾、 經(jīng)緯恒潤 、小鵬、 圖森未來、 百度 、 滴滴、蔚來、理想、 聯(lián)發(fā)科、 紫光展銳 、全志、 寒武紀(jì) 、 晶晨半導(dǎo)體 、匯頂、 華為、 中興、 浪潮 、 TP-LINK、訊飛、商湯、 海康威視 、浙江 大華 、360、小馬智行、 元戎啟行 、 深信服 、移動(dòng)、聯(lián)通、電信、 曠視 、 四維圖新 、 中芯國際 、復(fù)旦微電子
ISTlMZgH8JWN6q8stXQnVUJSJ7SO8to8.jpgP9k8O4RtWsFuU0xHNpzN5Fke2T9XsbML.jpg#??虯I配圖神器#
3.1 GPIO 口一般有哪三個(gè)寄存器?
以S3C2410為例,有控制寄存器、 數(shù)據(jù) 寄存器、上拉寄存器。
3.2 GPIO 的輸入輸出模式有哪些?
答案:
(1)輸入模式:浮空輸入、帶上拉輸入、帶下拉輸入、模擬輸入。
(2)輸出模式:開漏輸出、推挽輸出、開漏復(fù)用輸出、推挽復(fù)用輸出。
解讀:
浮空輸入 _IN_FLOATING
浮空輸入,可以做 KEY識(shí)別。
帶上拉輸入 _IPU
IO 內(nèi)部上拉電阻輸入。
帶下拉輸入 _IPD
IO 內(nèi)部下拉電阻輸入。
模擬輸入 _AIN
應(yīng)用 ADC模擬輸入,或者低功耗下省電。
開漏輸出 _OUT_OD
IO 輸出0 接GND ,IO 輸出1 則懸空,需要外接上拉電阻才能輸出高電平。當(dāng)輸出為 1 時(shí),IO 口的狀態(tài)由上拉電阻拉高,但同時(shí)IO 口也可由外部電路拉低,可以通過輸入 數(shù)據(jù) 寄存器讀取電平變化,實(shí)現(xiàn) C51的 IO雙向功能。
推挽輸出 _OUT_PP
IO 輸出0 接GND , IO 輸出1 接 VCC ,讀輸入值是未知的。
復(fù)用功能的推挽輸出 _AF_PP
片內(nèi)外設(shè)功能( I2C的 SCL,SDA)。
復(fù)用功能的開漏輸出 _AF_OD
片內(nèi)外設(shè)功能( TX1,MOSI,MISO.SCK.SS)
3.4 什么是異步串行?什么是同步串行?
(1)異步串行方式的特點(diǎn):
①以字符為單位傳送信息,相鄰兩個(gè)字符間的間隔是任意長;即字符內(nèi)部各位同步,字符間異步;
②因?yàn)橐粋€(gè)字符中的比特位長度有限,所以接收時(shí)鐘和發(fā)送時(shí)鐘只要相近就可以了。
(2)同步串行方式的特點(diǎn):
①以 數(shù)據(jù) 塊為單位傳送信息,在一個(gè) 數(shù)據(jù)塊內(nèi),字符與字符之間無間隔;即字符內(nèi)部各位同步,字符間也同步;
②因?yàn)橐淮蝹鬏數(shù)?nbsp;數(shù)據(jù) 塊中包含的 數(shù)據(jù) 較多,所以接收時(shí)鐘與發(fā)送時(shí)鐘需要嚴(yán)格同步。
3.5 IIC 總線時(shí)序圖?
(1)時(shí)序總結(jié):
總線空閑狀態(tài)
SCL 和SDA 均為高電平,接上拉電阻。
啟動(dòng)信號(hào)( START)
在 SCL保持高電平期間, SDA由高電平被拉低。由主控器發(fā)出。
數(shù)據(jù) 位傳送( DATA)
在 SCL保持高電平期間, SDA上的電平保持穩(wěn)定,低電平為 數(shù)據(jù) 0、高電平為 數(shù)據(jù) 1。用法:主控器和被控器都可發(fā)出。
應(yīng)答信號(hào)( ACK)
在 SCL保持高電平期間, SDA保持低電平。 IIC總線上所有 數(shù)據(jù) 都是以 8位字節(jié)傳送的,發(fā)送器每發(fā)送一個(gè)字節(jié),就在第 9個(gè)時(shí)鐘脈沖期間釋放 SDA(高電平),由接收器反饋一個(gè) ACK。
非應(yīng)答信號(hào)( NACK)
在 SCL保持高電平期間, SDA保持高電平。如果接收器是主控器,則它在收到最后一個(gè)字節(jié)后,發(fā)送一個(gè) NACK,通知被控器結(jié)束 數(shù)據(jù) 發(fā)送,并釋放 SDA(高電平),以便主控器發(fā)送一個(gè) STOP。
停止信號(hào)( STOP)
在 SCL保持高電平時(shí)間, SDA由低電平被釋放(拉高)。由主控器發(fā)出。
(2)寫 數(shù)據(jù) 步驟:
①主機(jī)發(fā)起一個(gè)啟動(dòng)信號(hào)(START)。
②主機(jī)發(fā)送7bit從機(jī)地址+1bit讀寫選擇位,1表示讀、0表示寫。
③從機(jī)產(chǎn)生應(yīng)答信號(hào)(ACK)。
④主機(jī)發(fā)送8bit從機(jī)寄存器地址。
⑤從機(jī)產(chǎn)生應(yīng)答信號(hào)(ACK)。
⑥主機(jī)發(fā)送一個(gè)字節(jié) 數(shù)據(jù) 。
⑦從機(jī)產(chǎn)生應(yīng)答信號(hào)(ACK)。
⑧主機(jī)發(fā)送一個(gè)停止信號(hào)(STOP)。
(3)讀 數(shù)據(jù) 步驟
①主機(jī)發(fā)送一個(gè)啟動(dòng)信號(hào)(START)。
②主機(jī)發(fā)送7bit從機(jī)地址+1bit讀寫選擇位,1表示讀、0表示寫。
③從機(jī)產(chǎn)生一個(gè)應(yīng)答信號(hào)(ACK)。
④主機(jī)發(fā)送8bit從機(jī)寄存器地址。
⑤從機(jī)產(chǎn)生一個(gè)應(yīng)答信號(hào)。
⑥主機(jī)再次發(fā)送一個(gè)啟動(dòng)信號(hào)(START)。
⑦主機(jī)再次發(fā)送7bit從機(jī)地址+1bit讀寫選擇位,1表示讀、0表示寫。
⑧從機(jī)產(chǎn)生一個(gè)應(yīng)答信號(hào)( ACK)。
⑨主機(jī)讀取一個(gè)字節(jié) 數(shù)據(jù) 。
⑩主機(jī)產(chǎn)生一個(gè)非應(yīng)答信號(hào)(NACK)。之后產(chǎn)生一個(gè)停止信號(hào)(STOP)。
以上內(nèi)容摘自??肚度胧綅徫还P試面試真題講解》,該??粌H有真題講解,還有經(jīng)驗(yàn)分享,不清楚嵌入式該學(xué)什么的同學(xué),想找嵌入式實(shí)習(xí)/正式工作的同學(xué),都可以來看看:
https://blog.nowcoder.net/zhuanlan/v0ELPM
公司推薦: 華為 、 小米 、 OPPO、VIVO、榮耀、一加、 CVTE、 大疆 、insta360影石、 美的 、 TCL 、 海信、創(chuàng)維、烽火、 比亞迪 、吉利、長安、大眾、 經(jīng)緯恒潤 、小鵬、 圖森未來、 百度 、 滴滴、蔚來、理想、 聯(lián)發(fā)科、 紫光展銳 、全志、 寒武紀(jì) 、 晶晨半導(dǎo)體 、匯頂、 華為、 中興、 浪潮 、 TP-LINK、訊飛、商湯、 海康威視 、浙江 大華 、360、小馬智行、 元戎啟行 、 深信服 、移動(dòng)、聯(lián)通、電信、 曠視 、 四維圖新 、 中芯國際 、復(fù)旦微電子
ISTlMZgH8JWN6q8stXQnVUJSJ7SO8to8.jpgP9k8O4RtWsFuU0xHNpzN5Fke2T9XsbML.jpg#??虯I配圖神器#
全部評論
相關(guān)推薦
04-27 10:38
蚌埠坦克學(xué)院 嵌入式軟件開發(fā) 點(diǎn)贊 評論 收藏
分享