![嵌入式系統(tǒng)設(shè)計(jì)(基于STM32F4)徐靈飛習(xí)題解答第五章_第1頁(yè)](http://file4.renrendoc.com/view/b1e18e416eff34e6bc1d9a638485b1d1/b1e18e416eff34e6bc1d9a638485b1d11.gif)
![嵌入式系統(tǒng)設(shè)計(jì)(基于STM32F4)徐靈飛習(xí)題解答第五章_第2頁(yè)](http://file4.renrendoc.com/view/b1e18e416eff34e6bc1d9a638485b1d1/b1e18e416eff34e6bc1d9a638485b1d12.gif)
![嵌入式系統(tǒng)設(shè)計(jì)(基于STM32F4)徐靈飛習(xí)題解答第五章_第3頁(yè)](http://file4.renrendoc.com/view/b1e18e416eff34e6bc1d9a638485b1d1/b1e18e416eff34e6bc1d9a638485b1d13.gif)
![嵌入式系統(tǒng)設(shè)計(jì)(基于STM32F4)徐靈飛習(xí)題解答第五章_第4頁(yè)](http://file4.renrendoc.com/view/b1e18e416eff34e6bc1d9a638485b1d1/b1e18e416eff34e6bc1d9a638485b1d14.gif)
![嵌入式系統(tǒng)設(shè)計(jì)(基于STM32F4)徐靈飛習(xí)題解答第五章_第5頁(yè)](http://file4.renrendoc.com/view/b1e18e416eff34e6bc1d9a638485b1d1/b1e18e416eff34e6bc1d9a638485b1d15.gif)
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
《嵌入式系統(tǒng)設(shè)計(jì)(基于STM32F425章課后題參考答案GPIO答:輸入浮空模式。輸入上拉模式。輸入下拉模式。模擬功能模式。具有上拉/下拉功能的開漏輸出模式。具有上拉/下拉功能的推挽輸出模式。具有上拉/下拉功能的復(fù)用功能推挽模式。具有上拉/下拉功能的復(fù)用功能開漏模式。STM32F429GPIO端口有16個(gè)引腳。當(dāng)引腳被配置為模擬功能模式時(shí),上拉/下拉功能應(yīng)被__。當(dāng)引腳被配置為輸出模式,而輸出類型被配置為開漏時(shí),引腳要輸出高電平,需要使能引腳拉功能 。控制引腳輸出電平時(shí),需要操作ODR 寄存器;獲取引腳狀態(tài)需要操作IDR 寄存器。stm32f429的庫(kù)函數(shù)中,使能GPIOA時(shí)鐘,使用的庫(kù)函數(shù)是RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOA,ENABLE)。stm32f429GPIO功能,使用的庫(kù)函數(shù)是voidGPIO_Init(GPIO_TypeDef*GPIOx,GPIO_InitTypeDef*GPIO_InitStruct)。GPIO12GPIO_InitTypeDefGPIO_Pin的值是GPIO_Pin_1|GPIO_Pin_2 。9.在stm32f429的庫(kù)函數(shù)中,讀取某個(gè)特定GPIO引腳狀態(tài),使用的庫(kù)函數(shù)是uint8_tGPIO_ReadInputDataBit(GPIO_TypeDef*GPIOx,uint16_tGPIO_Pin)。.在stm32f429的庫(kù)函數(shù)中,設(shè)定某些特定GPIO引腳輸出狀態(tài),使用的庫(kù)函數(shù)是GPIO_SetBits(GPIO_TypeDef*GPIOx,uint16_tGPIO_Pin)voidGPIO_ResetBits(GPIO_TypeDef*uint16_tGPIO_Pin)。答:PMOSNMOSODR寄存器中對(duì)應(yīng)位寫時(shí),NMOS管截止,PMOSODR寄存器中對(duì)應(yīng)位寫‘0’時(shí),NMOSPMOS管截止,引腳輸出低電平。NMOSODR‘1’ODR寄存器中對(duì)應(yīng)位寫‘0’時(shí),NMOS通,PMOS管截止,引腳輸出低電平。5V答:不具備耐5V功能。此時(shí),引腳輸入通道和數(shù)字電路隔離,處于模擬電路狀態(tài)答:GPIO的時(shí)鐘(非常重要,涉及以下文件。GPIO工作模式。GPIO引腳的復(fù)用功能。在應(yīng)用程序中讀取引腳狀態(tài)、控制引腳輸出狀態(tài)或使用復(fù)用功能完成特定功能。編寫程序,將GPIOD13579號(hào)引腳配置為推挽輸出模式,速度為0、246號(hào)、8號(hào)引腳配置為上拉輸入模式。答:GPIO_InitTypeDefGPIO_InitStructure;RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOD,ENABLE);GPIO_InitStructure.GPIO_Pin=GPIO_Pin_1|GPIO_Pin_3|GPIO_Pin_5|GPIO_Pin_7|GPIO_Pin_9;GPIO_InitStructure.GPIO_Mode=GPIO_Mode_OUT;GPIO_InitStructure.GPIO_OType=GPIO_OType_PP;GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;GPIO_Init(GPIOD,&GPIO_InitStructure);GPIO_InitStructure.GPIO_Pin=GPIO_Pin_0|GPIO_Pin_2|GPIO_Pin_4|GPIO_Pin_6|GPIO_Pin_8;GPIO_InitStructure.GPIO_Mode=GPIO_Mode_IN;GPIO_InitStructure.GPIO_PuPd=GPIO_PuPd_UP;GPIO_Init(GPIOD,&GPIO_InitStructure);GPIOD1號(hào)、5號(hào)、7號(hào)引腳輸出高電平,3號(hào)、926號(hào)、8號(hào)上的狀態(tài)讀到處理器中。答:unsignedshortinta,b,c;GPIO_SetBits(GPIOD,GPIO_Pin_1|GPIO_Pin_5|GPIO_Pin_7)GPIO_ResetBits(GPIOD,GPIO_Pin_3|GPIO_Pin_9);a=GPIO_ReadInputDataBit(GPIOD,GPIO_Pin_2);b=GPIO_ReadInputDataBit(GPIOD,GPIO_Pin_6)c=GPIO_ReadInputDataBit(GPIOD,GPIO_Pin_8);STM32F429IGT6GPIOE5GPIOB2LED5-16所示。5-1616請(qǐng)編寫程序?qū)崿F(xiàn)按鍵動(dòng)作的檢測(cè),編寫以下程序。主程序。LED引腳的初始化程序。按鍵檢測(cè)程序。voiddelay_ms(u16nms);答:#defineKEY_ON 1#defineKEY_OFF 0(1)intmain(void){delay_init(168);//初始化延時(shí)函數(shù)LED_GPIO_Config();Key_GPIO_Config();while(1){if(Key_Scan(GPIOE,GPIO_Pin_5)==KEY_ON){GPIO_ToggleBits(GPIOB,GPIO_Pin_2);}}}(2)voidKey_GPIO_Config(void){GPIO_InitTypeDefGPIO_InitStructure;RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOE,ENABLE);GPIO_InitStructure.GPIO_Pin=GPIO_Pin_5;GPIO_InitStructure.GPIO_Mode=GPIO_Mode_IN;GPIO_InitStructure.GPIO_PuPd=GPIO_PuPd_NOPULL;GPIO_Init(GPIOE,&GPIO_InitStructure);}voidLED_GPIO_Config(void){}(3)
GPIO_InitTypeDefGPIO_InitStructure;RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOB,ENABLE);GPIO_InitStructure.GPIO_Pin=GPIO_Pin_2GPIO_InitStructure.GPIO_Mode=GPIO_Mode_OUT;GPIO_InitStructure.GPIO_OType=GPIO_OType_PP;GPIO_InitStructure.GPIO_PuPd=GPIO_PuPd_UP;GPIO_InitStructure.GPIO_Speed=GPIO_Speed_2MHz;GPIO_Init(GPIOB,&GPIO_InitStructure);uint8_tKey_Scan(GPIO_TypeDef*GPIOx,uint16_tGPIO_Pin){if(GPIO_ReadInputDataBit(GPIOx,GPIO_Pin)==KEY_ON){delay_ms(100);//去抖動(dòng)if(GPIO_ReadInputDataBit(GPIOx,GPIO_Pin)==KEY_ON)return KEY_ON;}else
else
returnKEY_OFF;returnKEY_OFF;}5-17所示。矩陣按鍵掃描原理和流程圖。S1~S4引腳初始化程序和按鍵控制程序。圖5-17題17電路圖答:(1)開始①將列線設(shè)置為輸出模式(圖中PB0和PB1,并分別在PB0和PB1設(shè)置為輸入模式(圖中PB2和PB3。都使能上拉。②讀取PB2和PB3狀態(tài),判斷是否有按鍵按下。(判斷原則:PB2PB3都是高電平時(shí),沒有按鍵按下。PB2和PB3低電平是,有按鍵按下。判斷原理:在沒有按鍵按下去的時(shí)候,由于上拉電阻的存在,PB2PB3都是高電平,讀取狀態(tài)時(shí),PB2=1,PB3=1。如果有按鍵按下去的話,摸一個(gè)行線和列線連接在一起。由于PB0PB1PB2PB3狀態(tài)時(shí),就不會(huì)全是高電平。S1時(shí),PB1PB2連在一起,PB2被PB1PB2PB3狀態(tài)時(shí),PB2=0,PB3=1)有按鍵按下則繼續(xù)③,反之則結(jié)束。③延時(shí)去抖動(dòng)。典型值是延時(shí)10ms,不同的按鍵類型,時(shí)間長(zhǎng)度不一樣。④在此判斷是否有按鍵按下,原理同步驟②②④都判斷有按鍵按下時(shí),繼續(xù)⑤。反之則結(jié)束。PB2PB3的狀態(tài),作為判別行號(hào)的依據(jù)。⑥將行線設(shè)置為輸出模式(圖中PB2和PB3,并分別在PB2和PB3設(shè)置為輸入模式(圖中PB0和PB1。都使能上拉。⑦讀取PB0和PB1的狀態(tài),并保存。作為判別列線的依據(jù)。結(jié)束開始①開始①設(shè)置列為輸出低電平,行為輸入模式N②(第1次判斷)Y③延時(shí)10ms④N(第2次判斷)Y⑤保存行號(hào)⑥設(shè)置行為輸出低電平,列為輸入⑦將鍵盤值讀進(jìn)來(lái),存起來(lái)(列號(hào))⑧根據(jù)兩次讀到的行號(hào)和列號(hào)判斷是哪一個(gè)按鍵結(jié)束(2)/*將列設(shè)置為輸入,行設(shè)置為輸出*/voidGPIO_LieIN_HangOUT(void){GPIO_InitTypeDefGPIO_InitStructure;RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOB,ENABLE);GPIO_InitStructure.GPIO_Pin=GPIO_Pin_2|GPIO_Pin_3;GPIO_InitStructure.GPIO_Mode=GPIO_Mode_OUT;GPIO_InitStructure.GPIO_OType=GPIO_OType_OD;GPIO_InitStructure.GPIO_PuPd=GPIO_PuPd_UP;GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;GPIO_Init(GPIOB,&GPIO_InitStructure);GPIO_InitStructure.GPIO_Pin=GPIO_Pin_0|GPIO_Pin_1;GPIO_InitStructure.GPIO_Mode=GPIO_Mode_IN;GPIO_InitStructure.GPIO_PuPd=GPIO_PuPd_UP;GPIO_Init(GPIOB,&GPIO_InitStructure);}/*將列設(shè)置為輸出,行設(shè)置為輸入*/voidGPIO_LieOUT_HangIN(void){GPIO_InitTypeDefGPIO_InitStructure;RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOB,ENABLE);GPIO_InitStructure.GPIO_Pin=GPIO_Pin_0|GPIO_Pin_1|;GPIO_InitStructure.GPIO_Mode=GPIO_Mode_OUT;GPIO_InitStructure.GPIO_OType=GPIO_OType_OD;GPIO_InitStructure.GPIO_PuPd=GPIO_PuPd_UP;GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;GPIO_Init(GPIOB,&GPIO_InitStructure);GPIO_InitStructure.GPIO_Pin=GPIO_Pin_2|GPIO_Pin_3;GPIO_InitStructure.GPIO_Mode=GPIO_Mode_IN;GPIO_InitStructure.GPIO_PuPd=GPIO_PuPd_UP;GPIO_Init(GPIOB,&GPIO_InitStructure);}voidKEY_SCAN(void){u8Lie_Data,Hang_Data;GPIO_LieOUT_HangIN();GPIO_ResetBits(GPIOB,GPIO_Pin_0|GPIO_Pin_1);//將列設(shè)置為低電平,掃描行if((GPIO_ReadInputData(GPIOB)&0x0a)!=0x0a){delay_ms(100);//去抖動(dòng)if((GPIO_ReadInputData(GPIOB)&0x0a)!=0x0a){Hang_Data=GPIO_ReadInputData(GPIOB)&0x0a;//保存行掃描結(jié)果GPIO_LieIN_HangOUT();GPI
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- LY/T 2005-2024國(guó)家級(jí)森林公園總體規(guī)劃規(guī)范
- 蘇人版道德與法治九年級(jí)上冊(cè)7.1《一般違法與犯罪》聽課評(píng)課記錄
- 浙教版數(shù)學(xué)七年級(jí)上冊(cè)《6.3 線段的大小比較》聽評(píng)課記錄1
- 瑜伽健康活動(dòng)贊助合同(2篇)
- 生態(tài)修復(fù)工程招標(biāo)合同(2篇)
- 甲方因乙方責(zé)任解除合同范本(2篇)
- 2022年新課標(biāo)八年級(jí)上冊(cè)歷史第19課七七事變與全民族抗戰(zhàn)聽課評(píng)課記錄
- 人教版地理七年級(jí)下冊(cè)《8.4澳大利亞》聽課評(píng)課記錄
- 浙教版數(shù)學(xué)七年級(jí)下冊(cè)《2.4 二元一次方程組的簡(jiǎn)單應(yīng)用》聽評(píng)課記錄2
- 人教版數(shù)學(xué)八年級(jí)下冊(cè)《19.3 課題學(xué)習(xí)-選擇方案》聽評(píng)課記錄
- 七上 U2 過(guò)關(guān)單 (答案版)
- 五年級(jí)上冊(cè)小數(shù)遞等式計(jì)算200道及答案
- 超高大截面框架柱成型質(zhì)量控制
- GB 9706.1-2020醫(yī)用電氣設(shè)備第1部分:基本安全和基本性能的通用要求
- 森林法講解課件
- 口腔頜面外科:第十六章-功能性外科與計(jì)算機(jī)輔助外科課件
- 信用證審核課件
- 植物工廠,設(shè)計(jì)方案(精華)
- 原發(fā)性膽汁性肝硬化(PBC)課件
- 貸款新人電銷話術(shù)表
- 音箱可靠性測(cè)試規(guī)范
評(píng)論
0/150
提交評(píng)論