《嵌入式系统》课程选择题考点梳理

嵌入式考点

单选题

嵌入式系统基础

  1. 嵌入式系统是以应用为中心,以计算机技术为基础,软件、硬件可裁剪,以适用于应用系统对功能、可靠性、成本、体积、功耗等要求严格的专用计算机系统

  2. 嵌入式系统的英文名称是Embedded System

  3. 进行嵌入式系统开发,通常采用的模式是宿主机-目标机开发模式

  4. 嵌入式操作系统有多种,包括:Android、μc/os-III等等

  5. 意法半导体的STM32F103系列cpu,是基于ARM公司IP核的产品,其使用的ARM内核是Cortex-M3,STM32F1系列微处理器属于M系列

  6. 从存储结构看,STM32处理器属于哈佛结构

  7. STM32处理器内核采用的体系结构是ARMv7

  8. 从指令集来看,stm32处理器是典型的**RISC(精简指令集计算机)**处理器

  9. STM32的栈的操作方式是满递减

  10. 存储区使用小端(Little-Endian)模式存储,对于一个32位的字存储区,可存入字、半字(16位)或字节数据,存入字数据时,字数据的低字节存入字存储区的低地址,字数据的高字节存入字存储区的高地址。

  11. 在stm32微控制器中,属于cortex-m3核心的部件有嵌套向量中断控制器NVIC、systick定时器
    没有通用输入输出端口GPIO、实时时钟RTC、模数转换器ADC

  12. 随着嵌入式系统的发展,作为嵌入式处理器的中央处理器有类型:MPU(嵌入式微处理器)、MCU(嵌入式微控制器)、SoC(系统级芯片)、DSP(数字信号处理器)

  13. stm32系统中,挂在APB2总线上的外设有:GPIOA、ADC1、USART1

  14. stm32微控制器应用开发可以在不同层级进行,它们包括:基于stm32固件库的方式、直接操纵寄存器的方式、基于HAL库的方式

  15. 当不需要处理器全速运行时,stm32可以进入某种低功耗模式,它们可能是:停止模式(stop mode)、睡眠模式(sleep mode)、备用模式(standby mode)

  16. Cortex-M3系列微处理器流水线是3级流水线

  17. 将整型变量a的D6位取反,其他位不变:a ^= ~(1<<6);
    将整型变量a的D6位置1,其他位不变:a |= (1<<6);
    将整型变量a的D6位清零,其他位不变:a &= ~(1<<6);

  18. 启动模式设置: B0 和 B1 用来设置 STM32 的启动方式
    使用加载程序(bootloader)的启动模式,boot1=0,boot0=1

    BOOT 0BOOT 1启动模式说明
    0X用户闪存存储器用户闪存存储器,也就是 FLASH 启动
    10系统存储器系统储存器,用于串口下载
    11SRAM启动SRAM 启动,用于在 SRAM 中调试代码
  19. stm32f103产品线区别于不同的闪存容量,其中高密度(HD)是指256~512KB

  20. stm32驱动程序库中定义了很多常量符号。其中,ENABLE表示“允许”

  21. STM32F103系列微处理器中,APB1总线时钟最高频率是36MHz,APB2总线时钟最高频率是72MHz

  22. ST公司提供的STM32固件库的基本文件中,定义STM32寄存器地址和结构体类型等的底层头文件是stm32f10x.h
    在Keil-MDK环境中,与型号为STM32F103ZET6的CPU配套的启动代码文件为startup_stm32f10x_ld.s

  23. 课内使用的交叉编译环境是keil for ARM

  24. 课内在调试程序时使用的在线仿真器是JLINK仿真器

  25. Keil为嵌入式开发软件

  26. usb转串口的电平转换芯片是:ch340

  27. 支持位绑定方式访问的片上外设,其地址范围的起点为0x4000_0000

