嵌入式面试知识点总结

您所在的位置:网站首页 会计面试基本知识点汇总 嵌入式面试知识点总结

嵌入式面试知识点总结

2024-07-15 14:00| 来源: 网络整理| 查看: 265

如需转载请注明出处:https://juyou.blog.csdn.net/article/details/116021595

一、MCU对比 问题: 问题一:STM32F1和F4的区别? 解答:

参看:STM32开发 – STM32初识 内核不同:F1是Cortex-M3内核,F4是Cortex-M4内核; 主频不同:F1主频72MHz,F4主频168MHz; 浮点运算:F1无浮点运算单位,F4有; 功能性能:F4外设比F1丰富且功能更强大,比如GPIO翻转速率、上下拉电阻配置、ADC精度等; 内存大小:F1内部SRAM最大64K,F4有192K(112+64+16)。

二、STM32 启动过程 问题: 问题一:介绍以下STM32启动过程? 解答:

参看:STM32开发 – 启动流程 通过Boot引脚设定,寻找初始地址 初始化栈指针 __initial_sp 指向复位程序 Reset_Hander 设置异常中断 HardFault_Handler 设置系统时钟 SystemInit 调用C库函数 _main

三、GPIO 问题: 问题一:介绍以下GPIO? 解答:

参看:STM32开发 – GPIO详解 GPIO 8种工作模式(gpio_init.GPIO_Mode): (1) GPIO_Mode_AIN 模拟输入 (2) GPIO_Mode_IN_FLOATING 浮空输入 (3) GPIO_Mode_IPD 下拉输入 (4) GPIO_Mode_IPU 上拉输入 (5) GPIO_Mode_Out_OD 开漏输出 (6) GPIO_Mode_Out_PP 推挽输出 (7) GPIO_Mode_AF_OD 复用开漏输出 (8) GPIO_Mode_AF_PP 复用推挽输出

APB2负责 AD,I/O,高级TIM,串口1。 APB1负责 DA,USB,SPI,I2C,CAN,串口2345,普通TIM,PWR

GPIO框图剖析: 参看:STM32-GPIO详解 在这里插入图片描述

四、UART 问题: 问题一:串行通信方式介绍? 同步通信:I2C 半双工,SPI 全双工 异步通信:RS485 半双工、RS232 全双工问题二:串口配置? 串口设置的一般步骤可以总结为如下几个步骤: (1)串口时钟使能,GPIO时钟使能 (2)串口复位 (3)GPIO端口模式设置 TX的GPIO工作模式为:GPIO_Mode_AF_PP;//复用推挽输出 RX的GPIO工作模式为:GPIO_Mode_IN_FLOATING;//浮空输入 在这里插入图片描述 (4)串口参数初始化 主要包含:波特率设置(115200)、8个数据位、1个停止位、无奇偶校验位、无硬件数据流控制、收发模式。 (5)开启中断并且初始化NVIC(如果需要开启中断才需要这个步骤) (6)使能串口 (7)编写中断处理函数问题二:USART主要特点? (1)全双工操作(相互独立的接收数据和发送数据); (2)同步操作时,可主机时钟同步,也可从机时钟同步; (3)独立的高精度波特率发生器,不占用定时/计数器; (4)支持5、6、7、8和9位数据位,1或2位停止位的串行数据桢结构; (5)由硬件支持的奇偶校验位发生和检验; (6)数据溢出检测; (7)帧错误检测; (8)包括错误起始位的检测噪声滤波器和数字低通滤波器; (9)三个完全独立的中断,TX发送完成、TX发送数据寄存器空、RX接收完成; (10)支持多机通信模式; (11)支持倍速异步通信模式。 解答:

参看:STM32开发 – 串口详解 应用场景:GPS、蓝牙、4G模块

五、I2C 问题: 问题一:I2C 总线在传送数据过程中共有三种类型信号? (1)开始信号:SCL 为高电平时,SDA 由高电平向低电平跳变,开始传送数据。 (2)结束信号:SCL 为高电平时,SDA 由低电平向高电平跳变,结束传送数据。 (3)应答信号:接收数据的 IC 在接收到 8bit 数据后,向发送数据的 IC 发出特定的低电平脉冲,表示已收到数据。CPU 向受控单元发出一个信号后,等待受控单元发出一个应答信号,CPU 接收到应答信号后,根据实际情况作出是否继续传递信号的判断。若未收到应答信号,由判断为受控单元出现故障。问题二:I2C配置主机模式端口该怎么配置? 硬件模式:复用开漏输出、既不上拉也不下拉。(快速模式:400 Kbit/s) 软件模拟:推挽输出、配置上拉电阻。问题三:I2C仲裁机制? 参看:S5PV210开发 – I2C 你知道多少?(三) I2C 仲裁机制,理解了 线“与”(Wired-AND),就一目了然了。 简单说,它遵循“低电平优先”的原则,即谁先发送低电平谁就会掌握对总线的控制权。 解答:

