• 嵌入式 单片机面试 通信协议常见问题答案 串口通信 IIC通信 SPI通信 协议解析讲解 RS232 RS485 协议 IIC总线


    第0章-单片机 & 通信协议 & 其他

    这个文章主要讲串口,RS232 \RS485 下一篇讲解IIC SPI等

    单片机

    5.MCU启动流程

    6.DSP指令

    5.MCU怎么选型,STM32F1和F4有什么区别

    6.外部RAM和内部RAM区别,怎么分配

    7.外部总线和内部总线区别

    8.DSP指令

    9.MCU上的固件,数据是怎么分配的

    10.MCU启动流程

    11.IAP是怎么升级的,突然断电怎么办

    为什么用的CAN总线

    你说一下spi和 i2c和 UART的 各自的工作方式优缺点?

    一些项目中的问题,遇到了哪些问题,如何解决的

    、有没有遇到过IO口输出电压稳定的问题,如何解决的

    那么嵌入式中栈的工作机制是什么?(不会)

    项目做了远程网络升级嵌入式,他就问我你有考虑过你的固件安全性问题吗?如果有其他人通过网络途径下载一个非官方的固件包,你怎么去判断?

    1. 51和32架构的区别

    2. Stm32处理中断的过程

    3. 保护现场保护什么东西(寄存器和堆栈)

    4. 要保护那些寄存器?

    5. Stm32是要中断嵌套的吗,什么时候需要什么时候不需要

    6. Cortex-m系列使用浮点会对stm32中断效率产生什么影响(不清楚)

    7. 对嵌入式哪方面比较深刻,研究比较深入的

    8. 如何保证buffer读和写的互斥

      四旋翼中的姿态解算算法是如何运行的?两个部分:一个是数据滤波,一个是姿态解算Mahony。表达的有点乱

      ​ PID算法的实现是库还是自己写?自己写的,算法不难,难的是参数调试

      ​ 讲一下PID算法的实现过程?

      ​ 介绍一下智能遥控?两个部分:红外遥控器、在线语音识别(面试官走个流程,对这个项目不感兴趣)

      ​ (以上个人感觉,更多的是考察项目是否是你做的,以及解决问题、与人沟通的能力)

      你未来发展linux,那为啥投我的单片机?

      单片机使用过什么外设?

      如何使用软件实现iic

      spi有哪些信号线

      介绍项目,问软件部分的结构框架

      1.问传感器测力的原理,应变片怎么把力转换成电信号,我画了图给他看。

      2.扣了一下我用的AD转换芯片的问题,问转换完成一次时间是多少,问主控芯片频率,大概意思就是是否来得及读取信号?

      3.还问了数字滤波后信噪比改善多少。追问怎么知道真值的,我说自己设计的标定平台,加上指定大小和方向的力,算的是一个相对值,后面需要解耦计算的。

      4.问项目里面,软件代码问题,怎么调试?

      .单片机启动程序,在执行main之前的是什么。

      3.keil怎么使用库。

      6.x86汇编和Arm汇编有什么区别?

    处理器架构

    6.x86汇编和Arm汇编有什么区别?

    • 51和32架构的区别
    • MCU可以运行Liunux吗,为什么
    • STM32启动过程(上电开始->main执行的过程)
    • 中断响应执行流程,中断上下文指的什么,保存中断上下文是完成的什么操作,以STM32为例,都有哪些寄存器被保存
    • STM32 F1和F4的区别
    • Cotex-M系列使用浮点运算对STM32中断效率会产生什么影响
    • STM32常见寄存器:R13(SP,堆栈指针),R14(LR,连接寄存器),R15(PC程序计数器)作用
    • 什么是大小端模式

    问驱动程序里面,如果有一个buffer,在不同场景下需要定义不同大小,怎么办?

    *、芯片选型考虑哪些因素?

    *、系统用了哪些外设?

    *、摁键防抖如何实现,该线程优先级如何设置?

    通信协议

    单片机类的

    *、对哪些通信接口熟悉?介绍一下SPI;

    4.通信协议,SPI IIC

    信号量和互斥量,用互斥量实现信号量值为10的情况

    5、相关的通信协议I2C;SPI;串口有没有用过
    6、讲一下串口通信协议,串口通信如何校验,原理

    项目中有没有用到I2C,主要用在哪方面,讲一下选择I2C的原因

    \9. Uart是怎么样的接口

    \10. Uart异步,不需要时钟,那为什么还要设定波特率

    \11. Spi跟uart在使用上有什么区别

    \12. Spi和uart需不需要区分主从

    \13. Spi的从是否可以主动读写主的数据,怎么做到的

    \14. 写iic、spi、uart驱动需要哪些注意的地方

    \15. Iic、spi、uart接收方式有三种,轮询,中断和DMA,如果是中断收到的数据要谁去申请谁去释放

    \16. 中断里数据往一个buffer去放,这个buffer要谁去申请

    SPI四种模式

    串口发送一个字节多少位

    在做硬件驱动的时候,碰到的比较困难的问题? 项目中有制定通讯协议,就问有出现过什么通讯错误,出现错误了怎么办?通讯丢失怎么办?

    • Uart异步,不需要时钟,那为什么还要设定波特率
    • SPI有哪四种工作模式:根据极性和相位组合有四种模式

    简单说一下spi协议,spi协议最大传输速度。

    IIC协议内容、IIC协议的最大通信速率、你觉得什么因素限制了IIC速度,

    spi协议

    3.项目中用到了spi,spi有几种工作模式,简单介绍一下。

    3.SPI是什么?有几条线?几种模式?

    4.使用IO模拟过SPI吗?

    网络协议

    这是C++岗位的

    TCP,UDP,稳定性,区别,适用场景。

    7.路由相关问题

    1.问TCP,UDP使用,在项目里面有没有用过,怎么用,三次握手,四次挥手,为什么断开连接是四次?

    2.问一方断开,另一方还连接的情况,是否可以长期存在?调用什么函数断开连接?有没有只断开一方连接的函数?

    3.问三次握手为什么ACK信号是SYN信号值+1?

    、5.问阻塞,非阻塞,epoll,多路复用。

    6.问到TCP服务器客户端编程,怎么处理多个客户端?

    7.问到http搜索百度,有哪些过程?

    嵌入式经典通信总线协议精讲

    UART协议

    UART是低位先发的 LSB在前

    通讯基础

    单工和双工

    单工就是只能A发到B

    双工就是A能发B,B也可以发给A

    • 半双工A-B 或者B-A 只能瞬间进行一项
    • A 发B同时B B也可以发给A

    在这里插入图片描述

    波特率

    波特即指每秒传输1个码元符号(通过不同的调制方式,可以在一个码元符号上负载多个bit位信息),1比特每秒是指每秒传输1比特(bit)。

    在这里插入图片描述

    UART帧格式

    每秒发送多少位

    UART在通信空闲的时候是高电平。

    在这里插入图片描述

    串口为什么一次发的比特数少?时钟不同步,所以少发一点,减少累计误差。

    一些底层原理

    发送数据和接受数据包含FIFO缓冲队列和数据移位器。

    发送时:传送的数据写入缓冲器FIFO,然后复制到传输移位器。

    接收时: 传送的数据写入缓冲区FIFO,然后复制到传输移位器。

    寄存器

    在这里插入图片描述

    !!!设置寄存器的实例

    实例1

    下面是设置为0X22

    **!!!**就是设置寄存器先是与0 相"与"就会让相应的位置清零。然后再使用与1 想或的方式置为相应位置。

    在这里插入图片描述
    在这里插入图片描述

    实例2

    在这里插入图片描述

    !!!读某个寄存器的方式

    在这里插入图片描述

    寄存器与上一个对应的位置为1 的

    在这里插入图片描述

    输入输出重定向

    发送字符串的函数,根据\0判断字符结束
    在这里插入图片描述

    RS232、RS485协议

    是电气方面的协议

    是串口的加强版

    RS232

    纯电路方便的,编程和串口没有区别
    在这里插入图片描述

    RS485

    RS485的不同

    RS485是串口在电气方面的改进,使用差分的方式传输信号。

    因为使用两脚差分,所以485只能半半双工,不能同时双向传输了,编程也会和串口有点不同

    而且485电平也是兼容串口电平的
    在这里插入图片描述
    在这里插入图片描述

    两线的485是半双工的

    在这里插入图片描述

    485的优势

    在这里插入图片描述

    485的主从机制可以参考IIC

  • 相关阅读:
    AI-多模态-2021:DALL-E模型【文本生成图像工具】【OpenAI】
    public,private,protected,default的区别
    北大肖臻老师《区块链技术与应用》系列课程学习笔记[2]比特币的共识协议
    Flux、Mono、Reactor 实战(史上最全)
    2022数学建模国赛如何安排进度?川川学长精心讲解
    python--Matplotlib数据可视化基础
    Reflections一个强大的类扫描工具介绍
    基于Spring Boot的旅游信息推荐信息系统设计与实现(源码+lw+部署+讲解)
    【docker/K8S】docker/K8S安装mysql的坑-20220815
    基于Kubesphere容器云平台物联网云平台Devops实践
  • 原文地址:https://blog.csdn.net/qq_46187594/article/details/142061035