STM32的通用I/O端口

  1. 浮空输入模式:
    数据通道中仅接入TTL触发器(作用是将相对缓慢变化的模拟信号变成矩形信号)整形,随后输入输入数据寄存器,该种工作模式未接入任何上拉/下拉电阻。
    模式特点:在该引脚悬空(无信号输入)的情况下,读取该端口的电平是不确定的。
    适用场合:外部按键输入/USART RX引脚。
    输出缓冲器被禁止,施密特触发输入被激活,不接上拉和下拉电阻,出现在I/O脚上的数据在每个APB2时钟被采样到输入数据寄存器

    上拉输入模式:
    与浮空输入模式相比,仅仅是在数据通道前端接入了一个上拉电阻,其余无变化。
    模式特点:在无信号输入时端口电位受上拉电阻钳制,I/O端口输入电平始终保持为高电平;而当端口输入电平为低电平时,I/O端口输入电平为低电平。
    适用场合:需要IO内部上拉电阻输入时,器件的外部中断(IRQ)引脚触发中断条件为下降沿触发/低电平触发,这样在无信号输入时始终保持高电平,如果有事件触发中断IRQ可以输出一个低电平,进而可产生(下降沿/低电平)中断。例如单片无线收发器芯片NRF24L01的IRQ引脚的工作模式即为上拉输入模式。
    输出缓冲器被禁止,施密特触发输入被激活,上拉电阻接通,不接下拉电阻,当I/O引脚无输入信号时,读取到的数据为1,即高电平

    下拉输入模式:
    与浮空输入模式相比,仅仅是在数据通道前端接入了一个下拉电阻,其余无变化。
    模式特点:在无信号输入时端口电位受下拉电阻钳制,I/O端口输入电平始终保持为低电平;而当端口输入电平为高电平时,I/O端口输入电平为高电平。
    适用场合:需要IO内部下拉电阻输入时,器件的外部中断(IRQ)引脚触发中断条件为上升沿触发/高电平触发时,该端口可以选择下拉输入模式。
    输出缓冲器被禁止,施密特触发输入被激活,上拉电阻不接,下拉电阻接通,当I/O引脚无输入信号时,读取到的数据为0,即低电平

    模拟输入模式:
    数据通道不接入任何处理单元(TTL触发器/钳制电阻),直接输入MCU内部的处理单元。
    模式特点:相较于其他输入模式只能读取到逻辑高/低电平(数字量),该模式能读取到细微变化的值(模拟量)。
    适用场合:ADC模拟输入/低功耗下省电。
    输出缓冲器被禁止,禁止施密特触发输入,实现了每个模拟I/O引脚上的零消耗。施密特触发输出值被强置为’0’;上拉和下拉电阻被禁止; I/O引脚的信号交由片上外设(比如ADC)处理。

    推挽输出:
    输出具有驱动能力,当CPU输出逻辑’0’时,I/O端口输出低电平,而当CPU输出逻辑’1’时,I/O端口输出高电平,通常作为普通的GPIO用于驱动LED、数码管等电子元器件或输出控制某个信号。
    输出缓冲器被激活,施密特触发输入被激活,上拉电阻和下拉电阻被禁止,若通过输出数据寄存器输出1,则P-mos管导通,N-MOS管截止,I/O脚得到高电平;输出0,则相反

    开漏输出:
    适合做电流型的驱动,其吸收电流能力较强。当CPU输出逻辑’0’时,I/O端口输出低电平,而当CPU输出逻辑’1’时,该引脚处于开漏,也就是浮空状态(高阻态),如果想输出高电平则必须接入上拉电阻。同时IO口可以由外部电路改变为低电平或不变,即可读IO输入电平变化,实现了I/O端口的双向功能;此外,可以将多路开漏输出的引脚连接到一条线上,通过一个上拉电阻,在不增加任何器件的情况下,形成“与逻辑”关系,这也是I2C,SMBus,等总线判断总线占用状态的原理。
    输出缓冲器被激活,施密特触发输入被激活,上拉电阻和下拉电阻被禁止,输出寄存器上的’0’激活N-MOS,端口得到低电平;而输出寄存器上的’1’将端口置于高阻状态(P-MOS从不被激活)。

    复用推挽输出:
    在STM32中,一个引脚通常可作为普通GPIO来使用,但通常有多个复用模块对应着同一个引脚,那么当这个GPIO作为内置外设引脚时,就叫做复用模式。
    适用场合:常见片内外设(USART TX引脚/SPI/PWM输出等等)

    复用开漏输出:
    与开漏输出特性一致,只不过引脚选择了复用功能。
    适用场合:常见片内外设(I2C/SMBus等等)
    注意事项:当GPIO引脚的主功能为驱动片上外设(如I2C)时,此时也可选择对应推挽/开漏输出模式而不启用复用引脚功能。此外如果有多个复用功能模块对应同一个引脚,只能使能其中之一,其它模块保持非使能状态。
    **开漏输出:**无法真正输出高电平,即高电平时没有驱动能力,需要借助外部上拉电阻完成对外驱动。
    **推挽输出:**可以真正能真正的输出高电平和低电平,在两种电平下都具有驱动能力。

  2. STM32F1芯片的GPIO功能中,用来表示引脚输入电平状态的为GPIOx->IDR寄存器
    为了实现向端口A的D0位写入1,可以操作的寄存器有**GPIOA->BSRR、GPIOA->ODR
    32位配置寄存器:GPIOx_CRL、GPIOx_CRH。**用来选择引脚功能,例如输入或输出
    **32位数据寄存器:GPIOx_IDR、GPIOx_ODR。**用来保存引脚输入电平或输出电平状态
    **32位置位/复位寄存器:GPIOx_BSRR。**用来控制某引脚为1或0
    **16位复位寄存器:GPIOx_BRR。**用来控制某引脚为1或0
    **32位锁定寄存器:GPIOx_LCKR。**用来锁定引脚配置(不允许修改)

  3. 如果要读出微控制器前一次发送给外设的输出数据,应使用GPIO_ReadOutputData()库函数
    STM32库中的GPIO相关库函数中,
    实现从输入端口仅读取某个引脚状态的函数是GPIO_ReadInputDataBit()
    实现设置指定的数据端口位的函数是GPIO_SetBits()
    开启GPIO对应时钟的库函数是RCC_APB2PeriphClockCmd()
    为了实现向端口A的D0位写入1,可以使用的库函数有GPIO_WriteBit()、GPIO_SetBits()

  4. 外设初始化结构类型定义了需要配置的外设参数,对于GPIO_InitTypeDef定义的结构来说,制定GPIO工作模式的成员名是GPIO_Mode,指定GPIO引脚的成员名是GPIO_Pin

  5. STM32通过2个外设总线APB1和APB2连接外设及接口。其中,连接APB2的外设有:
    模拟/数字转换器(ADC)
    通用同步/异步收发器1(USART1)
    通用输入/输出端口(GPIO

  6. stm32的GPIO用于输出时其输出电路有三种响应速度可供选择:2MHz、10Mhz、50Mhz

  7. STM32的GPIO引脚不支持模拟输出,仅有:
    浮空输入/上拉输入/下拉输入/模拟输入;
    开漏输出/推挽式输出;推挽式复用功能/开漏复用功能

  8. 当要使用某个外设时,首先需要启动对应外设的时钟,这是因为:为了降低功耗看,外设的时钟默认是关闭的

  9. 与”GPIOA→ODR &= 0xFFFE”功能类似的语句是“GPIO_ResetBits(GPIOA, GPIO_Pin_0);

  10. GPIO_Cmd(DAC_Channel_1, ENABLE);相应的GPIO引脚应配置的工作方式为模拟输入

STM32中断

  1. 组优先级(抢占)和子优先级(响应)
  2. 调用函数NVIC_PriorityGroupConfig(NVIC_PriorityGroup_3)后,NVIC支持的抢占优先级种类为8种,响应优先级种类为2种
  3. STM32使用4位优先级寄存器,支持16种异常优先级
  4. 中断屏蔽器能屏蔽除了NMI外所有异常和中断
  5. 中断服务程序中,void EXTI9_5_IRQHandler(void)应该与startup_stm32f10x_hd.s文件中的定义保持一致
  6. STM32驱动程序库对许多外设的事件标志或中断标志都设计了获取和清除的函数,
    清除某个EXTI线中断状态的函数是EXTI_ClearITPendingBit()
    获取某个EXTI线中断状态的函数EXTl_GetlTStatus() 检查某个EXTI线是否设置了中断请求(IRQ)标志位
    检查某个EXTI线是否设置了标志位的函数EXTI_GetFlagStatus()
    清除某个EXTI线的标志位的函数EXTI_ClearFlag
  7. 外部中断EXTI信号可以配置为上升沿、下降沿皆可触发中断请求
    外部中断触发模式:上升沿触发 下降沿触发 边沿触发
  8. stm32的中断控制器NVIC可以接收的中断来源包括:NMI不可屏蔽中断、systick定时器、IRQ可屏蔽中断
  9. 若使用GPIO引脚PA0连接的独立按键作为外部中断EXTI源,在进行时钟配置时,应使用的库函数为
    RCC_APB2PeriphClockCmd(RCC _APB2Periph_GPIOA, ENABLE);
    RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE);
  10. 为使自己编写的一段程序每隔1s有一次执行机会,可以拦截的中断是:TIM_IT_Update、systick中断、RTC_IT_SEC
  11. 外部中断响应过程:
    ①处理器暂停当前程序的执行,根据中断向量表跳转到外部中断服务程序EXTIx_IRQHandler()执行,具体执行哪一个哪一个中断服务程序由中断发生的先后顺序及中断的优先级决定。
    ②进入外部中断服务程序后将调用HAL库提供的外部中断通用处理函数HAL_GPIO_EXTI_IRQHandler()。
    ③调用外部中断回调函数HAL_GPIO_EXTI_Callback()完成具体的中断处理函数。
  12. 定时器中断响应过程:
    ①触发中断后,处理器响应更新中断,在启动文件中查找中断向量表,找到定时器x的中断服务程序 void TIMx_IRQHandler(void),并跳转到该函数执行。
    ②定时器 x 的中断服务程序调用定时器中断通用处理函数void HAL_TIM_IRQHandler(TIM_HandleTypeDef *htim)。
    ③在中断通用处理函数中判断中断类型,清除对应的中断标志,然后调用更新中断回调函数 void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim)完成具体的中断处理任务。