参看:STM32开发 – PMIC、I2C详解 硬件模式: 是有通信速率设置的 /* STM32 I2C 快速模式 */ #define I2C_Speed 400000

/* 通信速率 */ I2C_InitStructure.I2C_ClockSpeed = I2C_Speed;

软件模拟: 没有设置通信速率,该怎么计算呢? 通过I2C总线位延迟函数 i2c_Delay:

static void i2c_Delay(void) { uint8_t i; /*  下面的时间是通过安富莱AX-Pro逻辑分析仪测试得到的。 CPU主频72MHz时,在内部Flash运行, MDK工程不优化 循环次数为10时,SCL频率 = 205KHz 循环次数为7时,SCL频率 = 347KHz, SCL高电平时间1.5us,SCL低电平时间2.87us 循环次数为5时,SCL频率 = 421KHz, SCL高电平时间1.25us,SCL低电平时间2.375us IAR工程编译效率高,不能设置为7 */ for (i = 0; i HFSR) 解答:

参看:STM32开发 – HardFault_Handler处理 参看:Cortex-M3和Cortex-M4 Fault异常应用之一 ----- 基础知识

二十四、TTS语音合成方法 问题: 问题一:sim7600 TTS语音使用什么方法? 解答:

(1)使用unicode编码合成声音 AT+CTTS=1,”6B228FCE4F7F75288BED97F3540862107CFB7EDF” 内容是“欢迎使用语音合成系统”,模块收发中文短信就是unicode编码,所以很容易将短信朗读出来; (2)直接输入文本,普通字符采用ASIIC码,汉字采用GBK编码。 AT+CTTS=2,”欢迎使用语音合成系统”

二十五、定时器 问题: 问题一:已知STM32的系统时钟为72MHz,如何设置相关寄存器,实现20ms定时? 解答:

参看:STM32开发 – Systick定时器 通过SysTick_Config(SystemCoreClock / OS_TICKS_PER_SEC))//1ms定时器

其中:

uint32_t SystemCoreClock = SYSCLK_FREQ_72MHz; /*!< System Clock Frequency (Core Clock) */ #define SYSCLK_FREQ_72MHz 72000000 #define OS_TICKS_PER_SEC 1000 /* Set the number of ticks in one second

如果需要20ms则,可以通一设置一个全局变量,然后定初值得为20,这样,每个systick中断一次,这个全局变量减1,减到0,即systick中断20次,时间为:1ms*20=20ms。从而实现20ms的定时。

二十六、优先级 问题: 问题一:如果是两个优先级相同的任务怎么运行? 解答:

使获得信号量任务的优先级在使用共享资源期间暂时提升到所有任务最高优先级的高一个级别上,以使该任务不被其他任务所打断,从而能尽快地使用完共享资源并释放信号量,然后在释放信号量之后,再恢复该任务原来的优先级别。

二十七、状态机 问题: 问题一:使用的什么状态机? 解答:

参看:STM32开发 – 状态机与状态切换逻辑

有限状态机,(英语:Finite-state machine, FSM),又称有限状态自动机,简称状态机。 参看:有限状态机FSM详解及其实现

假设状态机的状态转换由下表所示: 在这里插入图片描述

实现:(使用switch语句)

//横着写 void event0func(void) { switch(cur_state) { case State0: action0; cur_state = State1; break; case State1: action1; cur_state = State2; break; case State2: action1; cur_state = State0; break; default:break; } } void event1func(void) { switch(cur_state) { case State0: action4; cur_state = State1; break; default:break; } } void event2func(void) { switch(cur_state) { case State0: action5; cur_state = State2; break; case State1: action6; cur_state = State0; break; default:break; } } 二十八、器件选型 问题: 问题一:STM32F407 VS STM32F103 主要功能及资源对比? 解答:

参看:STM32F407 VS STM32F103 主要功能及资源对比 在这里插入图片描述



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3