嵌入式系统复习要点

目录

1、嵌入式系统的核心部分主要由硬件和软件两部分组成:

2、嵌入式系统硬件:

3、嵌入式处理器从体系上分类,可以分为冯·诺依曼结构和哈佛结构两种:

4、几类常见的嵌入式处理器类型:

5、MCU组成结构:

7、DSP组成结构:

8、SoC组成结构:

9、MPU组成结构:

10、嵌入式系统的开发流程概要:

11、面向硬件的开发模式:

12、面向软件的开发模式:

13、嵌入式应用软件开发过程:

14、ARM处理器的特点:

15、ARM Cortex-M3结构:

16、特权级别和操作模式:

17、特权分级和操作模式间的切换:

18、Cortex-M3存储器系统功能特性:

19、Cortex-M3存储器映射:

 20、位带操作:

21、端模式:

22、中断和异常:

23、低功耗模式:

24、ARM Cortex-M3 指令集:

25、STM32系列微控制器简介:

26、STM32F1命名规则:

27、总线结构:

28、存储空间组织:

29、STM32启动配置:

30、STM的复位模式:

31、STM32的系统时钟:

32、STM32时钟树配置流程:

33、STM32时钟树配置函数:

34、STM32电源:

35、STM电源管理工作模式:

36、微控制器最小系统:

37、基于CMSIS标准的应用软件基本架构:

38、CMSIS 标准软件架构:

39、STM32F10x标准外设库体系结构:

40、STM32F10x标准外设库外设名称缩写定义:

41、GPIO的基本概念:

42、STM32F10x微控制器的GPIO:

43、GPIO的工作模式:

44、STM32 GPIO配置操作:

45、STM32 GPIO位带操作:

46、常用的 GPIO 操作库函数:

47、使用标准外设库函数操作GPIO的一般步骤:

48、STM32F10x 微控制器的 GPIO 提供三种输出速度选项,以便在不同应用场景中调整性能和功耗:

49、中断的基本概念:

50、STM32的嵌套向量中断控制器NVIC:

51、STM32中断优先级判别实例:

52、STM32 NVIC配置常用库函数:

53、STM32的外部中断/事件控制器EXTI:

54、STM32 EXTI常用库函数:

55、STM32的定时器类型、数量与用途:

56、SysTick定时器相关库函数:

57、SysTick定时器的定时时间计算:

58、看门狗的概念与作用:

STM32独立看门狗IWDG:

STM32窗口看门狗WWDG:

两种看门狗区别:

59、STM32 通用定时器:

60、DMA的基本概念:

61、DMA优缺点与应用 :

61、STM32 DMA控制器主要特性:

62、STM32 DMA寄存器:

DMA_CPARx:

DMA_CMARx:

DMA_CNDTRx:

63、STM32 DMA 通道优先级:

64、DMA要点&易错点归纳&例题:

65、串行通信的基本概念:

1、同步通信

2、异步通信

3、单工通信

4、半双工通信

5、全双工通信

6、异步串行通信的波特率

66、异步串行通信相关标准:

1、异步串行通信的帧结构

2、串行通信中的校验与纠错方式

67、USART分数波特率的产生:

68、USART数据帧格式:

69、USART的状态标志和中断:

70、USART配置:

71、SPI总线概述:

72、SPI接口信号:

73、SPI通信互连方式 :

74、SPI工作模式(传输时序):

75、SPI数据传输速率和数据格式:

76、SPI易错点:

77、I2C总线概述:

78、I2C接口信号:

79、I2C总线主要特点:

80、I2C与SPI的简单比较 :

81、I2C易错点:

82、1-Wire单总线概述:

83、1-Wire单总线典型通信流程:

84、利用GPIO模拟1-Wire总线注意点:

85、STM32 FSMC接口概述:

86、STM32 FSMC地址映射:

87、FSMC公用信号:

88、FSMC易错点:

89、模拟数字转换器ADC:

90、模拟数字转换器DAC:

91、CAN总线概述 :

92、STM32 bxCAN:


1、嵌入式系统的核心部分主要由硬件和软件两部分组成:

2、嵌入式系统硬件:

3、嵌入式处理器从体系上分类,可以分为冯·诺依曼结构和哈佛结构两种:

区别:指令和数据的存储位置

4、几类常见的嵌入式处理器类型:

嵌入式微处理器
MPU
嵌入式微控制器
MCU
嵌入式数字信号处理器
DSP
嵌入式片上系统
SoC