STM32的串行通信接口

  1. 双工(Full-Duplex):双工通信允许同时进行双向数据传输。对于串行通信接口,典型的例子是UART。在UART的双工模式中,通信线路中的两根线(TX和RX)分别用于发送和接收数据,因此发送和接收可以同时进行。
    半双工(Half-Duplex):半双工通信允许双向数据传输,但不能同时进行
  2. 进行异步串行通信前,USARTx_TX引脚需要进行GPIO配置。
    在全双工通信制式时,应配置为
    上拉输入GPIO_Mode_IPU的引脚工作模式。
    浮空输入GPIO_Mode_IN_FLOATING的引脚工作模式。
  3. 课内使用的异步串行通信接口标准是RS-232,规定的引脚数可以是9针连接器、25针连接器
  4. 串行异步通信中,
    ****用于指示发送缓冲区为空:USART_FLAG_TXE
    用于指示空闲线路检测:USART_FLAG_IDLE
  5. 在STM32的串行通信中,
    用于获取数据接受或数据发送状态的寄存器是:**USART_SR
    (1)**用于指示接收数据寄存器非空的标志位是:**USART_FLAG_RXNE
    (2)**用于指示一帧传输结束:USART_FLAG_TC
    用于设置USART的波特率(传输速率)寄存器:USART_BRR
    USART控制寄存器1:USART_CR1
    用于存储要发送的数据或接收到的数据:USART_DR
  6. 串口初始化结构类型定义了需要配置的串口通信参数,对于USART_InitTypeDef定义的结构来说,
    指定数据帧中数据位长度的成员:USART_Wordlength
    用于设置校验位:USART_Parity
    用于设置串口的波特率:USART_BaudRate(支持包含小数部分的波特率参数)
    用于设置数据帧中的停止位长度:USART_StopBits
    清除中断挂起位,需要使用的库函数是:USART_ClearTPendingBit()(清除某个EXTI线中断状态)
  7. 串口异步通信需要初始化的参数:波特率、数据位、校验位、停止位
  8. 串行异步通信以字符为单位传输,其字符格式中并非必须包含的是奇偶校验位
    必须包含的是:停止位、起始位、数据位
  9. 如果使用了引脚重映射功能,串行接收引脚USART1_RX使用PB7引脚
    如果未使用引脚重映射功能,串行发送引脚USART1_TX使用PA9引脚
  10. 在某次UART通信任务中,已知协议为“115200-8-N-1-N(波特率115200bps,8个数据位,无奇偶校验位,1个停止位,无硬件流控)”,发送小数点(. 的ASCII值为46)时接收端收到的正确数据帧应为0 00110010 1
  11. 利用STM32的USART接口发送/接收数据,数据发送完毕,会产生TC事件
    当数据从接收移位寄存器进入接收数据寄存器时,会产生RXNE事件
  12. 在某长度测量系统中,需要上位机将测得的长度数据以异步串行通信方式发送给下位机控制的大屏,已知长度值形如1234.58米(结果以10进制数表示,包括小数点,单位固定),为此USART接口初始化配置数据位数(USART WordLength)时,可以选择8位及以上
  13. 在异步串行通信中,数据帧需要以起始位开头,起始位的逻辑状态应该是0
  14. 已知STM32外设总线APB2的时钟为72Mhz,APB1时钟为36Mhz。并调用库函数RCC_ADCCLKConfig(RCC_PCLK2_Div8);
    实现ADC的时钟配置。已知内部温度传感器模拟输入推荐采样时间是17.1us,则调用库函数ADC_RegularChannelConfig(ADC1,ADC_Channel_16,1,参数4);实现规则通道配置时,参数4可选择的最小值是多少?
    ****已知APB2的时钟为72MHz,设置ADC的时钟为APB2时钟的1/8,ADC的时钟就是9MHz,内部温度传感器的推荐采样时间是17.1us,需要找到一个采样时间配置,其对应的采样周期大于或等于17.1us,而17.1us对应的ADC时钟周期数大约是154个,找到一个大于或等于这个值的选项
  15. stm32有5个串行通信口USART1、USART2、USART3、UART4、UART5,均支持同步通信和异步通信
  16. stm32系统中,挂在APB1总线上的串口通信口:USART2、USART3、UART4、UART5
  17. 为了保证通信的可靠性,两台电脑通过串口进行异步通信需要使用联络信号,此时,需要使用的符合RS-232标准的引脚是
    DTR、RxD、GND、DSR、RTS、TxD、CTS
  18. 异步串行通信传输速度的描述:
    比特率是数字信号的传输速率,它用单位时间内传输的二进制代码的有效位(blt)数来表示,其单位为每秒比特数bits(bps)
    波特率指数据信号对载波的调制速率,它用单位时间内载波调制状态改变次数来表示,其单位为波特(Baud)。
    只有当两相调制(单个调制状态对应1个二进制位)的时候,比特率才等于波特率
  19. 波特率的计算方法: T x / R x 波特率 = f C K ( 16 ∗ U S A R T D I V ) Tx/Rx波特率=\frac{f_{CK}}{(16*USARTDIV)} Tx/Rx波特率=(16USARTDIV)fCK
    USARTDIV:无符号的定点数
    FCK:串口的时钟,注意区分APB2和APB1两条总线

