嵌入式面经-STM32

本文详细介绍了STM32中的I2C和SPI通信协议,Cortex-M3内核的中断处理,包括NVIC、各种工作模式和中断优先级,以及PLL锁相环在时钟系统中的应用。
摘要由CSDN通过智能技术生成
  • STM32

    • I2C

      • 是一种串行通信总线。两条线进行通信,数据线(SDA)用于双向传输数据,时钟线(SCL)由主设备产生时钟信号,用于同步数据传输。

      • 起始信号:SCL 为高电平,SDA 从高电平下降到低电平

      • 终止信号:SCL 为高电平,SDA 从低电平上升到高电平

    • SPI

      • 是一种高速、全双工、同步的通信总线,四条线进行通信:时钟信号(SCLK)用于同步数据传输、主设备发送从设备接收数据线(MOSI)、从设备发送主设备接收数据线(MISO)、片选信号线(SS)用于选择需要进行通信的从设备。

      • 起始信号:SS 从高电平到低电平

      • 终止信号:SS 从低电平到高电平

    • SPI有几种模式

      • SPI Mode 0:时钟空闲时为低电平、数据在时钟的上升沿进行采样

      • SPI Mode 1:时钟空闲时为低电平、数据在时钟的下降沿进行采样

      • SPI Mode 2:时钟空闲时为高电平、数据在时钟的下降沿进行采样

      • SPI Mode 3:时钟空闲时为高电平、数据在时钟的上升沿进行采样

    • USART

      • 通用同步/异步收发器,是一种串行通信接口,两根线进行数据传输,发送线(TX)和接收线(RX)

    • M3架构内核的中断

      • ARM Cortex-M3内核,它是一个32位的处理器内核。

      • Cortex-M3内核集成了NVIC也就是嵌套向量中断控制器,用于管理中断请求。

      • Cortex-M3允许为每个中断源分配不同的优先级。在处理中断时,高优先级的中断可以打断低优先级的中断,从而实现实时性要求较高的任务处理。

      • Cortex-M3使用中断向量表来存储中断处理函数的地址。当中断发生时,处理器会自动跳转到相应的中断处理函数(用户定义的函数)执行。

      • 外部事件(如按键按下、传感器信号变化等)或内部事件(如定时器溢出)可以触发中断。中断处理完成后,需要清除中断标志位,以便处理器能够继续处理其他任务

      • 支持中断嵌套,允许在处理一个中断时响应另一个更高优先级的中断。

    • 中断和异常的区别

      • 中断是指外部硬件产生的一个电信号从CPU的中断引脚进入,打断CPU运行

      • 异常是指软件运行过程中发生了一些必须做出处理的事件,CPU自动产生一个陷入来打断CPU的运行。

    • ARM8个基本的工作模式

      • User:非特权模式,在执行上层的应用程序时处于该模式

        • 除此模式外均为特权模式(高权限)

      • FIQ:当一个高优先级中断产生后将进入该模式

        • 属于异常模式

      • IRQ:当一个低优先级中断产生后将进入该模式

        • 属于异常模式

      • SVC:当复位或执行软中断指令后将进入该模式

        • 属于异常模式

      • Abort:当产生存取异常时将进入该模式

        • 属于异常模式

      • Undef:当执行未定义的指令时将进入该模式

        • 属于异常模式

      • System:使用和User模式相同寄存器集的特权模式

      • Monitor:为了安全而扩展出的用于执行安全监控代码的模式

    • IRQ和FIQ有什么区别

      • IRQ(中断请求)和FIQ(快速中断请求)是两种不同的中断机制

      • IRQ是一种标准的中断请求,用于处理一般的外部设备中断。它具有较低的优先级,并且可以被其他IRQ或FIQ打断。

      • FIQ是一种高优先级的快速中断请求。与IRQ相比,FIQ具有更高的优先级和更短的响应时间。

    • PLL锁相环:是一种反馈控制电路,其核心特点是利用外部输入的参考信号来控制环路内部振荡信号的频率和相位,在STM32的时钟系统中,PLL通常用于倍频,通过提高外部晶振的频率,得到满足系统需要的更高频率的时钟信号。

    • 时钟:时钟系统是单片机运行的基础,为各个功能模块提供时钟信号,推动它们执行相应的指令

      • STM32有五个时钟源:HSI、HSE、LSI、LSE和PLL

        • HSI是高速内部时钟,使用RC振荡器,频率为8MHz

        • HSE是高速外部时钟,可以接石英/陶瓷谐振器,或者外部时钟源

        • LSI是低速内部时钟,同样是RC振荡器,频率为40kHz,提供低功耗时钟

        • LSE是低速外部时钟,接频率为32.768kHz的石英晶体,主要用于提供精确的时钟源,如实时时钟(RTC)

        • PLL是锁相环倍频输出,其时钟输入源可以选择HSI/2、HSE或者HSE/2,倍频可以选择2到16倍

      • 系统时钟(SYSCLK)可以来源于三个时钟源:HSI振荡器时钟、HSE振荡器时钟或PLL时钟

  • 13
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值