5、MCU组成结构:

7、DSP组成结构:

8、SoC组成结构:
 

9、MPU组成结构:

10、嵌入式系统的开发流程概要:

11、面向硬件的开发模式:

12、面向软件的开发模式:

13、嵌入式应用软件开发过程:

14、ARM处理器的特点:

15、ARM Cortex-M3结构:

16、特权级别和操作模式:

17、特权分级和操作模式间的切换:

18、Cortex-M3存储器系统功能特性:

19、Cortex-M3存储器映射:

 20、位带操作:

21、端模式:

绝大多数情况下, 基于 Cortex-M3 的微控制器都使用小端格式。

22、中断和异常:

23、低功耗模式:

24、ARM Cortex-M3 指令集:

25、STM32系列微控制器简介:

26、STM32F1命名规则:

27、总线结构:

APB1 操作速度限于36MHz, APB2 操作于全速 ( 最高可达 72MHz)

28、存储空间组织:

29、STM32启动配置:

STM32F10x 中,有 3 种不同的启动模式,可以通过引脚BOOT[1:0]来选择。

30、STM的复位模式:

STM32 的复位操作共有三种复位方式。

31、STM32的系统时钟:

注意:对于异步通信、定时采样等需要精确定时的应用, HSI 的频率精度是不够的。

32、STM32时钟树配置流程:

33、STM32时钟树配置函数:

RCC_AHBPeriphClockCmd(u32 RCC_AHBPeriph,FunctionalState NewState);//使能或者失能AHB外设时钟
RCC_APB2PeriphClockCmd(u32 RCC_APB2Periph,FunctionalState NewState); //使能或者失能APB2外设时钟
RCC_APB1PeriphClockCmd(u32 RCC_APB1Periph, FunctionalState NewState); //使能或者失能APB1外设时钟

34、STM32电源:

35、STM电源管理工作模式:

36、微控制器最小系统:

最小系统,指使用最少的电子元件使微控制器正常工作的系统。主要包括嵌入式微控制器芯片、电源电路、时钟电路、复位电路和调试接口。

37、基于CMSIS标准的应用软件基本架构:

38、CMSIS 标准软件架构:

39、STM32F10x标准外设库体系结构:

40、STM32F10x标准外设库外设名称缩写定义:

41、GPIO的基本概念:

42、STM32F10x微控制器的GPIO:

注意:STM32上,除特殊功能的管脚外,其他所有的管脚都可以作为GPIO使用。

43、GPIO的工作模式:

口诀:浮空上下模拟入,开推输出赢天下。 开推复用功能多,I2C、USART、SPI便捷多。

44、STM32 GPIO配置操作:

45、STM32 GPIO位带操作:

46、常用的 GPIO 操作库函数:

1、初始化和配置 GPIO:

void GPIO_Init(GPIO_TypeDef* GPIOx, GPIO_InitTypeDef* GPIO_InitStruct);

2、读取 GPIO 引脚输入状态:

uint8_t GPIO_ReadInputDataBit(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin);

3、读取 GPIO 输出数据寄存器:

uint16_t GPIO_ReadOutputData(GPIO_TypeDef* GPIOx);

4、设置 GPIO 输出引脚的状态:

void EXTI_Init(EXTI_InitTypeDef* EXTI_InitStruct);

47、使用标准外设库函数操作GPIO的一般步骤:

示例:

GPIO_InitTypeDef GPIO_InitStructure; //定义GPIO初始化结构体变量
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE); //使能PORTA时钟
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_2; //KEY0对应的引脚
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU; //设置成上拉输入
GPIO_Init(GPIOA, &GPIO_InitStructure); //初始化GPIOA2

48、STM32F10x 微控制器的 GPIO 提供三种输出速度选项,以便在不同应用场景中调整性能和功耗:

  • 2 MHz:低速输出
  • 10 MHz:中速输出
  • 50 MHz:高速输出

49、中断的基本概念:

50、STM32的嵌套向量中断控制器NVIC:

STM32 NVIC Cortex-M3 内核 NVIC 的子集,只使用 CM3 内核NVIC 的一部分。
内核异常中断
可屏蔽中断
同上,可屏蔽中断续表1
同上,可屏蔽中断续表2
NVIC中断优先级及其分组实现

51、STM32中断优先级判别实例:

52、STM32 NVIC配置常用库函数:

注意:整个系统执行过程中,只设置一次中断分组。

53、STM32的外部中断/事件控制器EXTI:

