版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
“單片機原理與應用”試卷(A)參考答案一、簡答題。(每小題4分,共24分)1.嵌入式硬件主要包括哪幾部分?【答案】嵌入式硬件(硬件層)是嵌入式系統(tǒng)的物理基礎,主要包括嵌入式處理器、存儲器、輸入/輸出(I/O)接口及電源等。2.簡述嵌套向量中斷控制器(NVIC)的主要特性?!敬鸢浮刻幚砥骱说慕涌诰o密相連,可以實現(xiàn)低延遲的中斷處理,并有效地處理晚到的中斷。STM32嵌套向量中斷控制器(NVIC)的主要特性如下:具有43個可屏蔽中斷通道(不包含16個Cortex-M3的中淅線)。具有16個可編程的優(yōu)先等級??蓪崿F(xiàn)低延遲的異常和中斷處理。具有電源管理控制。系統(tǒng)控制寄存器的實現(xiàn)。3.簡述STM32的USART的功能特點?!敬鸢浮縎TM32的USART為通用同步異步收發(fā)器,其可以與使用工業(yè)標準NRZ異步串行數(shù)據(jù)格式的外部設備之間進行全雙工數(shù)據(jù)交換。USART還可以利用分數(shù)波特率發(fā)生器提供寬范圍的波特率選擇。STM32的USART支持同步單向通信和半雙工單線通信。同時,其也支持LIN(局部互連網(wǎng)),智能卡協(xié)議和IrDA(紅外數(shù)據(jù))SIRENDEC規(guī)范,以及調(diào)制解調(diào)器(CTS/RTS)操作。STM32還具備多處理器通信能力。另外,通過多緩沖器配置的DMA方式,還可以實現(xiàn)高速數(shù)據(jù)通信。4.有哪些特征提高了CortexM4的中斷響應性能?【答案】以下特征提高了CortexM4的中斷響應性能:一些寄存器的自動保存和回復;中斷搶占;咬尾技術;遲來技術。5.簡述STM32TIM的計數(shù)器模式?!敬鸢浮縎TM32通用定時器TIM的16位計數(shù)器可以采用三種方式工作,分別為向上計數(shù)模式、向下計數(shù)模式和中央對齊模式(向上/向下計數(shù))。6.CAN的數(shù)據(jù)幀由哪7個段構成?【答案】數(shù)據(jù)幀由7個段構成:(1)幀起始:表示數(shù)據(jù)幀開始的段;(2)仲裁段:表示數(shù)據(jù)幀優(yōu)先級的段;(3)控制段:表示數(shù)據(jù)的字節(jié)數(shù)及保留的段;(4)數(shù)據(jù)段:數(shù)據(jù)的內(nèi)容,一幀可發(fā)送0~8字節(jié)的數(shù)據(jù);(5)CRC段:檢查幀的傳輸錯誤的段;(6)ACK段:表示確定正常接收的段;(7)幀結(jié)束:表示數(shù)據(jù)幀結(jié)束的段。二、選擇題(每小題3分,共18分)1.通用定時器TIMx的特性(ABCD)。(多選)A.具備16位向上,向下,向上/向下自動裝載計數(shù)器。B.具備16位可編程預分頻器。C.具備4個獨立通道。D.可以通過事件產(chǎn)生中斷,中斷類型豐富,具備DMA功能。2.通用定時器TIMx的特殊工作模式包括(ABCD)。(多選)A.輸入捕獲模式B.PWM輸入模式C.輸出模式D.單脈沖模式(OPM)3.STM32提供了三種不同的時鐘源,其都可被用來驅(qū)動系統(tǒng)時鐘SYSCLK,這三種時鐘源分別為(ABC)。A.HSI振蕩器時鐘B.HSE振蕩器時鐘C.PLL時鐘D.HLI振蕩時鐘4.在STM32中,當(AB)生時,將產(chǎn)生電源復位。(多選)A.從待機模式中返回B.上電/掉電復位(POR/PDR復位)C.NRST管腳上的低電平D.PLL5.STM32的外部中斷/事件控制器(EXTI)支持(C)個中斷/事件請求。A.16B.43C.19D.366.在ADC的掃描模式中,如果設置了DMA位,在每次EOC后,DMA控制器把規(guī)則組通道的轉(zhuǎn)換數(shù)據(jù)傳輸?shù)剑ˋ)中。A.SRAMB.FlashC.ADC_JDRx寄存器D.ADC_CR1三、【答案】電路圖如下:程序代碼:#include"stm32f10x.h"intT2_cnt=0;voidRCC_init(void){RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2,ENABLE);RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOE,ENABLE);}voidNVIC_init(void){NVIC_PriorityGroupConfig(NVIC_PriorityGroup_0);NVIC_InitStruct.NVIC_IRQChannel=TIM2_IRQn;NVIC_InitStruct.NVIC_IRQChannelCmd=ENABLE;NVIC_InitStruct.NVIC_IRQChannelPreemptionPriority=0;NVIC_InitStruct.NVIC_IRQChannelSubPriority=0;NVIC_Init(&NVIC_InitStruct);}voidGPIO_init(void){GPIO_InitTypeDefGPIO_InitStructure;GPIO_InitStructure.GPIO_Pin=GPIO_Pin_6|GPIO_Pin_7;GPIO_InitStructure.GPIO_Mode=GPIO_Mode_OUT;GPIO_InitStructure.GPIO_OType=GPIO_OType_PP;GPIO_InitStructure.GPIO_Speed=GPIO_Speed_100MHz;GPIO_Init(GPIOE,&GPIO_InitStructure);}voidTIM2_init(void){TIM_TimeBaseInitTypeDefTIM_TimeBaseStructure;TIM_TimeBaseStructure.TIM_Period=10000;//0.01sTIM_TimeBaseStructure.TIM_Prescaler=72-1;TIM_TimeBaseStructure.TIM_CounterMode=TIM_CounterMode_Up;TIM_TimeBaseInit(TIM2,&TIM_TimeBaseStructure);TIM_ITConfig(TIM2,TIM_IT_Update,ENABLE);TIM_Cmd(TIM2,ENABLE);}intmain(void){ RCC_init(); NVIC_init(); TIM2_init(); GPIO_init(); while(1) { if(T2_cnt<=50)GPIO_ResetBits(GPIOE,GPIO_Pin_6|GPIO_Pin_7); elseif(T2_cnt>50&&T2_cnt<=60)GPIO_SetBits(GPIOE,GPIO_Pin_7); elseif(T2_cnt>60)GPIO_SetBits(GPIOE,GPIO_Pin_6|GPIO_Pin_7);}}voidTIM2_IRQHandler(void){if(TIM_GetITStatus(TIM2,TIM_IT_Update)==SET) { T2_cnt++; if(T2_cnt>=70) T2_cnt=0; TIM_ClearITPendingBit(TIM2,TIM_FLAG_Update); }}四、【答案】假設采集到的ADC值為整數(shù),可以使用查表的方法得到具體的溫度值。使用模擬量輸入通道1進行模擬量的輸入,使用定時器2得到10ms的定時。程序代碼如下:#include"stm32f10x.h"unsignedintcodeADCValueToTemp[100]= {248, 262, 277, 293, 310, 327, 345, 364, 384, 404,425, 447, 470, 494, 518, 543, 570, 597, 624, 653,683, 713, 744, 776, 809, 842, 877, 912, 948, 984,1022,1060,1098,1137,1177,1217,1258,1299,1341,1383,1425,1468,1511,1554, 1598,1641,1685,1729,1772,1816,1860,1903,1946,1990,2033, 2075,2117,2159,2201,2243,2283,2324,2364,2403,2442,2481, 2519,2556,2593,2629,2664,2699,2734,2767, 2800,2833,2864,2895,2926, 2956,2985,3013,3041,3069,3095,3121,3147,3172,3195, 3219,3242,3265,3286,3308,3328,3348,3368,3388,3406,3424,};voidTIM2_init(void);unsignedcharGetTemperature(void);UART_HandleTypeDefhuart1;TIM_HandleTypeDefhtim2;ADC_HandleTypeDefhadc1;voidUSART1_Config(void){RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1,ENABLE);GPIO_InitTypeDefGPIO_InitStructure;USART_InitTypeDefUSART_InitStructure;GPIO_InitStructure.GPIO_Pin=GPIO_Pin_9;GPIO_InitStructure.GPIO_Mode=GPIO_Mode_AF_PP;GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;GPIO_Init(GPIOA,&GPIO_InitStructure);GPIO_InitStructure.GPIO_Pin=GPIO_Pin_10;GPIO_InitStructure.GPIO_Mode=GPIO_Mode_IN_FLOATING;GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;GPIO_Init(GPIOA,&GPIO_InitStructure); USART_InitStructure.USART_BaudRate=9600;USART_InitStructure.USART_WordLength=USART_WordLength_8b;USART_InitStructure.USART_StopBits=USART_StopBits_1;USART_InitStructure.USART_Parity=USART_Parity_No;USART_InitStructure.USART_HardwareFlowControl=USART_HardwareFlowControl_None;USART_InitStructure.USART_Mode=USART_Mode_Rx|USART_Mode_Tx;USART_Init(USART1,&USART_InitStructure);}intmain(void){ADC_InitTypeDefADC_InitStructure;GPIO_InitTypeDefGPIO_InitStructure;ADC_CommonInitTypeDefADC_CommonInitStructure;u16dat;USART1_Config();//enableADCchannel1clockRCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOA,ENABLE);RCC_APB2PeriphClockCmd(RCC_APB2Periph_ADC1,ENABLE);//initializeADCADC_CommonInitStructure.ADC_Mode=ADC_Mode_Independent;ADC_CommonInitStructure.ADC_Prescaler=ADC_Prescaler_Div6;ADC_CommonInit(&ADC_CommonInitStructure);GPIO_InitStructure.GPIO_Pin=GPIO_Pin_1;GPIO_InitStructure.GPIO_Mode=GPIO_Mode_AIN;GPIO_Init(GPIOA,&GPIO_InitStructure);ADC_InitStructure.ADC_ScanConvMode=DISABLE;ADC_InitStructure.ADC_ContinuousConvMode=DISABLE;ADC_InitStructure.ADC_ExternalTrigConv=ADC_ExternalTrigConv_None;ADC_InitStructure.ADC_DataAlign=ADC_DataAlign_Right;ADC_InitStructure.ADC_NbrOfChannel=1;ADC_Init(ADC1,&ADC_InitStructure);ADC_RegularChannelConfig(ADC1,ADC_Channel_1,1,ADC_SampleTime_239Cycles5);ADC_ResetCalibration(ADC1);while(ADC_GetResetCalibrationStatus(ADC1));ADC_StartCalibration(ADC1);while(ADC_GetCalibrationStatus(ADC1));ADC_Cmd(ADC1,ENABLE);while(1);}voidTIM2_init(void){TIM_TimeBaseInitTypeDefTIM_TimeBaseStructure;TIM_DeInit(TIM2);TIM_TimeBaseStructure.TIM_Period=10000;//0.01sTIM_TimeBaseStructure.TIM_Prescaler=72-1;TIM_TimeBaseStructure.TIM_CounterMode=TIM_CounterMode_Up;TIM_TimeBaseInit(TIM2,&TIM_TimeBaseStructure);TIM_ITConfig(TIM2,TIM_IT_Update,ENABLE);TIM_Cmd(TIM2,ENABLE);}voidTIM2_IRQHandler(void){ staticunsignedcharT2_cnt=0;unsignedcharsend_temp; if(TIM_GetITStatus(TIM2,TIM_IT_Update)==SET) { T2_cnt++; if(T2_cnt>=100){ T2_cnt=0; send_temp=GetTemperature();USART_SendData(USART1,(uint8_t*)&send_temp); } TIM_ClearITPendingBit(TIM2,TIM_FLAG_Up
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度采石場礦山地質(zhì)環(huán)境監(jiān)測與評估合同模板3篇
- 二零二五年度酒吧代駕業(yè)務承包管理合同4篇
- 二零二四年兒童看護與教育一體化服務協(xié)議3篇
- 個人股東簽訂入股合同
- 物業(yè)管理服務2025年度質(zhì)量監(jiān)控合同3篇
- 二零二五年度河道整治工程土方工程承包合同3篇
- 超詳細(2025版)智能電網(wǎng)建設合同(上)2篇
- 2025年度車輛轉(zhuǎn)讓附帶二手車交易手續(xù)費減免協(xié)議4篇
- 2025年度城市綜合體項目開發(fā)合作協(xié)議模板4篇
- 二零二五年度水電安裝工程合同條款解釋與適用合同樣本4篇
- 企業(yè)內(nèi)部客供物料管理辦法
- 婦科臨床葡萄胎課件
- 藥學技能競賽標準答案與評分細則處方
- 2025屆高考英語 716個閱讀理解高頻詞清單
- 報建協(xié)議書模板
- 汽車配件購銷合同范文
- 貴州省2024年中考英語真題(含答案)
- 施工項目平移合同范本
- (高清版)JTGT 3360-01-2018 公路橋梁抗風設計規(guī)范
- 胰島素注射的護理
- 云南省普通高中學生綜合素質(zhì)評價-基本素質(zhì)評價表
評論
0/150
提交評論