STM32的定时器

  1. 通常具有3个通用定时器(TIM2、TIM3、TIM4)和1个高级定时器(TIM1)
  2. 开启定时器TIM1时钟,应使用的函数为RCC_APB2PeriphClockCmd()
    开启定时器TIM2时钟,应使用的函数为RCC_APB1PeriphClockCmd()
  3. 通用定时器的计数方式包括:向下计数、中央对齐、向上计数
    位于低速的APB1(32MHz)总线上**,定时器位数16位**
    有4个独立通道,通道可以用作输入捕获、输出比较、PWM生成(边缘或中间对齐模式)、单脉冲模式输出
  4. 时基单元:计数器寄存器TIMx_CNT、预分频器寄存器TIMx_PSC、自动装载寄存器TIMx_ARR
  5. RTC 产生中断,秒中断,闹钟中断,溢出中断。RTC内部的可编程计数器是32位
  6. stm32的定时器中,假设预分频器输入时钟CK_PSC=72Mhz,若打算利用定时器产生定时中断,控制LED1以2hz的频率闪烁则可实现该效果的Psc预分频值和ARR自动重装载值应为35999=36000-1,ARR自动重装载值为1000-1,则计数器计满/减空导致的输出信号频率为:72000000/(PSC+1)/(ARR+1)=2Hz,用此信号申请中断,即500ms中断一次;
    Psc=7200-1,ARR=5000-1,可实现同样效果
  7. stm32的实时时钟RTC不但能够记录每天24小时的时钟,还可以记录年月日的信息。
  8. 在STM32F103系列微处理器中,系统计时器(SysTick)是24位的,到0时,将从RELOAD寄存器自动重载定时初值,Systic定时器被捆绑在NVIC中,用于产生Systick异常,当在其他定时器中使用delay时需要调整Systick的抢占优先级
  9. 为了实现周期性定时,需要拦截的中断类型为TIM_IT_Update
  10. PWM是脉冲宽度调制
  11. 控制LED实现呼吸灯效果所用的核心功能是PWM
  12. PWM轮询方式启动函数HAL_TIM_PWM_Start
    捕获比较寄存器设置函数**__HAL_TIM_SET_COMPARE**
  13. 在STM32中,
    ARR(自动重载寄存器)将决定IO输出引脚波形的周期
    CCR(捕获/比较寄存器)用于控制PWM的占空比(占空比的计算公式:Duty = CCR / (ARR+1)×100%)。
    PWM的频率可以根据定时器的
    预分频系数
    重载值
    参数进行计算和设置。
  14. 可以作为STM32F1系列芯片系统时钟的时钟源的是HSI、HSE
    RTC时钟源:HSE、LSE、LSI
  15. 计数器时钟有四种时钟源:①内部时钟CK_INT②外部时钟模式1:外部输入脚Tix③外部时钟模式2:外部触发输入ETR④内部触发输入ITRx
    定时时间的计算公式:T = (PSC +1)×(ARR +1)/CK_PSC
  16. 溢出时间Tout的计算公式:Tout = (PSC+1)(ARR+1)/Tclk
  17. 叙述使用定时器刷新多位数码管方案。
    定时器刷新多位数码管方案:定时器每间隔较短的固定时间进入中断服务函数中,根据标识符选择某一位数码管数字点亮,由于人眼的视觉残留效果,实现定时器刷新多位数码管的功能。
    相比于循环刷新,采用定时器有什么优点?
    优点:①提高单片机的执行效率。②由于是用中断的方式刷新数码管,所以相比较delay函数刷新来说,数码管不会受到按键消抖的影响而产生闪烁,也不会因为松手检测而导致数码管显示停止。