通过 “外部中断 / 事件控制器”(EXTI, External interrupt/event controller 同时监视和检测多个GPIO 管脚上的电平变化。
其特性:
1、 每个 IO 都可以作为外部中断输入;
2、 每个中断 / 事件都可以独立地配置其触发事件(上升沿、下降沿或双边沿),并能够单独地被屏蔽;
3、 每个中断线都有专用的状态位(挂起请求寄存器),保持着其中断请求;
4、 支持多达 20 个软件的中断 / 事件请求;
5、 可以将多达 112 个通用 I/O 引脚映射到 16 个外部中断/事件输入线上;
6、 可检测脉冲宽度小于 APB2 时钟宽度的外部信号。
外部中断/事件控制器结构图

54、STM32 EXTI常用库函数:

55、STM32的定时器类型、数量与用途:

1、高级定时器:包括 2 个 16 位定时器(TIM1、TIM8),支持上/下/上下计数,用于三相 PWM 发生器(电机控制场景)。
2、通用定时器:包括 3~10 个 16 位定时器(TIM2~TIM5,TIM9~TIM14),支持上/下/上下计数,用于输入捕获、输出比较、PWM 和脉冲计数。
3、基本定时器:包括 2 个 16 位向上计数器(TIM6、TIM7),用于产生 DAC 触发信号。
4、看门狗定时器:包括一个 12 位独立看门狗(IWDG)和一个 7 位窗口看门狗(WWDG)。
5、系统时基定时器:一个 24 位 SysTick 定时器,用于产生微秒和毫秒级延时。
6、实时时钟:一个 32 位可编程 RTC 定时器,用于提供实时时钟和日历功能。

56、SysTick定时器相关库函数:

1、初始化SysTick定时器:

void SysTick_Config(uint32_t ticks);

此函数用于初始化SysTick定时器,参数ticks是定时器递减的初始值。在定时器溢出后,会自动重载此值并产生一个系统滴答时钟(System Tick)中断。

注意:ticks的最大值不能超过0x00FFFFFF。

2、获取当前SysTick值:

uint32_t SysTick_GetCurrentValue(void);

3、在使用SysTick定时器时,通常需要实现延时功能。以下是一个使用SysTick定时器实现的毫秒级延时函数示例:

void SysTick_DelayMs(uint32_t ms)
{
    uint32_t ticks = ms * (SystemCoreClock / 1000);
    uint32_t start_tick = SysTick->VAL;

    for (;;)
    {
        uint32_t elapsed_ticks = (start_tick - SysTick->VAL) & 0x00FFFFFF;
        if (elapsed_ticks >= ticks)
        {
            break;
        }
    }
}

此函数接受一个ms参数,表示需要延时的毫秒数。它首先将毫秒数转换为SysTick计数器的滴答数(ticks),然后等待指定的滴答数。

57、SysTick定时器的定时时间计算:

以例题2说明做题关键:

  1. 时钟源:需要知道 Systick 时钟源,本例中为 HCLK,即 72 MHz。
  2. 计数器最大值:Systick 定时器是 24 位递减计数器,所以最大值为 2^24 - 1。
  3. SysTick_Config() 函数:该函数用于配置 Systick 定时器,传入的参数为定时器每次溢出所需的计数。
  4. 溢出时间计算:T = ticks / 时钟频率,其中 T 为溢出时间,ticks 为每次溢出所需的计数。

58、看门狗的概念与作用:

“看门狗”本质是微控制器中的 一个计数器电路 ,它独立于软件进行计数操作,收到“喂狗”信号则复位计数值;若一直未“喂狗” ,导致计数值溢出从而产生复位。

STM32独立看门狗IWDG:

IWDG 是一个独立运行的 12 位递减计数器( downcounter ),当计数值从最大0xFFF 递减到 0 时复位 MCU
IWDG 使用独立时钟源 LSI 40KHz )。
IWDG 具有很高的可靠性,即使主时钟 SYSCLK 发生故障它也仍然有效。

STM32窗口看门狗WWDG:

初始化配置及“喂狗”操作代码

