IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 嵌入式 -> 嵌入式面试经典30问与非标准答案 -> 正文阅读

[嵌入式]嵌入式面试经典30问与非标准答案

原问题见

https://blog.csdn.net/xydlxd118/article/details/105707499

1. 讲一下stm32的时钟系统

时钟在MCU中的作用,就好比于人类的心脏一样不可或缺。STM32有多个时钟源可以使用。因为STM32拥有丰富的外设资源,不同外设使用的时钟也会不一样,同时我们要知道时钟越快,功耗就越大,抗电磁干扰的能力就会减弱,因此,比较复杂的MCU 都会采用多时钟来解决这些问题。

STM32 有5个时钟源:HSI、HSE、LSI、LSE、PLL。
①、HSI是高速内部时钟,RC振荡器,频率为16MHz,精度不高。可以直接作为系统时钟或者用作PLL时钟输入。

②、HSE是高速外部时钟,可接石英/陶瓷谐振器,或者接外部时钟源,频率范围为4MHz~26MHz。

③、LSI是低速内部时钟,RC振荡器,频率为32kHz,提供低功耗时钟。主要供独立看门狗和自动唤醒单元使用。

④、LSE是低速外部时钟,接频率为32.768kHz的石英晶体。作为RTC时钟;

⑤、PLL为锁相环倍频输出。提供2-16倍的倍频输出。

2. C语言中堆和栈的区别;推挽输出是什么?

C语言中堆和栈的区别:
  1. 申请方式
  • 栈(satck):由系统自动分配。
  • 堆(heap):需程序员自己申请和释放。
    // 待补充
32单片机IO口8种状态的理解

1、浮空输入,据我的理解,就是不接上拉,也不接下拉,外部电路是什么状态,就是什么状态,具有不确定性。
2、上拉输入,就是配置好IO口后,默认与VDD相连的开关闭合,读状态默认高电平,外部有低电平才拉低。
3、下拉输入,与上拉输入一个意思。
4、模拟输入,这个我没用到,也不太理解,套用一下前辈的话:模拟输入是指传统方式的输入,数字输入是输入PCM数字信号,即0,1的二进制数字信号,通过数模转换,转换成模拟信号,经前级放大进入功率放大器,功率放大器还是模拟的。

5、开漏输出:据我的理解就是要加上拉电阻,才能拿到低电平,(nmos管为0时,才接通),外部的上拉电阻的高电平拉到了Gnd,默认输出高电平。
6、推挽输出:配置后,输出1,PMOS管接通,外输出高点平,输出0,NMOS管接通,外输出低电平,输出1.
7、推挽复用输出
8、开漏复用输出
复用功能就是外设的配置。

引用CSDN博主「持续学习中」的原创文章:关于32单片机IO口8种状态的理解

3. 假如一个单片机上电之后不运行?这是为什么?

1、检查供电:直接用万用表测量VCC和GND的电平,是否符合要求。如果VCC偏离5V或3.3V过多,检查7805或其他稳压、滤波电路的输出。

2、检查晶振:一般是多换几个晶振上电试试。

3、检查RESET引脚电平逻辑,注意所用机型是高电平复位还是低电平复位的,防止MCU一直处于反复被复位状态。

4、如果设计时,程序是从扩展的外部ROM开始运行的,还需检查EA脚。

5、检查MCU是否损坏或flash无法下载,最好换块新的芯片试试。

6、如果测试程序运行正常。那就基本确定是控制程序的问题了。

个人经验:首先检查MCU供电是否正常,再判断擦除和烧录是否正常,再判断控制程序是否正常,一般情况下3、4不会出现,对于STM32来说可以换内部晶振来排除2。

4. 举你用过的单片机的型号和它的一些主要参数

STM32F103VCT6

内核
-ARM 32位 Cortex - M 3处理器
-高达72 MHz
内存
-256 KB 的 Flash
-48 KB 的 SRAM
3个12位AD,外部通道16个,内部通道2个
7个通道DMA
8个定时器
12个通信接口
-2个 I 2 C 接口
-5 个 UART
-3 个 SPI
-1 个 USB
-1 个 CAN
内置 CRC 计算单元,和96位唯一的 ID 号
具体请参考数据手册。

5. 一个温度传感器模块,按照正确的使用方式和参数指标,对人体皮肤测量之后,得到的温度一直都是35摄氏度,这是为什么?

猜一个:因为该温度传感模块测出的温度为表面温度,而实际上表面温度和实际体温是有差距的。

6.考一些结构体、联合体、sizeof方面的知识

结构体参考:https://blog.csdn.net/abc_xixi111/article/details/80262753 , https://blog.csdn.net/qq_27597629/article/details/112311702
联合体参考:https://www.cnblogs.com/luoxuw/p/11337923.html

10.485有几根线

RS485总线通信的一般是两根线,多出的一根是公共线,也就是地线G【长距离电缆中的屏蔽层】抑制干扰用的必需接!总共要接三根,一般测试时可以不用接。

11.串口和并口有什么区别

并行接口是指数据的各位同时进行传送,其特点是传输速度快,但当传输距离较远、位数又多时,导致了通信线路复杂且成本提高;

串行接口是指数据一位位地顺序传送,其特点是通信线路简单,只要一对传输线就可以实现双向通信,并可以利用电话线,从而大大降低了成本,特别适用于远距离通信,但传送速度较慢;

14.局部变量和全局变量分别存放在哪里?

C语言中局部变量存在栈里,全局变量存静态存储区。

15.c语言头文件的工作原理

引用头文件相当于复制头文件的内容,但是我们不会直接在源文件中复制头文件的内容,因为这么做很容易出错,特别在程序是由多个源文件组成的时候。

16.精度和分辨率有什么区别

1、精度是接近真实值的程度, 即绝对误差或相对误差的大小.精度做到0.01%极其难
2、分辩率是量化刻度的细度大小。
分辩率高是精度高的必要条件,不是充分条件;分辩率高不等于精度高. 认定精度才是王道。

写不动了。

  嵌入式 最新文章
基于高精度单片机开发红外测温仪方案
89C51单片机与DAC0832
基于51单片机宠物自动投料喂食器控制系统仿
《痞子衡嵌入式半月刊》 第 68 期
多思计组实验实验七 简单模型机实验
CSC7720
启明智显分享| ESP32学习笔记参考--PWM(脉冲
STM32初探
STM32 总结
【STM32】CubeMX例程四---定时器中断(附工
上一篇文章      下一篇文章      查看所有文章
加:2021-09-07 10:59:11  更:2021-09-07 11:01:19 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 0:35:54-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码