STM32的模拟接口

  1. AD模数模块(Analog-to-Digital Converter),即模拟/数字转换器,主要功能是将连续变量的模拟信号转换为离散的数字信号。
  2. 数字到模拟转换器(Digital-to-Analog Converter,简称DAC)是一种电子器件或电路,将数字信号转换为相应的模拟信号。DAC将数字信号的离散数值转换为模拟信号的连续变化,使得数字系统能够与模拟系统进行接口和互动。
    STM32 ADC采样频率是指ADC模块对输入信号进行转换的速率,通常以每秒采样次数(Samples per Second,SPS)来表示。它表示ADC在单位时间内对输入信号进行采样和转换的次数。
  3. STM32F103ZET6的模拟接口包含3个ADC1个DAC
  4. 为了保证ADC转换结果的正确性,除了要进行校准之外,还需要执行while(!ADC_GetFlagStatus(ADC1, ADC_FLAG_EOC));
    该语句的作用是等待转换结束
  5. STM32的ADC时钟(ADCCLK)不能超过14Mhz
  6. stm32内置的ADC转换时间可编程,若采样一次至少要用14个ADC时钟周期,而ADC的时钟频率最高为14Mhz,则它允许的采样时间最短为1μs
    采样时间(T_samp)与ADC时钟周期(T_adc_clk)之间的关系是:T_samp = N * T_adc_clk,其中,N是采样所需的时钟周期数,T_adc_clk是ADC时钟周期的时间长度
  7. 如果某ADC的数字量输出为8位,模拟电压输入范围为0–5v,则输出数字量发生1bit的变化,对应的模拟输入约为20mv,输出12位二进制数可以分辨的最小模拟电压为1.22mv
    8位的数字量意味着有2^8 = 256个可能的值,从0到255。这些值代表了模拟电压输入范围内的所有可能值。当输出数字量发生1bit的变化时,模拟输入电压大约变化了多少,可以通过将5V除以256来得到。
  8. STM32F103芯片ADC功能规则组最多包含16个通道,1个数据寄存器
    STM32F103芯片ADC功能注入组最多包含4个通道,有4个数据寄存器
    规则通道组
    ,相当于正常运行的程序,最多16个通道,且数据寄存器只有1个,当多通道转换时,采取DMA方式,防止覆盖。
    注入通道组,相当于中断,最多4个通道,且数据寄存器有4个
  9. ADC转换方式:STM32F1的ADC的各通道可以单次、连续、扫描或者间断模式执行
  10. ADC中断:规则和注入组转换结束时能产生中断,ADC1和ADC2中断映射在同一个中断向量上,ADC3的中断有自己的中断向量。
  11. STM32F10x集成的A/D的分辨率是12位
    ADC的转换公式: D i g i t a l V a l u e = I n p u t V o l t a g e − V R E F − V R E F + − V R E F − × 2 R e s o l u t i o n Digital Value =\frac{Input Voltage-V_{REF-}}{V_{REF+}-V_{REF-}} \times 2^{Resolution} DigitalValue=VREF+VREFInputVoltageVREF×2Resolution

    Digital Value 是ADC输出的数字量
    Input Voltage 是输入的模拟电压
    V_{REF+} 是ADC的正参考电压,取决于具体配置
    V_{REF-} 是ADC的负参考电压,通常是0V
    Resolution 是ADC的分辨率(位数),12位
    例如:用stm32的ADC1对0–3.3v的模拟电压进行采样转换,当模拟电压为1.65v时,对应数字量为0x800
  12. 某GPIO引脚复用为ADC功能输入引脚时,该引脚应使用模拟输入工作模式
  13. STM32的ADC1除了支持外部模拟输入,还可以支持两个内部信号源,其中一个来自内部的温度传感器
  14. 数字信号处理中,为了能够从采样后的信号中无失真地复现原始信号,采样频率(f_s)必须满足香农-奈奎斯特采样定理(Shannon-Nyquist Sampling Theorem),即采样频率必须大于或等于信号中最高频率分量(f_max)的两倍
    如果已知待测模拟信号的最高频率分量为60Hz,则采样后的信号复现原始信号的采样频率为120Hz以上
  15. ADC采样时间:TCONV = 采样时间+12.5T
  16. STM32的DAC支持的数字量写入方式为12位数据右对齐、12位数据左对齐、8位数据右对齐(最多12位)
  17. stm32的ADC模块特点:12位分辨率主次逼近式A/D转换、具有内置的ADC自校准能力、只有ADC1可以连接连个内部信号源
    不支持正负电压的采样测量
  18. 理论上,只要cpu将按照一定规律变化的数字量提供给DAC,它就可以实现任意波形发生器。除此之外,stm32的DAC还可以通过硬件机制快速实现特殊波形,它们是三角波、噪声波
  19. MCU测量外部电压使用的片上外设模块是ADC,精度是12位,测量电压范围是0-3.3V
    测量值MeasureVal与电压值VolVal的计数公式:*VolVal = MeasureVal 3.3/4095
  20. ADC转换时间:最大转换速率1μs
    ADC时钟配置:不能让ADC时钟超过14MHz,否则可能不准
  21. ADC转换结果支持左对齐或右对齐方式存储在16位数据寄存器
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值