两种看门狗区别:

  1. 时钟源:

    • IWDG:独立看门狗使用独立的低速内部时钟(LSI)作为时钟源,其频率通常为 40 kHz。
    • WWDG:窗口看门狗使用系统时钟(PCLK1)作为时钟源。
  2. 计数器位数:

    • IWDG:独立看门狗具有一个 12 位向下计数器。
    • WWDG:窗口看门狗具有一个 7 位向下计数器。
  3. 工作模式:

    • IWDG:独立看门狗在计数器减至 0 时触发系统复位。要避免复位,需要在计数器溢出前通过软件“喂狗”(更新计数器值)。
    • WWDG:窗口看门狗在计数器减至窗口值(预设范围)内时,软件需要“喂狗”(更新计数器值)。如果在窗口值之外更新计数器或者计数器减至 0,系统将触发复位。这样设计可以检测软件运行过快或过慢的异常情况。
  4. 可靠性:

    • IWDG:由于使用独立的 LSI 时钟,即使主时钟出现问题,IWDG 也能正常工作。因此,IWDG 相对更可靠。
    • WWDG:使用系统时钟作为时钟源,如果系统时钟出现问题,WWDG 的可靠性可能会受影响。

59、STM32 通用定时器:

  1. 要点:

    a. 时钟源选择:确保选择适当的时钟源,并了解其对定时器时钟频率的影响。b. 时基单元配置:设置预分频器、计数器和自动重装载寄存器以生成所需的定时周期。 c. 输入捕获配置:为捕获外部信号设置合适的触发条件(上升沿、下降沿)。 d. 输出比较配置:设置输出比较寄存器的值并选择合适的输出模式(如 PWM)。

  2. 计算例题:

    例题1:假设 STM32 系统时钟为 72MHz,通用定时器 TIM3 使用内部时钟源。配置 TIM3 产生 1kHz 的 PWM 信号。

    解:首先计算预分频器(PSC)和自动重装载寄存器(ARR)的值。假设 PWM 的分辨率为 1000,那么:

    • ARR = 1000 - 1 = 999
    • TIM3 时钟频率 = 72MHz
    • PWM 频率 = TIM3 时钟频率 / ((PSC + 1) * (ARR + 1))
    • 1kHz = 72MHz / ((PSC + 1) * (ARR + 1))
    • (PSC + 1) = 72MHz / (1kHz * (ARR + 1))
    • PSC = 72MHz / (1kHz * (ARR + 1)) - 1 = 72MHz / (1kHz * 1000) - 1 = 71

    配置 TIM3 的 PSC 为 71,ARR 为 999,即可产生 1kHz 的 PWM 信号。

    例题2:使用通用定时器 TIM2 的输入捕获功能测量外部信号的周期。输入信号频率为 5kHz,STM32 系统时钟为 72MHz。

    解:计算预分频器(PSC)的值。要测量 5kHz 信号,TIM2 的时钟频率应足够高,这里假设为 1MHz。

    • TIM2 时钟频率 = 72MHz
    • 目标时钟频率 = 1MHz
    • PSC = (TIM2 时钟频率 / 目标时钟频率) - 1 = (72MHz / 1MHz) - 1 = 71

    配置 TIM2 的 PSC 为 71,使用输入捕获功能测量外部信号周期。计算测量得到的计数值与实际周期的关系:周期 = 计数值 / (1MHz)。

60、DMA的基本概念:

DMA Direct Memory Access ,直接存储器存取),是一种 完全由硬件执行数据交换 的工作方式,用来提供在 外设和存储器之间 或者 存储器和存储器之间 高速数据传输

61、DMA优缺点与应用 :

优点
1、 CPU 利用率高
2、 数据传输效率高
3、 用户软件代码开发效率高

◼ 缺点

1、 在传输时间段内对总线独占
2、 传输数据量过大时,会导致中断延时较长,不适合于实时性强,(硬实时)的应用

◼ 应用

1、 高速、成组数据的传输

61、STM32 DMA控制器主要特性:

DMA 可实现数据传输(存储器与存储器、外设与存储器等)。支持闪存、SRAM、外设的 SRAM 以及 APB1、APB2 和 AHB 外设作为源和目标。共有 12 个通道(DMA1 有 7 个,DMA2 有 5 个)。每个通道连接专用硬件 DMA 请求并支持软件触发。通道优先级可设定(很高、高、中等、低),相等时由硬件决定。

注意:可编程的数据传输数目最大为65535。

62、STM32 DMA寄存器:

DMA_CPARx:

DMA 通道 x 的外设地址寄存器。用于存储 STM32 外设数据寄存器的基地址,作为数据传输的源或目标。


DMA_CMARx:

DMA 通道 x 的存储器地址寄存器。用于存储 STM32 存储器地址,作为数据传输的源或目标。


