1、、 选择题1、STM32F407VET6 这款单片机型号表明该款单片机的引脚数目为( ) A、48 B、64 C、100封装类型为( )A、BGA B、 LQFP C、VFQFPN2、下列开发软件中,不能用来开发 STM32 的程序的是( )A、 EWARM B、MDK C、JDK3、下列时钟源中不可以用来驱动系统时钟的是( )A、HSE B、HSI C、LSI4、STM32F103C8T6 的 SYSCLK 最高为( )A、48MHz B、72MHz C、168MHz5、当两个中断的抢占式优先级和子优先级一样时,内核处理中断时,这两个中断都已触发,响应规则为( )A、按中断向量表的顺序 B、
2、随机响应 C、按中断程序入口地址顺序6、AHB 是( )A、高性能总线 B、高速外设总线 C、低速外设总线7、在标准库中,如果某个 GPIO 作为数字量输入口,应配置为( )A、 GPIO_Mode_AF B、GPIO_Mode_IN C、GPIO_Mode_AN。 。 。PA9,如果配置为 USART1_TX,应配置为( )8、GPIOx_ODR 寄存器是( )A、GPIO 输出数据寄存器 B、GPIO 输入数据寄存器 C、 GPIO 配置寄存器9、高速外设总线是( )A、AHB B、 APB1 C、 APB210、下列通讯方式中,没有同步时钟的是( )A、UART B、SPI C、IIC1
3、1、下列通讯方式中,发送和接收是同时进行的是( )A、UART B、SPI C、IIC 12、 下列看门狗,可以避免跑乱的程序正好跑到喂狗程序从而导致不复位的情况是( )A、独立看门狗 B、窗口看门狗 C、外部硬件看门狗 13、标准库中,当 PA8 被配置为外部中断线时,对应的中断向量默认为( )A、EXTI8 B、EXTI9_5 C、EXTI5_914、当 PA2 配置为中断线,配置中断线时,EXTI_InitStructure.EXTI_Line= ( )A、EXTI_Line2 B、GPIO_PinSource2 C、GPIO_Pin_215、带互补输出功能的定时器是( )A、高级定时器
4、 B、通用定时器 C、基本定时器16、没有捕获/比较功能的定时器是 ( )A、高级定时器 B、通用定时器 C、基本定时器17、语句 ADC_RegularChannelConfig(ADC1, ADC_Channel_17, 2, ADC_SampleTime_55Cycles5)使用规则通道组采集的是 ( )A、 内部温度传感器的数据 B、内部参考电压的数据 C、某端口的数据18、ADC 初始化时,可通过结构体 ADC_InitTypeDef 中 ADC_ScanConvMode 定义 ( )A、ADC 使用模式 B、ADC 扫描模式 C、ADC 连续转换模式19、ADC 初始化时,可通过结
5、构体 ADC_InitTypeDef 中 ADC_ContinuousConvMode定义( )A、ADC 使用模式 B、ADC 扫描模式 C、ADC 连续转换模式20、DMA 初始化时结构体 DMA_InitTypeDef 中 DMA_PeripheralInc 定义的是 ( )A、数据传输方向 B、外设增量模式 C、存储器增量模式21、若 ADC 使用 DMA 采集数据, DMA_InitTypeDef 中的 DMA_DIR 应配置为( )A、DMA_DIR_PeripheralDST B、DMA_DIR_PeripheralSRC C、DMA_DIR_M2M22、IIC 通信时,起始信号
6、定义为 ( )IIC 通信时,停止信号定义为( )A、 SCL 为高电平时拉低 SDA B、SCL 为高电平时拉高 SDA C、SCL 为低电平时拉高 SDA23、支持多主结构的通讯方式是( )A、485 B、IIC C、SPI24、CAN 通讯中,用于接收单元向具有相同 ID 的发送单元请求数据的帧叫( )A、数据帧 B、遥控帧 C、过载帧25、CAN 通讯的标准格式 ID 为( )CAN 通讯的扩展格式 ID 为( )A、8 位 B、11 位 C、29 位26、CAN 通讯时,设置过滤器组 0 工作在 1 个 32 为位过滤器、标识符屏蔽模式,CAN_F0R1=0XFFFF0000,CAN
7、_F0R2=0XFF00FF00,则接收时最低位的 ID 应为( )A、0 B、1 C、不必关心27、下列哪个文件是 cos 与处理器有关的代码,在移植时需要修改( )A、os_cpu_c.c B、os_tmr.c C、os_cfg.h28、cos 调用 OSStart()开始启动任务管理,在调用该函数前必须至少创建( )个用户任务。A、0 B、1 C、 229、cos 在任务没有配备任务控制块或被剥夺了任务控制块时的状态叫 ( )A、就绪状态 B、等待状态 C、睡眠状态30、cos 中,创建任务函数 OSTaskCreate(void(*task)(void*pd),void *pdata,
8、OS_STK *ptos,INT8U prio) 第一个参数为( )A、任务代码指针 B、任务参数指针 C、任务堆栈指针。、 判断题1、嵌入式系统和 PC 都是计算机系统,因此需要完成某项功能只需要安装相应软件。2、STM32 是 ST 公司生产的基于 Cortex 内核的 32 位单片机,Cortex 内核知识产权属于 ST 公司。3、基于 STM32 设计的产品,软件开发时必须使用 MDK。4、STM32 产品和 51 系统的产品一样,采用外部晶振作为系统时钟。5、STM32 产品中设计有多个定时/计数器,采用同一时钟来驱动其工作。6、独立看门狗 IWDG 的“独立”的意思是指其驱动时钟区
9、别于其他器件,采用 LSI 驱动。7、STM32 的中断系统可支持多达 84 个中断,因此至少要有 84 个不同的优先级才能将其区分。8、子优先级高的中断可以打断子优先级低的中断,实现中断嵌套。9、因为 STM32 系列单片机端口可以重映射,所以某个 GPIO 可以复用给任意外设使用。10、当 STM32 某 GPIO 配置为输出模式时,可以通过输入数据寄存器读取端口状态。11、AHB 总线是高性能总线,主要用于系统高性能、高时钟速率模块间通信。12、一般说 STM32 定时器有多少个,并不包括 SYSTICK,所以 SYSTICK 不是定时器。13、STM32 的定时器是 16 位的,SYS
10、TICK 定时器也是 16 位的。14、在设计单片机键盘电路时,只有独立键盘和矩阵键盘两种设计方案。15、因为 GPIO_ReadInputDataBit()函数是读取端口电平状态,所以其返回值是 bit。16、端口复用配置时要使能其端口时钟和相应外设时钟,当端口重映射时还要使能辅助功能时钟 AFIO,并开启重映射。17、STM32 所有的中断可以赋予完全不相同的中断优先级。18、中断函数名是中断程序的入口地址指针,默认已定义,所以不能象函数名一样定义具有较强的随意性。19、在 STM32 标准库中,获取状态标志位和中断状态标志位的底层实现其实是一样的,但我们要养成良好习惯区分使用。20、UA
11、RT 通讯时,接线时两个模块或设备间的 TX 和 TX、RX 和 RX 应该直接连接。21、语句 USART_SendData();执行完毕后,数据就已经从串口发送出去了。22、STM 系列 MCU 的 USART 数据收发可以采用查询方式、中断方式和 DMA 方式,其中查询方式效率不高,因此在实际工程中较少使用。23、STM32 允许利用内部 FLASH 来存放一些数据,以实现掉电不丢失功能。但在电磁干扰强烈的环境下要慎用,因为 FLASH 打开写保护后,程序区数据也有可能被电磁干扰误写。24、STM32 的所有 IO 口都可以作为外部中断输入。25、每个外部中断线的触发方式可配置为上升沿触
12、发、下降沿触发和高低电平触发。26、双边沿触发是指先有上升沿再有下降沿才触发中断,或先有下降沿再有上升沿才触发中断的方式。27、STM32 的 WWDG 和 IWDG 一样,只要喂狗时间不大于某个设定的时间即可。28、STM32 的窗口看门狗的设计目的是为了防止出现跑乱的程序还能刷新独立看门狗喂狗操作,从而系统不复位、不能正常工作的尴尬。29、可以使用基本定时器的输入捕获功能来测量输入脉冲信号。30、STM32 的定时器计数脉冲其能由内部时钟源提供。31、STM32F1 系列 MCU 的 ADC 最高转换速率为 1M,可以通过双 ADC 快速交替模式来实现采样速度翻倍。32、I2C 总线进行数
13、据传送时,时钟信号为高电平期间,数据线上的数据必须保持稳定。33、IIC 是异步通讯方式。34、cos 的任务优先级可以一样。、 填空题1、嵌入式系统上的软件通常是暂时不变的;所以经常称为 。2、STM32 的 4 位中断优先级控制位又分成 2 组,从高位开始,前面 2 位定义的是 。3、STM32 的 的功能,把某些功能引脚映射到其他引脚,可以方便 PCB 布局,或当默认复用功能端口被占用的时候有备用端口。4、STM32F1 系列 GPIO 初始化时语句 RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);的作用是 。5、APB1 是 总
14、线。6、部分重映射是指功能外设的部分引脚重新映射,还有一部分引脚使用 引脚。7、STM32 有 84 个中断,包括 16 个内核中断和 68 个可屏蔽中断,具有 级可编程的中断优先级。8、当某两个中断的 PreemptionPriority 和 SubPriority 完全相同且都已触发,STM32优先响应 中断。9、串行通讯方式有 SPI,IIC,UART,WIFI,BLE,ZIGBEE,WIFI,CAN 等,其中 既常用作芯片之间的通信也觉见于设备之间的通信。10、STM32 的 USART 配置时需要定义的参数包括:起始位,数据位,奇偶校验位,停止位和 。11、语句 USART_Send
15、Data()执行后,数据移入到 寄存器。12、STM32 系列 MCU 的 USART 数据收发可以采用查询方式、中断方式和 。13、为提高 Cortex 内核的使用效率,STM32 的外设一般都可以使用 功能来进行数据收发操作。14、每个外部中断线的触发方式可配置为上升沿触发、下降沿触发和 触发。15、STM32 的中断线 16 连接到 事件,可以设置为边沿触发方式,以实现对 VDD 电压的监测,当出现异常时处理一些紧急任务。16、STM32 的所有 IO 口的外部中断,在中断向量表中只分配了 个中断向量。17、标准库函数中,函数名下划线前为 的英文缩写。18、STM32 的 IWDG 由
16、时钟驱动,独立于主程序之外。19、STM32 的 看门狗,喂狗时间既不能过早,也不能过迟。20、可以使用 STM32 的高级定时器或通用定时器的 功能来测量输入信号脉冲的长度,计算其周期和占空比;使用其输出比较功能来输出波形。21、STM32 的定时器是 位定时器。22、TIM_TimeBaseInit()函数的功能是 。23、STM32 的 ADC 是 位逐次逼近型模拟数字转换器。24、STM32 最多支持 3 个独立 ADC,但若要采集内部温度传感器数据,只能使用 。25、STM32 的 ADC 规则通道组最多运行 16 个通道的数据采集,注入通道组最多支持 个通道组的数据采集。26、ST
17、M32F1xx 系列 ADC 的时钟配置时最大为 MHz。27、I2C 总线进行数据传送时,只有在时钟线上的信号为 电平期间,数据线上电平状态才允许变化。28、I2C 总线空闲的时候,SDA 和 SCL 两条信号线处于 电平。29、ISO11898 标准规定,CAN 显示电平表示逻辑 ,隐性电平表示逻辑 1。30、CAN 总线的起止端一般都有一个终端电阻,来做阻抗匹配,以减少 。31、CAN 通讯时,用于发送单元向接收单元传送数据的帧叫 。32、CAN 通讯的 用于当总线上发生持续数据错误时,可将引起此故障的单元从总线上隔离出去。33、CAN 通讯时,当多个单元同时开始发送时,各发送单元从仲裁
18、段的第一位开始进行仲裁。连续输出 电平最多的单元可继续发送。34、cos 的多个任务靠 组成了一个任务链表。35、cos 创建任务前必须指定任务侁先级,实现任务代码,并为任务分配 。、 问答题1、 什么叫嵌入式系统?2、 解释端口复用,端口重映射,有什么作用?3、 结合 STM32F1 系列 USART1 为例,若将其 TX,RX 从默认 PA9、PA10 重映射到 PB6、PB7 上,简述其引脚配置步骤。4、 STM32 有 5 个时钟源,请写出其英文缩写和英文全称。5、 试闸述抢占式优先级(PreemptionPriority)和响应优先级(SubPriority)的区别。6、 若通过定时
19、器的 PWM 功能,来调整 LED 灯的亮度,实现亮度由暗变亮,又由亮变暗,也就是常说的呼吸灯功能,试闸述其实现步骤。、 综合题1、 如图所示为某实际工程中 STM32F0 的时钟系统配置问:该工程采用 驱动系统时钟,系统选用 为 SYSCLK,外设时钟频率为 MHz,独立看门狗的时钟为 KHz,PLL 输入时钟为 MHz。2、 某工程中,SPI 器件接口时序图如下图所示,试使用标准库函数完成 SPI 主设备的初始化程序。static void SPI2_Init(void)SPI_InitTypeDef SPI_InitStructure;NVIC_InitTypeDef NVIC_Init
20、Structure;/PA15:RST PB12:DC PB13:CLK:D0 PB15:data:D1(RCC_APB1Periph_SPI2,ENABLE); SPI2_GpioInit();SPI_I2S_DeInit(SPI2);SPI_InitStructure.SPI_Direction = ; /全双工模式SPI_InitStructure.SPI_Mode = SPI_Mode_Master; /作为主机使用SPI_InitStructure.SPI_DataSize = SPI_DataSize_8b; /数据长度 8SPI_InitStructure.SPI_CPOL =
21、; SPI_InitStructure.SPI_CPHA = ; SPI_InitStructure.SPI_NSS = SPI_NSS_Soft; SPI_InitStructure.SPI_BaudRatePrescaler =SPI_BaudRatePrescaler_16;/480KbpsSPI_InitStructure.SPI_FirstBit = ; SPI_InitStructure.SPI_CRCPolynomial = 0;SPI_Init(SPI2,SPI_Cmd(SPI2,ENABLE);/* Configure the SPI interrupt priority *
22、/NVIC_InitStructure.NVIC_IRQChannel = SPI2_IRQn;NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 3;NVIC_InitStructure.NVIC_IRQChannelSubPriority = 3;NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;NVIC_Init(/* Enable the Rx buffer not empty interrupt */SPI_I2S_ITConfig(SPI2, SPI_I2S_IT_RXNE, EN
23、ABLE);/ /* Enable the Tx buffer empty interrupt */SPI_I2S_ITConfig(SPI2, SPI_I2S_IT_TXE, DISABLE);SPI_I2S_ITConfig(SPI2, SPI_I2S_IT_OVR, DISABLE);SPI_I2S_ClearFlag(SPI2,SPI_I2S_FLAG_TXE);SPI_I2S_ClearFlag(SPI2,SPI_I2S_FLAG_RXNE);SPI_I2S_ClearITPendingBit(SPI2,SPI_I2S_IT_TXE);SPI_I2S_ClearITPendingBi
24、t(SPI2,SPI_I2S_IT_RXNE);3、 以下程序使用 HAL 库,使用 STM32F030 单片机实现的串口通讯程序,试阅读程序,回答问题。/* USART1 init function */static void MX_USART1_UART_Init(void)huart1.Instance = USART1;huart1.Init.BaudRate = 9600;huart1.Init.WordLength = UART_WORDLENGTH_8B;huart1.Init.StopBits = UART_STOPBITS_1;huart1.Init.Parity = UAR
25、T_PARITY_NONE;huart1.Init.Mode = UART_MODE_TX_RX;huart1.Init.HwFlowCtl = UART_HWCONTROL_NONE;huart1.Init.OverSampling = UART_OVERSAMPLING_16;huart1.Init.OneBitSampling = UART_ONE_BIT_SAMPLE_DISABLE;huart1.AdvancedInit.AdvFeatureInit = UART_ADVFEATURE_NO_INIT;if (HAL_UART_Init(_HAL_UART_ENABLE_IT(/打开
26、空闲中断_HAL_UART_DISABLE_IT(_HAL_UART_DISABLE_IT(HAL_UART_Receive_DMA(/打开空闲中断,初始化 DMA 接收该初始化程序指定的波特率、数据位、校验位和停止位分别是 。该程序使用什么方式接收数据? 打开空闲中断的目的是什么? 4、 以下程序使用的单片机(STM32F205RG,SYSCLK 配置为 120MHz)定时器 2(APB1 为 60 MHz)的初始化程序,试阅读程序,回答问题。static void TIM2_Config(u32 HZ,float Ratio)/ PWMuint32_t ARR;TIM_TimeBaseIn
27、itTypeDef TIM_TimeBaseStructure;TIM_OCInitTypeDef TIM_OCInitStructure;ARR = (60000000 / HZ-1);RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2,ENABLE);GPIO_PinAFConfig(GPIOB,GPIO_PinSource11,GPIO_AF_TIM2);/TIM_TimeBaseStructure.TIM_Period = ARR; /between 0x0000 and 0xFFFFTIM_TimeBaseStructure.TIM_Prescale
28、r = 0; /TIM_TimeBaseStructure.TIM_ClockDivision = TIM_CKD_DIV1; TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up; /TIM_TimeBaseStructure.TIM_RepetitionCounter = 0x00;TIM_TimeBaseInit(TIM2,TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM1;TIM_OCInitStructure.TIM_OutputState = TIM_OutputState
29、_Enable;TIM_OCInitStructure.TIM_OutputNState = TIM_OutputNState_Disable;TIM_OCInitStructure.TIM_Pulse = (uint32_t)(ARR * Ratio);/TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_High;TIM_OCInitStructure.TIM_OCNPolarity = TIM_OCNPolarity_Low;/TIM_OCInitStructure.TIM_OCIdleState = TIM_OCIdleState_S
30、et;TIM_OCInitStructure.TIM_OCNIdleState = TIM_OCNIdleState_Reset;TIM_OC4Init(TIM2,TIM_OC4PreloadConfig(TIM2, TIM_OCPreload_Enable);TIM_ARRPreloadConfig(TIM2, ENABLE);TIM_ClearFlag(TIM2,TIM_FLAG_Update); TIM_ClearFlag(TIM2,TIM_FLAG_CC4);TIM_Cmd(TIM2,ENABLE);TIM_CtrlPWMOutputs(TIM2,ENABLE);1)该程序配置 TIM
31、2 利用其捕获比较功能产生 信号。2)该初始化程序两个参数用于设置 ,在引用的时候,第一个参数应该不小于 ,第二个参数应该在 01 之间。3)生成的信号从端口 输出。4)TIM2 的计数模式为向上计数、向下计数还是中央对齐? 5、 以下程序是 STM32F205 单片机的独立看门狗初始化程序,阅读程序,回答问题。static void IWDG_Init(void)IWDG_WriteAccessCmd(IWDG_WriteAccess_Enable);IWDG_SetPrescaler(IWDG_Prescaler_256); /IWDG_SetReload(2500);IWDG_Reloa
32、dCounter(); IWDG_Enable();1)F2 系列的 LSI 是 32KHz,所以必须在 秒内喂狗。2)喂狗时应该调用的函数是: 3)IWDG_WriteAccessCmd()的功能是取消写保护,对哪两个寄存器有效? 4)如果在 IWDG_Enable();前插一句 IWDG_WriteAccessCmd(IWDG_WriteAccess_Diable);还能否正常喂狗? 6、 试阅读下面的程序,回答问题。/adc1 dma2 channel0 stream0static void ADC1_Mode_Config(void)DMA_InitTypeDef DMA_InitSt
33、ructure; ADC_InitTypeDef ADC_InitStructure;ADC_CommonInitTypeDef ADC_CommonInitStructure;GPIO_InitTypeDef GPIO_InitStructure;RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOA, ENABLE); RCC_APB2PeriphClockCmd(RCC_APB2Periph_ADC1, ENABLE);RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_DMA2, ENABLE);GPIO_InitStructur
34、e.GPIO_Pin= GPIO_Pin_0 | GPIO_Pin_1 | GPIO_Pin_2 | GPIO_Pin_3 | GPIO_Pin_4 | GPIO_Pin_5 | GPIO_Pin_6; /电流电压取样 PA6 是键盘GPIO_InitStructure.GPIO_Mode=GPIO_Mode_AIN;GPIO_InitStructure.GPIO_PuPd=GPIO_PuPd_NOPULL;GPIO_Init(GPIOA, DMA_DeInit(DMA2_Stream0);DMA_InitStructure.DMA_Channel = DMA_Channel_0; DMA_I
35、nitStructure.DMA_PeripheralBaseAddr = (uint32_t)ADC1_DR_ADDRESS;/ADC1_BASE+0x4CDMA_InitStructure.DMA_Memory0BaseAddr = (uint32_t)DMA_InitStructure.DMA_DIR = DMA_DIR_PeripheralToMemory;DMA_InitStructure.DMA_BufferSize = 7*NPT;/ 前三个是电流,中间是电压,最后一个是键盘DMA_InitStructure.DMA_PeripheralInc = DMA_PeripheralI
36、nc_Disable;DMA_InitStructure.DMA_MemoryInc = DMA_MemoryInc_Enable;DMA_InitStructure.DMA_PeripheralDataSize =DMA_PeripheralDataSize_HalfWord ;DMA_InitStructure.DMA_MemoryDataSize = DMA_MemoryDataSize_HalfWord;DMA_InitStructure.DMA_Mode = DMA_Mode_Circular;DMA_InitStructure.DMA_Priority = DMA_Priority
37、_VeryHigh;DMA_InitStructure.DMA_FIFOMode = DMA_FIFOMode_Disable; DMA_Init(DMA2_Stream0, DMA_ITConfig(DMA2_Stream0,DMA_IT_TC,ENABLE); /DMA_Cmd(DMA2_Stream0, ENABLE);/ADC1ADC_CommonInitStructure.ADC_Mode = ADC_Mode_Independent;/ADC_CommonInitStructure.ADC_Prescaler = ADC_Prescaler_Div2;/adcclk=30MADC_
38、CommonInitStructure.ADC_DMAAccessMode = ADC_DMAAccessMode_Disabled;ADC_CommonInitStructure.ADC_TwoSamplingDelay = ADC_TwoSamplingDelay_5Cycles;ADC_CommonInit(ADC_InitStructure.ADC_Resolution = ADC_Resolution_12b;ADC_InitStructure.ADC_ScanConvMode = ENABLE; /只用了一个通道ADC_InitStructure.ADC_ContinuousCon
39、vMode =DISABLE;ADC_InitStructure.ADC_ExternalTrigConvEdge =ADC_ExternalTrigConvEdge_None;/使用 TIM2 中断软件触发ADC_InitStructure.ADC_DataAlign = ADC_DataAlign_Right;ADC_InitStructure.ADC_NbrOfConversion = 7; /ADC_Init(ADC1, ADC_RegularChannelConfig(ADC1, ADC_Channel_0 , 1, ADC_SampleTime_15Cycles ); /电流 1A
40、DC_RegularChannelConfig(ADC1, ADC_Channel_1 , 2, ADC_SampleTime_15Cycles );/电流 2ADC_RegularChannelConfig(ADC1, ADC_Channel_2 , 3, ADC_SampleTime_15Cycles );/电流 3ADC_RegularChannelConfig(ADC1, ADC_Channel_3 , 4, ADC_SampleTime_15Cycles );/电压 1ADC_RegularChannelConfig(ADC1, ADC_Channel_4 , 5, ADC_Samp
41、leTime_15Cycles );/电压 2ADC_RegularChannelConfig(ADC1, ADC_Channel_5 , 6, ADC_SampleTime_15Cycles );/电压 3ADC_RegularChannelConfig(ADC1, ADC_Channel_6 , 7, ADC_SampleTime_15Cycles ); /键盘/定时器软件触发是 0.3125ms 一次,ADCCLK 30M,12+15+5=497*7=3479Cycles/30M=0.116ms,一次采样需要 0.116ms0.3125ms,是可以的/* Enable ADC1 DMA
42、*/ADC_DMACmd(ADC1, ENABLE);ADC_Cmd(ADC1, ENABLE); /* Enable DMA request after last transfer (Single-ADC mode) */ADC_DMARequestAfterLastTransferCmd(ADC1, ENABLE);/* Start ADC1 Software Conversion */ ADC_SoftwareStartConv(ADC1);/* Wait until the ADC1 is ready */while(ADC_GetFlagStatus(ADC1, ADC_FLAG_STRT) = RESET)1)该初始化程序实现的功能是 。2)该程序基于 STM32F2,APB2 设置为 60MHz,ADCCLK 最大不超过 30MHz,该程序设置 ADCCLK 为 MHz。3) STM32F2 一次 ADC 周期=12+采样周期+两次间隔,该程序对 50Hz 的电压电流