嵌入式
更新: 1/6/2025 字数: 0 字 时长: 0 分钟
- 考试题型:四道大题(3+4+4+3)
- 时间:10:40 - 12:40
- 地点:西楼 - 507
- 监考老师:程成辉、王松直
第一大题
第一小题(9 分)
Cortex-M3 微控制器的构成
- Cortex-M3
- 调试系统
- 外设
- 存储器
- 时钟和复位
- I/O
STM32F103ZET6 的命名规则
- STM32:基于 ARM 的 32 位微控制器
- F:通用类型
- 103:增强型引脚数目
- Z:144 脚
- E:512KB 的闪存存储器封装
- T:LQFP
- 6:工业级温度范围
第二小题(5 分)
复位电路工作原理
- 实现上电复位和按键复位。
- 开发板刚接通电源时,R5 和 C20 构成 RC 充电电路,对系统进行上电复位。
- 按钮 RST 可以实现按键复位,当需要复位时按下 RST 按钮,RST 引脚直接接地,CPU 即可进入复位状态。
按键模块工作原理
- 4 个按键的一端并联并接地,另一端由 CPU 的 GPIO 控制。当某一按键按下时,相应的 GPIO 引脚应为低电平,CPU 读出相应的电平状态即可执行相应的子程序或是处理不同的中断服务程序。
第三小题
有哪些结构的嵌入式软件?
无操作系统的嵌入式软件:在组成结构上,无操纵系统的嵌入式软件仅由引导程序和应用程序两部分组成。
带操作系统的嵌入式软件:相比无操作系统的嵌入式软件,代操作系统的嵌入式软件规模较大,其应用软件构架于嵌入式操作系统上。它的体系结构分为三层,包括应用软件层、操作系统层、和设备驱动层。
根据情景选择哪一种结构的嵌入式软件?
第二大题
第一小题
什么是 STM32 固件库?
STM32F10X 的固件库是一个或多个完整的软件包,包括所有标准外设的设备驱动程序。其本质是一个固件函数包,由程序、数据结构和各种宏组成,涵盖了微控制器所有外设的性能特征。
工程模板创建步骤
① 创建或复制文件夹
② 创建工程模板文件,建立文档分组
③ 设置输出文件夹,添加预编译变量,包含头文件路径
④ 创建public.h
文件,重写main.c
文件,编译调试stm32f10x.h
文件路径\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x
第二小题(6 分)
LED 初始化程序
cGPIO_InitTypeDef GPIO_InitStructure; RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE); GPIO_InitStructure.GPIO_Pin = GPIO_Pin_All; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_2MHz; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; GPIO_Init(GPIOC, &GPIO_InitStructure);
第三小题(7 分)
TIM3 初始化程序
cTIM_TimeBaseInitTypeDef TIM_TimeBaseInitStructure; RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3, ENABLE); TIM_TimeBaseInitStructure.TIM_Period = 900 - 1; TIM_TimeBaseInitStructure.TIM_Prescaler = 1 - 1; TIM_TimeBaseInitStructure.TIM_ClockDivision = 0; TIM_TimeBaseInitStructure.TIM_CounterMode = TIM_CounterMode_Up; TIM_TimeBaseInit(TIM3, &TIM_TimeBaseInitStructure);
第四小题
用两种库函数实现 PC6 输出低电平、PC7 输出高电平
c// 方法一 GPIO_SetBits(GPIOC, GPIO_Pin_7); GPIO_ResetBits(GPIOC, GPIO_Pin_6); // 方法二 GPIO_WriteBit(GPIOC, GPIO_Pin_6, Bit_SET); GPIO_WriteBit(GPIOC, GPIO_Pin_7, Bit_RESET);
第三大题
第一小题(7 分)
判断给出的图是数码管什么接法?
- 共阳接法
共阳极显示:0 亮 1 灭
2 5 7 6 dp 1 1 1 1 g 0 0 1 0 f 1 0 1 0 e 0 1 1 0 --- --- --- --- --- --- d 0 0 1 0 c 1 0 0 0 b 0 1 0 1 a 0 0 0 0 显示数字 字段码 abged 2 0xA4 afgcd 5 0x92 abc 7 0xF8 afedcg 6 0x82
第二小题
数码管显示方式
静态显示:
- 概念:在静态显示方式下,每一位显示器的字段需要一个 8 位 I\O 口控制,N 位显示器就需要 N 个 I\O 口。
- 特点:编码较简单,但占用 I\O 端线多,即软件简单,硬件成本高,一般用于显示位数较少的场合。
动态显示:
- 概念:将显示各位的所有相同字段线连接在一起,由一个 8 位 I\O 口控制,而每一位的公共端由另一个 I\O 口控制。
- 特点:占用 I\O 端线少;电路较简单,硬件成本低,编程较复杂。
第三小题
Keil-MDK 软件操作界面打开,需要在那个文件夹下编写中断服务?
中断服务程序应在
User
项目组下的stm32f10x_it.c
文件的最下方编写三个中断服务程序。函数名必须与系统预定义一致,分别为:EXTI0_IRQHandler
EXTI1_IRQHandler
EXTI2_IRQHandler
第四小题(7 分)
EXTI 初始化程序
cEXTI_InitTypeDef EXTI_InitStructure; RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOE | RCC_APB2Periph_AFIO, ENABLE); EXTI_InitStructure.EXTI_Line = EXTI_Line0 | EXTI_Line1 | EXTI_Line2; EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt; EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Falling; EXTI_InitStructure.EXTI_LineCmd = ENABLE; EXTI_Init(&EXTI_InitStructure);
第四大题
第一小题
ADC 数模转换关键步骤
① 采样、② 量化、③ 编码
ADC 主要类型有哪些?其特点是什么?
- 逐次逼近式:逐次逼近式 AD 转换器转换精度高,速度较快,价格适中,是目前种类最多、应用最广泛的 AD 转换器。
- 双积分式:优点是转换精度高、缺点是转换精度较长、一般要 40-50ms 适用于转换速度不快的场合。
- V/F 变换式:转换精度高、抗干扰性强、便于长距离传送,廉价,但转换速度偏低。
根据情景选择转换方式。
- 根据此情景我觉得应该选择 V/F 变换式。
第二小题
串行与并行通信的概念及特点
并行通信
- 概念:使用多条数据线传输数据,并行通信时,各个位同时在不同的数据线上传送,数据可以以字或者字节为单位并行传输。
- 优点:传输速度快,一般用于传输大量,紧急的数据。
- 缺点:占用更多的I/O口,传输距离较短,且易受外界信号干扰。
串行通信
- 概念:使用一条数据线将数据一位一位的依次传输,每一位数据占据一个固定的时间长度。
- 优点:只需要几根数据线便可实现系统与系统间或系统与部件间的数据交换,且传输距离较长。
- 缺点:由于只使用一条数据线,传输速度较慢
根据情景选择通信方式。
第三小题
中断的定义
CPU 暂时中止其正在运行的程序,转去执行请求中断的那个外设或事件的服务程序,等处理外后在返回执行原来中止的程序,叫做中断。
中断处理过程
① 中断请求、② 中断响应、③ 中断服务、④ 中断返回