DMA_CNDTRx:

DMA 通道 x 的传输数量寄存器。用于控制每次 DMA 传输的数据数量,其范围为 0~65535。该寄存器的值会随着传输的进行而减少,当值为 0 时,表示此次数据传输已结束。


上述寄存器用于配置和控制 DMA 通道的数据传输。DMA 通道可以实现不同外设和存储器之间的高速数据传输,而无需 CPU 的干预,从而提高系统的性能。在 STM32 中,DMA1 有 7 个通道(x = 1...7),而 DMA2 有 5 个通道(x = 1...5)。


63、STM32 DMA 通道优先级:

64、DMA要点&易错点归纳&例题:

  1. DMA 传输数据宽度:数据传输宽度指的是 DMA 一次传输的数据位宽。在 STM32 中,DMA 支持字节 (8 位)、半字 (16 位) 和字 (32 位) 三种数据宽度。选择正确的数据宽度是很重要的,否则可能导致数据错误或丢失。

  2. DMA 通道配置过程及关键参数:配置 DMA 通道主要涉及以下步骤和参数:

    • 选择合适的 DMA 控制器和通道。
    • 配置 DMA 通道的数据传输方向 (从外设到存储器或从存储器到外设)。
    • 设置数据传输宽度 (字节、半字或字)。
    • 配置源和目标地址递增模式 (如果需要在多个地址之间传输数据)。
    • 设置循环模式 (如果需要持续传输数据)。
    • 配置优先级 (如果有多个 DMA 通道在同时工作)。
    • 设置 DMA 触发源 (外设事件或软件触发)。
  3. DMA 触发通道:DMA 传输可以由外设事件 (如串口接收完成) 或软件触发。配置正确的触发源是保证 DMA 传输正确执行的关键。

  4. DMA 通道中断请求:DMA 传输完成或发生错误时,可以产生中断请求。通过使能相应的中断并编写相应的中断处理程序,可以实现对 DMA 传输的监控和控制。

  5. DMA 通道错误管理:DMA 在传输过程中可能出现错误,例如数据溢出、传输宽度不匹配等。为了确保系统的稳定运行,应该检查并处理这些错误,通常是通过监测 DMA 的状态寄存器并采取相应的措施 (如清除错误标志、停止传输等)。注意,在配置DMA通道前,需使能DMA时钟。


1、假设我们使用一个 DMA 通道以 8 位数据宽度将一个外设的数据传输到存储器。当 DMA 传输完成时,发现存储器中有 1000 个数据。请问 DMA 传输了多少字节的数据?

答:由于数据宽度为 8 位 (1 字节),DMA 传输了 1000 × 1 = 1000 字节的数据。


2、假设我们使用一个 DMA 通道以 32 位数据宽度从存储器传输数据到外设。我们需要传输 5000 字节的数据。请问需要配置 DMA 传输的数据数量是多少?

答:由于数据宽度为 32 位 (4 字节),所以需要传输的数据数量为 5000 / 4 = 1250。


3、假设我们使用一个 DMA 通道以 16 位数据宽度将一个存储器的数据传输到另一个存储器。传输过程中,DMA 控制器的源地址从 0x2000_0000 递增到 0x2000_012C。请问 DMA 传输了多少字节的数据?

答:源地址递增量为 0x2000_012C - 0x2000_0000 = 0x12C。由于数据宽度为 16 位 (2 字节),所以 DMA 传输了 0x12C × 2 = 0x258 字节的数据。


65、串行通信的基本概念:

选择用 USART 串口作为调试手段 ,可以测试 系统的运行状态。

1、同步通信

同步通信是指在发送端和接收端之间需要同步时钟来进行同步的数据通信方式。即在传输过程中,通信的两端需采用 同 一时钟 来同步传输的数据。

2、异步通信

异步 通信是指发送端和接收端之间 无须同步时钟 的数据通信方式。就是在传输信道的两端(收方和发方)可以用 各自的时钟 ,而不需要用同一个时钟来同步两端的通信事件和通信过程。

3、单工通信

单工通信方式:是指数据只能单向传送,由发送方传输到接收方,任何时候都不能改变数据的传送方向。

4、半双工通信

是指在同一条通路上数据可以双向传输,但在同一时刻这条通路上只能有一个方向的数据在传输,即分时双向传输。

5、全双工通信

全双工通信方式:是指使用不同通路实现数据在两个方向上的同时传输,它要求通信双方都具有独立的接收和发送能力。

