《STM32Cube嵌入式系統(tǒng)應(yīng)用》 標(biāo)準(zhǔn)庫版本 試卷及答案 共3套_第1頁
《STM32Cube嵌入式系統(tǒng)應(yīng)用》 標(biāo)準(zhǔn)庫版本 試卷及答案 共3套_第2頁
《STM32Cube嵌入式系統(tǒng)應(yīng)用》 標(biāo)準(zhǔn)庫版本 試卷及答案 共3套_第3頁
《STM32Cube嵌入式系統(tǒng)應(yīng)用》 標(biāo)準(zhǔn)庫版本 試卷及答案 共3套_第4頁
《STM32Cube嵌入式系統(tǒng)應(yīng)用》 標(biāo)準(zhǔn)庫版本 試卷及答案 共3套_第5頁
已閱讀5頁,還剩27頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

“單片機(jī)原理與應(yīng)用”試卷(A)一、簡答題。(每小題4分,共24分)1.嵌入式硬件主要包括哪幾部分?【答案】嵌入式硬件(硬件層)是嵌入式系統(tǒng)的物理基礎(chǔ),主要包括嵌入式處理器、存儲器、輸入/輸出(I/O)接口及電源等。2.簡述嵌套向量中斷控制器(NVIC)的主要特性?!敬鸢浮刻幚砥骱说慕涌诰o密相連,可以實(shí)現(xiàn)低延遲的中斷處理,并有效地處理晚到的中斷。STM32嵌套向量中斷控制器(NVIC)的主要特性如下:具有43個可屏蔽中斷通道(不包含16個Cortex-M3的中淅線)。具有16個可編程的優(yōu)先等級??蓪?shí)現(xiàn)低延遲的異常和中斷處理。具有電源管理控制。系統(tǒng)控制寄存器的實(shí)現(xiàn)。3.簡述STM32的USART的功能特點(diǎn)?!敬鸢浮縎TM32的USART為通用同步異步收發(fā)器,其可以與使用工業(yè)標(biāo)準(zhǔn)NRZ異步串行數(shù)據(jù)格式的外部設(shè)備之間進(jìn)行全雙工數(shù)據(jù)交換。USART還可以利用分?jǐn)?shù)波特率發(fā)生器提供寬范圍的波特率選擇。STM32的USART支持同步單向通信和半雙工單線通信。同時(shí),其也支持LIN(局部互連網(wǎng)),智能卡協(xié)議和IrDA(紅外數(shù)據(jù))SIRENDEC規(guī)范,以及調(diào)制解調(diào)器(CTS/RTS)操作。STM32還具備多處理器通信能力。另外,通過多緩沖器配置的DMA方式,還可以實(shí)現(xiàn)高速數(shù)據(jù)通信。4.有哪些特征提高了CortexM4的中斷響應(yīng)性能?【答案】以下特征提高了CortexM4的中斷響應(yīng)性能:一些寄存器的自動保存和回復(fù);中斷搶占;咬尾技術(shù);遲來技術(shù)。5.簡述STM32TIM的計(jì)數(shù)器模式?!敬鸢浮縎TM32通用定時(shí)器TIM的16位計(jì)數(shù)器可以采用三種方式工作,分別為向上計(jì)數(shù)模式、向下計(jì)數(shù)模式和中央對齊模式(向上/向下計(jì)數(shù))。6.CAN的數(shù)據(jù)幀由哪7個段構(gòu)成?【答案】數(shù)據(jù)幀由7個段構(gòu)成:(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.通用定時(shí)器TIMx的特性(ABCD)。(多選)A.具備16位向上,向下,向上/向下自動裝載計(jì)數(shù)器。B.具備16位可編程預(yù)分頻器。C.具備4個獨(dú)立通道。D.可以通過事件產(chǎn)生中斷,中斷類型豐富,具備DMA功能。2.通用定時(shí)器TIMx的特殊工作模式包括(ABCD)。(多選)A.輸入捕獲模式B.PWM輸入模式C.輸出模式D.單脈沖模式(OPM)3.STM32提供了三種不同的時(shí)鐘源,其都可被用來驅(qū)動系統(tǒng)時(shí)鐘SYSCLK,這三種時(shí)鐘源分別為(ABC)。A.HSI振蕩器時(shí)鐘B.HSE振蕩器時(shí)鐘C.PLL時(shí)鐘D.HLI振蕩時(shí)鐘4.在STM32中,當(dāng)(AB)生時(shí),將產(chǎn)生電源復(fù)位。(多選)A.從待機(jī)模式中返回B.上電/掉電復(fù)位(POR/PDR復(fù)位)C.NRST管腳上的低電平D.PLL5.STM32的外部中斷/事件控制器(EXTI)支持(C)個中斷/事件請求。A.16B.43C.19D.366.在ADC的掃描模式中,如果設(shè)置了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); }}四、【答案】假設(shè)采集到的ADC值為整數(shù),可以使用查表的方法得到具體的溫度值。使用模擬量輸入通道1進(jìn)行模擬量的輸入,使用定時(shí)器2得到10ms的定時(shí)。程序代碼如下:#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_Update); }}unsignedcharGetTemperature(void){ unsignedchari,j,cur_temp; unsignedintADC_Value,ADC_ValueSum;//ADCvalue,sumoftheADCvalues ADC_ValueSum=0; for(i=0;i<10;i++) {ADC_SoftwareStartConvCmd(ADC1,ENABLE);//StartADCwhile(!ADC_GetFlagStatus(ADC1,ADC_FLAG_EOC));//waittheendofconvertion ADC_Value=ADC_GetConversionValue(ADC1); //gettheADCvalue ADC_ValueSum=ADC_ValueSum+ADC_Value; } ADC_Value=ADC_ValueSum/10; //gettheaveragevalue //lookupthetable for(j=0;j<100;j++) { if((ADC_Value>=ADCValueToTemp[j])&&(ADC_Value<ADCValueToTemp[j+1])) break; }if(j<15) cur_temp=15–j; //negativetemperatur else cur_temp=cur_temp-15;//positivetemperature returncur_temp;}《STM32Cube嵌入式系統(tǒng)應(yīng)用》試卷B-標(biāo)準(zhǔn)庫版本試卷及答案一、簡述題1.簡述STM32的GPIO的一些主要特點(diǎn)(至少5個)?!敬鸢浮恐饕攸c(diǎn)如下:通用I/O,可以作為輸出、輸入等功能。單獨(dú)的位設(shè)置或位清除。外部中斷/喚醒線。復(fù)用功能(AF)和重映射。GPIO鎖定機(jī)制。2.簡述STM32的雙ADC工作模式?!敬鸢浮吭谟袃蓚€ADC的STM32器件中,可以使用雙ADC模式。在雙ADC模式里,根據(jù)ADC_CR1寄存器中DUALMOD[2:0]位所選的模式,轉(zhuǎn)換的啟動可以是ADC1主和ADC2從的交替觸發(fā)或同時(shí)觸發(fā)。雙ADC工作模式主要包括如下幾種:同時(shí)注入模式、同時(shí)規(guī)則模式、快速交替模式、慢速交替模式、交替觸發(fā)模式和獨(dú)立模式。3.簡述STM32時(shí)鐘的類型?!敬鸢浮縎TM32提供了三種不同的時(shí)鐘源,其都可被用來驅(qū)動系統(tǒng)時(shí)鐘SYSCLK,這三種時(shí)鐘源分別為:HSI振蕩器時(shí)鐘、HSE振蕩器時(shí)鐘、PLL時(shí)鐘。4.簡述不同復(fù)用功能的重映射?!敬鸢浮繛榱藘?yōu)化不同引腳封裝的外設(shè)數(shù)目,可以把一些復(fù)用功能重新映射到其他引腳上。這時(shí),復(fù)用功能不再映射到它們原始分配的引腳上。在程序上,是通過設(shè)置復(fù)用重映射和調(diào)試I/O配置寄存器(AFIO_MAPR)來實(shí)現(xiàn)引腳的重新映射。5.STM32CubeMX軟件有什么特點(diǎn)?【答案】(1)集成了ST有限公司的每一款型號的MCU/MPU的可配置的圖形界面,能夠自動提示IO沖突并且對于復(fù)用IO可自動分配。(2)具有動態(tài)驗(yàn)證的時(shí)鐘樹。(3)能夠很方便的使用所集成的中間件。(4)能夠估算MCU/MPU在不同主頻運(yùn)行下的功耗。(5)能夠輸出不同編譯器的工程,比如能夠直接生成MDK、EWARM、STM32CubeIDE、MakeFile等工程。6.MDK-ARM主要包含哪四個核心組成部分?【答案】MDK-ARM主要包含以下四個核心組成部分:1)μVisionIDE:是一個集項(xiàng)目管理器、源代碼編輯器、調(diào)試器于一體的強(qiáng)大集成開發(fā)環(huán)境。2)RVCT:ARM公司提供的編譯工具鏈,包含編譯器、匯編器、鏈接器和相關(guān)工具。3)RL-ARM:實(shí)時(shí)庫,可將其作為工程的庫來使用。4)ULINK/JLINKUSB-JTAG仿真器:用于連接目標(biāo)系統(tǒng)的調(diào)試接口(JTAG或SWD方式),幫助用戶在目標(biāo)硬件上調(diào)試程序。二、選擇題1.哪些是STM32的ADC系統(tǒng)的特點(diǎn)(ABCD)(多選)。A.12-位分辨率B.自校準(zhǔn)C.可編程數(shù)據(jù)對齊D.單次和連續(xù)轉(zhuǎn)換模式2.STM32嵌套向量中斷控制器(NVIC)具有(A)個可編程的優(yōu)先等級。A.16B.43C.72D.363.STM32的USART根據(jù)(A)寄存器M位的狀態(tài),來選擇發(fā)送8位或者9位的數(shù)據(jù)字。A.USART_CR1B.USART_CR2C.USART_BRRD.USART_CR34.通用定時(shí)器TIMx的特性(ABCD)。(多選)A.具備16位向上,向下,向上/向下自動裝載計(jì)數(shù)器。B.具備16位可編程預(yù)分頻器。C.具備4個獨(dú)立通道。D.可以通過事件產(chǎn)生中斷,中斷類型豐富,具備DMA功能。5.STM32的可編程通用定時(shí)器的時(shí)基單元包含(ABC)。(多選)A.計(jì)數(shù)器寄存器(TIMx_CNT)B.預(yù)分頻器寄存器(TIMx_PSC)C.自動裝載寄存器(TIMx_ARR)D.以上都不是6.ARMCortex-M3不可以通過(D)喚醒CPU。A.I/O端口B.RTC鬧鐘C.USB喚醒事件D.PLL三、(20分)【答案】電路圖如下:程序代碼:#include"stm32f10x.h"intTime_Count=0;intRepeat_Count=10;voidRCC_init(void){ RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2,ENABLE); RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOE,ENABLE);}voidNVIC_init(void){ NVIC_InitTypeDefNVIC_InitStructure; NVIC_PriorityGroupConfig(NVIC_PriorityGroup_0); NVIC_InitStructure.NVIC_IRQChannel=TIM2_IRQn; NVIC_InitStructure.NVIC_IRQChannelSubPriority=0; NVIC_InitStructure.NVIC_IRQChannelCmd=ENABLE; NVIC_Init(&NVIC_InitStructure);}voidGPIO_init(void){ GPIO_InitTypeDefGPIO_InitStruct; GPIO_InitStruct.GPIO_Pin=GPIO_Pin_6; GPIO_InitStruct.GPIO_Mode=GPIO_Mode_Out_PP; GPIO_InitStruct.GPIO_Speed=GPIO_Speed_50MHz; GPIO_Init(GPIOE,&GPIO_InitStruct);}voidTIM2_init(void){ TIM_TimeBaseInitTypeDefTIM_TimeBaseStructure; TIM_DeInit(TIM2); TIM_TimeBaseStructure.TIM_Period=10000;//0.01s TIM_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(Repeat_Count>5) { if(Time_Count>=90) GPIO_ResetBits(GPIOE,GPIO_Pin_6); else GPIO_SetBits(GPIOE,GPIO_Pin_6); } else { if(Time_Count>=50) GPIO_ResetBits(GPIOE,GPIO_Pin_6); else GPIO_SetBits(GPIOE,GPIO_Pin_6); } }}voidTIM2_IRQHandler(void){ if(TIM_GetITStatus(TIM2,TIM_IT_Update)==SET) { Time_Count++; if(Time_Count==100) { Time_Count=0; Repeat_Count--; if(Repeat_Count==0) Repeat_Count=10; } TIM_ClearITPendingBit(TIM2,TIM_FLAG_Update); }}四、(30分)【答案】程序代碼如下:#include"stm32f10x.h"http://DeviceheaderunsignedcharHost_String[18]="EXTIPA0Interrupt";inti=0;voidUSART1_Config(void){ GPIO_InitTypeDefGPIO_InitStructure; USART_InitTypeDefUSART_InitStructure; RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1|RCC_APB2Periph_GPIOA,ENABLE); 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_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); USART_Cmd(USART1,ENABLE);}voidNVIC_init(void){ NVIC_InitTypeDefNVIC_InitStructure; NVIC_PriorityGroupConfig(NVIC_PriorityGroup_0); NVIC_InitStructure.NVIC_IRQChannel=EXTI0_IRQn; NVIC_InitStructure.NVIC_IRQChannelSubPriority=0; NVIC_InitStructure.NVIC_IRQChannelCmd=ENABLE; NVIC_Init(&NVIC_InitStructure);}voidEXTI_init(void){ EXTI_InitTypeDefEXTI_InitStructure; GPIO_EXTILineConfig(GPIO_PortSourceGPIOA,GPIO_PinSource0); EXTI_InitStructure.EXTI_Mode=EXTI_Mode_Interrupt; EXTI_InitStructure.EXTI_Trigger=EXTI_Trigger_Falling; EXTI_InitStructure.EXTI_Line=EXTI_Line0; EXTI_InitStructure.EXTI_LineCmd=ENABLE; EXTI_Init(&EXTI_InitStructure); }intmain(void){ USART1_Config(); NVIC_init(); EXTI_init();while(1);}voidEXTI0_IRQHandler(void){if(EXTI_GetITStatus(EXTI_Line0)!=RESET){ for(i=0;i<18;i++) { USART_SendData(USART1,Host_String[i]);}}}《STM32Cube嵌入式系統(tǒng)應(yīng)用》試卷C-標(biāo)準(zhǔn)庫版本試卷及答案說明KeilMDK5進(jìn)入調(diào)試模式的步驟?!敬鸢浮縆eilMDK5進(jìn)入調(diào)試模式步驟如下:2【答案】【答案】通用定時(shí)器的計(jì)數(shù)器的計(jì)數(shù)方式可以使用向上、向下或中央計(jì)數(shù)模式?!敬鸢浮慨?dāng)使用USART模塊進(jìn)行全雙工異步通信時(shí),需要配置波特率、數(shù)據(jù)位數(shù)、奇偶校驗(yàn)、硬件流控制、停止位數(shù)、工作模式?!敬鸢浮看型庠O(shè)接口(SPI)允許芯片與外部設(shè)備以半/全雙工、同步、串行方式通信。此接口可以被配置成主模式,并為外部從設(shè)備提供通信時(shí)鐘(SCK)。SPI接口還能以多主配置方式工作,它有多種用途,如使用一條雙向數(shù)據(jù)線的雙線單工同步傳輸,還可使用CRC檢驗(yàn)的可靠通信。二、選擇題1.當(dāng)STM32的I/O端口配置為輸入時(shí),輸出緩沖器被禁止,施密特觸發(fā)輸入被激活。根據(jù)輸入配置(上拉,下拉或浮動)的不同,該引腳的弱上拉和下拉電阻被連接。出現(xiàn)在I/O腳上的數(shù)據(jù)在每個APB2時(shí)鐘被采樣到輸入數(shù)據(jù)寄存器,對輸入數(shù)據(jù)寄存器的讀訪問可得到I/O狀態(tài)。2.STM32芯片內(nèi)部集成的12位ADC是一種逐次逼近型模擬數(shù)字轉(zhuǎn)換器,具有18個通道,可測量16個外部和2個內(nèi)部信號源。3.STM32的外部中斷/事件控制器(EXTI)由19個產(chǎn)生事件/中斷要求的邊沿檢測器組成。每個輸入線可以獨(dú)立地配置輸入類型(脈沖或掛起)和對應(yīng)的觸發(fā)事件(上升沿或下降沿或者雙邊沿都觸發(fā))。每個輸入線都可以被獨(dú)立的屏蔽。掛起寄存器保持著狀態(tài)線的中斷要求。4.STM32的USART為通用同步異步收發(fā)器,其可以與使用工業(yè)標(biāo)準(zhǔn)NRZ異步串行數(shù)據(jù)格式的外部設(shè)備之間進(jìn)行全雙工數(shù)據(jù)交換。5.除了通用定時(shí)器外,STM32還提供了一個高級控制定時(shí)器TIM1。TIM1由一個16位的自動裝載計(jì)數(shù)器組成,它由一個可編程預(yù)分頻器驅(qū)動。6.STM32的DMA控制器有7個通道,每個通道專門用來管理來自于一個或多個外設(shè)對存儲器訪問的請求。還有一個仲裁器來協(xié)調(diào)各個DMA請求的優(yōu)先權(quán)。三、(16分)【答案】代碼如下:#include"stm32f10x.h"http://DeviceheadervoidNVIC_init(void){NVIC_InitTypeDefNVIC_InitStructure;NVIC_PriorityGroupConfig(NVIC_PriorityGroup_0);NVIC_InitStruct.NVIC_IRQChannel=EXTI0_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; RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOE,ENABLE);GPIO_InitStruct.GPIO_Pin=GPIO_Pin_5;GPIO_InitStruct.GPIO_Mode=GPIO_Mode_Out_PP;GPIO_InitStruct.GPIO_Speed=GPIO_Speed_50MHz;GPIO_Init(GPIOE,&GPIO_InitStruct);}voidEXTI_init(void){EXTI_InitTypeDefEXTI_InitStructure;GPIO_InitTypeDefGPIO_InitStructure;RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOA,ENABLE);RCC_APB2PeriphClockCmd(RCC_APB2Periph_SYSCFG,ENABLE);GPIO_InitStructure.GPIO_Mode=GPIO_Mode_IN;GPIO_InitStructure.GPIO_PuPd=GPIO_PuPd_NOPULL;GPIO_InitStructure.GPIO_Pin=GPIO_Pin_0;GPIO_Init(GPIOA,&GPIO_InitStructure);SYSCFG_EXTILineConfig(EXTI_PortSourceGPIOA,EXTI_PinSource0);EXTI_InitStructure.EXTI_Line=EXTI_Line0;EXTI_InitStructure.EXTI_Mode=EXTI_Mode_Interrupt;EXTI_InitStructure.EXTI_Trigger=EXTI_Trigger_Rising;EXTI_InitStructure.EXTI_LineCmd=ENABLE;EXTI_Init(&EXTI_InitStructure);}intmain(void){ GPIO_init(); EXTI_Configuration(); NVIC_Configuration(); while(1);}voidEXTI0_IRQHandler(void){ staticturn=1;if(EXTI_GetITStatus(EXTI_Line0)!=RESET){ turn=1-turn;if(turn) GPIO_ResetBits(GPIOE,GPIO_Pin_5) ; elseGPIO_SetBits(GPIOE,GPIO_Pin_5); }}四、(20分)【答案】電路圖如下:程序代碼:#include"stm32f10x.h"intTime_Count=0;intRepeat_Count=15;voidRCC_init(void){RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3,ENABLE);RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOE,ENABLE);}voidNVIC_init(void){NVIC_PriorityGroupConfig(NVIC_PriorityGroup_0);NVIC_InitStruct.NVIC_IRQChannel=TIM3_IRQn;NVIC_InitStruct.NVIC_IRQChannelCmd=ENABLE;NVIC_InitStruct.NVIC_IRQChannelPreemptionPriority=0;NVIC_InitStruct.NVIC_IRQChannelSubPriority=0;}voidGPIO_init(void){GPIO_InitTypeDefGPIO_InitStruct;GPIO_InitStruct.GPIO_Pin=GPIO_Pin_3;GPIO_InitStruct.GPIO_Mode=GPIO_Mode_Out_PP;GPIO_InitStruct.GPIO_Speed=GPIO_Speed_50MHz;GPIO_Init(GPIOE,&GPIO_InitStruct);}voidTIM3_init(void){TIM_TimeBaseInitTypeDefTIM_TimeBaseStructInit;TIM_TimeBaseStructInit.TIM_Prescaler=71;TIM_TimeBaseStructInit.TIM_CounterMode=TIM_CounterMode_Up;TIM_TimeBaseStructInit.TIM_Period=9999;TIM_TimeBaseStructInit.TIM_ClockDivision=TIM_CKD_DIV1;TIM_TimeBaseInit(TIM3,&TIM_TimeBaseStructInit);TIM_Cmd(TIM3,ENABLE);}intmain(void){ RCC_init(); NVIC_init(); TIM3_init(); GPIO_init(); while(1) { if(Repeat_Count>10) { if(Time_Count>=60) GPIO_ResetBits(GPIOE,GPIO_Pin_3); else GPIO_SetBits(GPIOE,GPIO_Pin_3); } else { if(Time_Count>=80) GPIO_ResetBits(GPIOE,GPIO_Pin_3); else GPIO_SetBits(GPIOE,

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論