stm32单片机考试复习题一、填空题。1.ST公司的STM32F4系列芯片采用了__________内核,其分为两个系列。其中STM32F407系列的运行频率为_________。2.所有的IO端口都有外部中断功能,当使用外部中断时候,IO引脚必须设置为________模式。3.程序存储器、数据存储器、寄存器和I/O端口排列在同一个线性(即地址连续)的________地址空间内。4.定时器的时基单元包括__________,_________和自动重载寄存器。5.串口数据帧由__________,数据位,奇偶校验位,停止位组成。6.GPIO端口的位可以配置为多种模式,有输入模式,输出模式,______和______。7.CM4内核支持256个中断,其中包含了______个内核中断和______个外部中断。8.ADC转换模式分为_______和______。9.程序存储器、数据存储器、寄存器和I/O端口排列在同一个线性(即地址连续)的________地址空间内。10.定时器的时基单元包括__________,_________和自动重载寄存器。11.串口数据帧由__________,数据位,奇偶校验位,停止位组成。12.GPIO端口的位可以配置为多种模式,有输入模式,输出模式,______和______。13.ST公司的STM32F4系列芯片采用了__________内核,其分为两个系列。其中STM32F407系列的运行频率为_________。14.当定时器使用GPIO引脚实现输出比较产生PWM,IO引脚必须设置为________模式。15.程序存储器、数据存储器、寄存器和I/O端口排列在同一个线性(即地址连续)的________地址空间内。16.I2C总线在传送数据过程中共有三种类型信号,它们分别是:__________,结束信号和_______________。17.串口数据帧由__________,数据位,奇偶校验位,停止位组成。18.GPIO端口的位可以配置为多种模式,有输入模式,输出模式,______和______。19.STM32F407内部集成了_________个DAC。20.STM32F407芯片有___________个定时器。21.ADC转换模式分为_______和______。22.DAC采用12位转换能达到的转换精度是____________________。23.I2C总线在传送数据过程中共有三种类型信号,它们分别是:__________,结束信号和_______________。24.GPIO端口的位可以配置为多种模式,有输入模式,输出模式,______和______。二、选择题1.下列哪种方法可以对STM32进行程序下载【】A.ST_LinkB.J_LinkC.在线应用编程D.以上都可以2.哪些不是STM32的ADC系统的特点【】A.4-位分辨率B.自校准C.可编程数据对齐D.单次和连续转换模式3.STM32嵌套向量中断控制器(NVIC)具有多少个可编程的优先等级【】A.16B.43C.72D.364.以下不属于串行通信方式的接口是【】A.SPIB.UARTC.IICD.8080接口5.表示变量或者函数的定义在别的文件中,提示编译器遇到此变量和函数时在其他模块中寻找其定义的关键字是【】A.externB.staticC.defineD.typedef6、STM32F407ZET6芯片共有多少个引脚。【】A.112B.72C.144D.1767.STM32F407系统时钟SYSCLK来源不包括【】A.HSEB.HSIC.PLLCLKD.LSI8.每个IO引脚都有一个复用器,该复用器采用多少路复用功能输入。【】A.8B.16C.32D.49.以下不属于串行通信方式的接口是【】A.SPIB.UARTC.IICD.8080接口10.表示变量或者函数的定义在别的文件中,提示编译器遇到此变量和函数时在其他模块中寻找其定义的关键字是【】A.externB.staticC.defineD.typedef11.STM32F407ZET6芯片FLASH容量是【】A.256KB.512KC.1MD.2M12.定时器的时基单元不包括【】A.自动重载寄存器B.定时器计数器C.预分频寄存器D.溢出寄存器13.STM32F407共有多少个GPIO引脚。【】A.112B.176C.144D.7214.以下不属于IIC接口的特点是【】A.串行通信B.半双工C.异步传输D.2线式总线15.STM32F767内部集成温度传感器的输出连接到ADC的通道上。【】A.通道18B.通道16C.通道4D.通道516.STM32F407ZET6芯片共有多少个IO口。【】A.112B.72C.144D.17617.STM32F407系统时钟SYSCLK来源不包括【】AHSEB.HSIC.PLLCLKD.LSI18.STM32F767的ADC是12位逐次逼近型的模数转换器,它有多少个通道。【】A.8B.16C.19D.419.串口接口是几线的串行通信总线。【】A.1B.2C.4D.820.定义结构体的类型别名和枚举类型的关键字是【】A.externB.staticC.defineD.typedef三、简答题1.简述不同复用功能的重映射过程。2.简述STM32的USART的功能特点。3.简述STM32时钟的类型。4.IIC总线的组成?画出IIC总线工作时序图,并说明总线数据传输过程。5.说明外部按键扫描方式和外部线中断方式的差异。6.请说明使用基于HAL库的编程方式处理ADC的步骤。7.简述GPIO端口四种模式的区别。8.简述查询方式和中断方式在ADC的区别。9.简述STM32F407时钟系统的来源构成及多个时钟源的作用。10.简述定时器输出比较输出PWM的原理。11.请说明使用基于HAL库的编程方式使用DAC的步骤。四、程序阅读题1.阅读下列程序,在空格填上正确注释。voidIIC_Start(void){SDA_OUT();//____________________IIC_SDA=1;IIC_SCL=1;delay_us(4);IIC_SDA=0;//___________________delay_us(4);IIC_SCL=0;//____________________}voidIIC_Stop(void){SDA_OUT();IIC_SCL=0;IIC_SDA=0;//_____________________delay_us(4);IIC_SCL=1;IIC_SDA=1;//___________________delay_us(4);}2.阅读下列程序,完成程序填空,并说明程序功能。u8KEY_Scan(u8mode){_____u8key_up=1;//按键松开标志if(mode==1)_________;//支持连按if(key_up&&(KEY0==0||KEY1==0||KEY2==0||WK_UP==1)){delay_ms(10);key_up=0;if(KEY0==0)returnKEY0_PRES;elseif(KEY1==0)returnKEY1_PRES;elseif(KEY2==0)returnKEY2_PRES;elseif(WK_UP==1)returnWKUP_PRES;}elseif(______________________)key_up=1;return0;//无按键按下}程序实现的功能?3.找出下列程序中错误,并改正。voidMY_ADC_Init(void){ADC1_Handler.Instance=ADC1;ADC1_Handler.Init.ClockPrescaler=ADC_CLOCK_SYNC_PCLK_DIV4;ADC1_Handler.Init.Resolution=ADC_RESOLUTION_4B;ADC1_Handler.Init.DataAlign=ADC_DATAALIGN_RIGHT;ADC1_Handler.Init.ScanConvMode=DISABLE;ADC1_Handler.Init.EOCSelection=DISABLE;ADC1_Handler.Init.ContinuousConvMode=DISABLE;ADC1_Handler.Init.NbrOfConversion=1;ADC1_Handler.Init.DiscontinuousConvMode=DISABLE;ADC1_Handler.Init.NbrOfDiscConversion=0;ADC1_Handler.Init.ExternalTrigConv=ADC_SOFTWARE_START;ADC1_Handler.Init.ExternalTrigConvEdge=ADC_EXTERNALTRIGCONVEDGE_NONE;ADC1_Handler.Init.DMAContinuousRequests=DISABLE;HAL_ADC_Init(&ADC1_Handler);}voidHAL_ADC_MspInit(ADC_HandleTypeDef*hadc){GPIO_InitTypeDefGPIO_Initure;__HAL_RCC_ADC2_CLK_ENABLE();__HAL_RCC_GPIOC_CLK_ENABLE();GPIO_Initure.Pin=GPIO_PIN_5;GPIO_Initure.Mode=GPIO_MODE_OUTPUT;GPIO_Initure.Pull=GPIO_PULLUP;HAL_GPIO_Init(GPIOA,&GPIO_Initure);}4.阅读下列程序,在空格填上正确注释。intmain(void){u8key_num=0;HAL_Init();//_______________Stm32_Clock_Init(432,25,2,9);//_______________delay_init(216);//_______________Led_Init();Digitron_Init();Key_Init();//_______________while(1){key_num=KEY_Scan(0x01);//_______________switch(key_num){case1:LED0(0);LED1(1);break;case2:LED0(0);LED1(0);break;case3:LED0(1);LED1(1);break;case4:LED0(1);LED1(0);break;}}}5阅读下列程序,完成程序填空,并说明程序功能。u8KEY_Scan(u8mode){staticu8key_up=1;if(mode==1)key_up=1;if(__________________________){delay_ms(10);key_up=0;if(Key0==0)return1;if(Key1==0)return2;if(Key2==0)return3;if(Wk_Up==1)return4;}elseif(Key0==1&&Key1==1&&Key2==1&&Wk_Up==0)_____________;____________;}程序实现了什么功能?6.找出下列程序中错误,并改正。#includedigitron.h#includedelay.hu8Posture_Code[]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};u8Segment_Code[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71,0x00,0x40,0xff};voidDigitron_Init(void){GPIO_InitTypeDefGPIO_Initure;__HAL