6、异步串行通信的波特率

66、异步串行通信相关标准:

1、异步串行通信的帧结构

1、 串行通信中,信息必须经过组装后才能在线路上传输,信息组装的最小形式称为数据帧(Frame )。
2、一个数据帧通常由起始位、数据位、校验位、停止位等 4 个部分组成,由起始位开始,至停止位结束,每帧传输一个字符。
3、 在一个数据帧中,起始位为 1 位,数据位可为 5-9 位,校验位可有可无,而停止位可以是0.5 1 1.5 2 位。

2、串行通信中的校验与纠错方式

67、USART分数波特率的产生:

68、USART数据帧格式:

数据位长度: 8 位或 9

69、USART的状态标志和中断:

70、USART配置:

71、SPI总线概述:

注意:SPI通信最大特点是由主机设备完全控制时钟信号并决定主从设备的通信。

72、SPI接口信号:

73、SPI通信互连方式 :

74、SPI工作模式(传输时序):

区别

75、SPI数据传输速率和数据格式:

模式1、3均是:数据格式为8位数据帧,低位(LSB)在前,高位(MSB)在后;

模式2、4则是:数据格式为8位数据帧,高位(MSB)在前,低位(LSB)在后。

76、SPI易错点:

1、SPI1位于高速APB2总线上,其他的SPI(如SPI2、SPI3)位于APB1总线上。
2、可编程的数据顺序,MSB在前或LSB在前。
3、8或16位传输帧格式选择。

77、I2C总线概述:

由数据线 SDA 和时钟线 SCL 两根信号线构成,以 同步半双工 的方式进行接收或发送数据。

78、I2C接口信号:

注意:由于I2C总线(SCL和SDA)采用集电极开路或漏极开路的输出方式,连接到I2C总线上的任何器件都只能使SCL或SDA置0,因此必须在SCL和SDA上外加上拉电阻,使两根信号线进行置1,才能正确进行数据通信。

79、I2C总线主要特点:

80、I2C与SPI的简单比较 ​​​​​​​:

81、I2C易错点:

1、只有在 SCL 线为低电平期间,才允许 SDA 线上的电平改变状态。
2、 一次完整的I2C数据通信,通常由起动信号、从机地址传输、数据传输和停止信 号组成。
3、数据传输以字节(8 bit)为单位,主设备在SCL线上产生每个时钟脉冲的过程中同时在SDA线上传输一个数据位,并按照高位(MSB)在前、低位(LSB)在后的顺序进行传输。
4、所有的I2C均位于APB1总线上。
5、支持不同的传输速率:标准(最高100 kbps)&快速(最高400 kbps)。
6、在一个字节传输的8个时钟后的第9个时钟期间,接收器必须回送一个应答位(ACK)给发送器。

82、1-Wire单总线概述:

一种半双工串行通信连接总线,它采用单根信号线, 既传输数据位 又传输数据位的定时同步时钟 ,同时又能以 寄生供电 的方式给总线上的器件提供电源。这条 数据线被地址、控制及数据信息复用。

83、1-Wire单总线典型通信流程:

84、利用GPIO模拟1-Wire总线注意点:

85、STM32 FSMC接口概述:

FSMC (Flexible Static Memory Controller) :灵活静态存储控制器。

86、STM32 FSMC地址映射:

87、FSMC公用信号:

88、FSMC易错点:

1、无论外接 8 /16 位宽度设备, FSMC_A[0] 永远连接外部设备的地址 A[0]。
2、驱动SRAM时一般使用模式1或者模式 A。
3、模式A支持读写时序分开设置。
4、 FSMC接口对应的GPIO GPIO端口模式设置:GPIO_Init(); //模式设置为 GPIO_Mode_AF_PP

89、模拟数字转换器ADC:

1、ADC模数转换关键步骤:采样(Sampling)、量化(Quantization)和编码(Coding)。
2、

3、

4、

5、

6、

90、模拟数字转换器DAC:

1、

2、DAC引脚:

3、

4、

5、

91、CAN总线概述 :

控制器局域网络的简称,是一种异步半双工串行通信协议,因其优越的组网方式,实时安全的数据传输能力,强大的纠错能力等优点,具有很高的可靠性,广泛应用于汽车电子、航空航天、工业自动化、船舶、医疗设备、工业设备等领域。

92、STM32 bxCAN:

工作模式

猜你喜欢

转载自blog.csdn.net/flyTie/article/details/131359050