2024stm32串口不够用怎么办

2024stm32串口不够用怎么办嵌入式面试题(STM32部分)文章目录嵌入式面试题(STM32部分)前言一、寄存器进行位操作二、STM32资料一、常用选择题二、填空三、简答题1、什么是嵌入式系统?嵌入式系统一般由哪几部分构成?2、ST

嵌入式面试题(STM32部分)   文章目录   嵌入式面试题(STM32部分)前言一、寄存器进行位操作二、STM32资料一、常用选择题二、填空三、简答题1、什么是嵌入式系统?嵌入式系统一般由哪几部分构成?2、STM32共有那几种基本时钟信号?3.串口数据接收是怎么处理的?4、简述嵌套向量中断控制器(NVIC)的主要特性。 FreeRTOS:1.简述一下什么是RTOS系统2.在任务中怎么进行数据传输?什么方式?3.阐述信号量的作用,信号量的类型4.FreeRTOS有多少个优先级?任务优先级和系统优先级是什么关系?5.如何处理优先级反转问题?   前言   一、寄存器进行位操作   1,嵌入式系统总是要用户对变量或寄存器进行位操作。给定一个整型变量a,写两段代码,第一个设置a的bit 3,第二个清除a 的bit 3。在以上两个操作中,要保持其它位不变。   对这个问题有三种基本的反应   1). 不知道如何下手。该被面者从没做过任何嵌入式系统的工作。   2). 用bit fields。Bit fields是被扔到C语言死角的东西,它保证你的代码在不同编译器之间是不可移植的,同时也保证了的你的代码是不可重用的。我最近不幸看到Infineon为其较复杂的通信芯片写的驱动程序,它用到了bit fields因此完全对我无用,因为我的编译器用其它的方式来实现bit fields的。从道德讲:永远不要让一个非嵌入式的家伙粘实际硬件的边。   3). 用 #defines 和 bit masks 操作。这是一个有极高可移植性的方法,是应该被用到的方法。最佳的解决方案如下:   一些人喜欢为设置和清除值而定义一个掩码同时定义一些说明常数,这也是可以接受的。我希望看到几个要点:说明常数、|=和&=~操作。   访问固定的内存位置(Accessing fixed memory locations) C/C++ Development   ————————————————   版权声明:本文为CSDN博主「翟羽嚄」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。   原文链接:https://blog.csdn.net/mao_hui_fei/article/details/   二、STM32资料   一、常用选择题   1.Cortex-M处理器采用的架构是( D )   (A)v4T (B)v5TE (C)v6 (D)v7   2.NVIC可用来表示优先权等级的位数可配置为是( D )   (A)2 (B)4 (C)6 (D)8   3.Cortex-M系列正式发布的版本是( A )   (A)Cortex-M3 (B)Cortex-M4 (C)Cortex-M6 (D)Cortex-M8   4.下面是Context-M3处理器代码执行方式的是( A )   (A)特权方式 (B)普通方式 (C)Handle方式 (D)Thread方式   5.下面是Context-M3处理器的工作模式的是( A )   (A)Thread模式 (B)Thumb模式 (C)Thumb-2模式 (D)Debug模式   6.下列是Cortex – M3处理器可以使用的堆栈的栈是( B )   (A)线程栈 (B)进程栈 (C)多线程栈 (D)空栈   10.Cortex – M3的存储格式中专用外设总线区域可以使用( A )   (A)小端格式 (B)大端格式 (C)小端或大端格式 (D)没有正确答案   11.每个通用I/O端口有( )个32位的配置寄存器,( )个32位的数据寄存器,( )个32位的置位/复位寄存器,( )个16位的复位寄存器,(B )个32位的锁定寄存器   (A)2,1,2,1,1 (B)2,2,1,1,1 (C)2,2,2,1,1 (D)2,2,1,2,1   12.( A )寄存器的目的就是用来允许对GPIO寄存器进行原子的读/修改操作   (A)GPIOX_BSRR和GPIOX_BRR (B)GPIOX_CRL和GPIOX_CRH(C)GPIOX_BSRR和GPIOX_LCKR (D)GPIOX_IDR和GPIOX_ODR   13.所有的GPIO引脚有一个内部微弱的上拉和下拉,当它们被配置为( A )时可以是激活的或者非激活的   (A)输入 (B)输出(C)推挽 (D)开漏   14.端口输入数据寄存器的地址偏移为( B )   (A)00H (B)08H (C)0CH (D)04H   16.端口输出数据寄存器的地址偏移为( C )   (A)00H (B)08H (C)0CH (D)04H   17.每个I/O端口位可以自由的编程,尽管I/O端口寄存器必须以( D )的方式访问   (A)16位字 (B)16位字节 (C)32位字节 (D)32位字   22.向量中断控制器最多可支持( C )个IRQ中断   (A)127 (B)128 (C)240 (D)255   23.系统控制寄存器 NVIC 和处理器内核接口紧密耦合,主要目的是(C )   (A)结构更紧凑,减小芯片的尺寸   (B)连接更可靠,减小出错的概率   (C)减小延时,高效处理 最近发生的中断   (D)无所谓,没有特别的意思,远一点也没有关系   24.关于中断嵌套说法正确的是( B )   (A)只要响应优先级不一样就有可能发生中断嵌套   (B)只要抢占式优先级不一样就有可能发生中断嵌套   (C)只有抢占式优先级和响应优先级都不一才有可能发生中断嵌套   (D)以上说法都不对   26.中断屏蔽器能屏蔽( B )   (A)所有中断和异常 (B)除了NMI外所有异常和中断   (C)除了NMI、异常所有其他中断 (D)部分中断   27.PWM是( A )   28.(A)脉冲宽度调制 (B)脉冲频率调制 (C)脉冲幅度调制 (D)脉冲位置调制   29.要想使能自动重装载的预装载寄存器需通过设置TIMx_CR1寄存器的( B )位   (A)UIF (B)ARPE (C)UG (D)URS   30.以下对于STM32 ADC描述正确的是(B )   (A)STM32 ADC是一个12位连续近似模拟到数字的转换器   (B)STM32 ADC是一个8位连续近似模拟到数字的转换器   (C)STM32 ADC是一个12位连续近似数字到模拟的转换器   (D)STM32 ADC是一个8位连续近似数字到模拟的转换器   31.ADC转换过程不含哪项( D )   (A)采样 (B)量化 (C)编码 (D)逆采样   32.ADC转换过程正确的是( A )   (A)采样—量化—编码(B)量化—采样—编码   (C)采样—编码—量化(D)编码—采样—量化   33.下列哪项不是ADC转换器的主要技术指标( B )   (A)分辨率 (B)频率 (C)转换速率 (D)量化误差   37. 以下为 GPIO 端口配置寄存器的描述,在 GPIO 控制 LED 电路设计时,要使最大输出速度为 2MHz ,应该设置 MODE[1:0] 值为( C )   ( A ) 00 ( B ) 01   (C)10 (D) 11   50.DMA控制器可编程的数据传输数目最大为( A )。   A.65536 B.65535   C.1024 D.4096   51.STM32中,1个DMA请求占用至少(B )个周期的CPU访问系统总线时间。   A.1 B.2   C.3 D.4   52.STM32的USART根据( A)寄存器M位的状态,来选择发送8位或者9位的数据字。   A.USART_CR1 B.USART_CR2   C.USART_BRR D.USART_CR3   53.下面不属于STM32的bxCAN的主要工作模式为(C )。   A.初始化模式 B.正常模式   C.环回模式 D.睡眠模式   54.和PC系统机相比嵌入式系统不具备以下哪个特点( C )。   A、系统内核小 B、专用性强   C、可执行多任务 D、系统精简   55.嵌入式系统有硬件和软件部分构成,以下( C)不属于嵌入式系统软件。   A. 系统软件 B.驱动 C. FPGA编程软件 D.嵌入式中间件   61.ARM Cortex-M3不可以通过(D )唤醒CPU。   A.I/O端口 B.RTC闹钟   C.USB唤醒事件 D.PLL   62.STM32嵌套向量中断控制器(NVIC)具有( A) 个可编程的优先等级。   A.16 B.43   C.72 D.36   64.STM32的外部中断/事件控制器(EXTI)支持(C )个中断/事件请求。   A.16 B.43   C.19 D.36   65.STM32的USART根据(A )寄存器M位的状态,来选择发送8位或者9位的数据字。   A.USART_CR1 B.USART_CR2   C.USART_BRR D.USART_CR3   66.DMA控制器可编程的数据传输数目最大为(A)。   A.65536 B.65535   C.1024 D.4096   67.每个DMA通道具有(A )个事件标志。   A.3 B.4   C.5 D.6   68.STM32中,1个DMA请求占用至少( B)个周期的CPU访问系统总线时间。   A.1 B.2   C.3 D.4   二、填空   1.STM32的所有端口都有 外部中断能力。当使用 外部中断线 时,相应的引脚必须配置成 输入模式 。   2.STM32具有单独的位设置或位清除能力。这是通过 GPIOX_BSRR 和 GPIOX_BRR 寄存器来实现的。   3.当STM32复位后, HSL振荡器 将被选为系统时钟。当时钟源被直接或通过PLL间接作为系统时钟时,它将不能被停止 。   只有当目标时钟源准备就绪了(经过启动稳定阶段的延迟或PLL稳定),才可以从一个时钟源切换到另一个时钟源。在被选择时钟源没有就绪时,系统时钟的切换不会发生。   三、简答题   1、什么是嵌入式系统?嵌入式系统一般由哪几部分构成?   嵌入式系统(Embedded system),是一种“完全嵌入受控器件内部,为特定应用而设计的专用计算机系统”,   由硬件层、中间层、系统软件层和应用软件层组成。   硬件层中包含嵌入式微处理器、存储器(SDRAM、ROM、Flash等)、通用设备接口和I/O接口(A/D、D/A、I/O等)。在一片嵌入式处理器基础上添加电源电路、时钟电路和存储器电路,就构成了一个嵌入式核心控制模块。其中操作系统和应用程序都可以固化在ROM中。   硬件层与软件层之间为中间层,也称为硬件抽象层(Hardware Abstract Layer,HAL)或板级支持包(Board   Support   Package,BSP),它将系统上层软件与底层硬件分离开来,使系统的底层驱动程序与硬件无关,上层软件开发人员无需关心底层硬件的具体情况,根据BSP   层提供的接口即可进行开发。该层一般包含相关底层硬件的初始化、数据的输入/输出操作和硬件设备的配置功能。   BSP具有以下两个特点: 硬件相关性:因为 嵌入式实时系统的 硬件环境具有应用相关性,而作为上层软 件与硬件平台之间的接口,BSP需要为   操作系统提供操作和控制具体硬件的方法。 操作系统相关性:不同的操作系统具有各自的软件层次结构,因此,不同的操作系统具有特定的硬件接口形式。   BSP的另一个主要功能是硬件相关的设备驱动。硬件相关的设备驱动程序的初始化通常是一个从高到低的过程。尽管BSP中包含硬件相关的设备驱动程序,但是这些设备驱动程序通常不直接由BSP使用,而是在系统初始化过程中由BSP将他们与操作系统中通用的设备驱动程序关联起来,并在随后的应用中由通用的设备驱动程序调用,实现对硬件设备的操作。与硬件相关的驱动程序是BSP设计与开发中另一个非常关键的环节。   系统软件层由实时多任务操作系统(Real-time Operation System,RTOS)、文件系统、图形用户接口(Graphic User Interface,GUI)、网络系统及通用组件模块组成。RTOS是嵌入式应用软件的基础和开发平台。   2、STM32共有那几种基本时钟信号?   在STM32中,有五个时钟源,为HSI、HSE、LSI、LSE、PLL。   ①、HSI是高速内部时钟,RC振荡器,频率为8MHz。   ②、HSE是高速外部时钟,可接石英/陶瓷谐振器,或者接外部时钟源,频率范围为4MHz~16MHz。   ③、LSI是低速内部时钟,RC振荡器,频率为40kHz。   ④、LSE是低速外部时钟,接频率为32.768kHz的石英晶体。   ⑤、PLL为锁相环倍频输出,其时钟输入源可选择为HSI/2、HSE或者HSE/2。倍频可选择为2~16倍,但是其输出频率最大不得超过72MHz。   3.串口数据接收是怎么处理的?   串口数据处理有两种方式:   1.通过串口中断接收到数据后,将数据放置环形缓存或队列中,待数据处理函数进行处理时进行处理。(RTOS)   2.通过轮询,时间片方式调度串口寄存器判断是否有数据,有数据则放入缓存待处理。(裸机)   4、简述嵌套向量中断控制器(NVIC)的主要特性。   级别关系是: 抢占式优先级 > 响应优先级 > 中断表中的排位顺序。只有在上一级优先级相同时下一级优先级才会起作用。   DMA有什么用?   有多少个DMA资源?   数据从什么地方送到什么地方?   ————————————————   版权声明:本文为CSDN博主「飞奔的小牛」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。   原文链接:https://blog.csdn.net/weixin_/article/details/   FreeRTOS:   1.简述一下什么是RTOS系统   FreeRTOS为例,RTOS系统是以抢占优先级为主,时间片为辅实现任务调度的操作系统,主要核心上实现的是任务调度的功能,使任务具有实时性。   2.在任务中怎么进行数据传输?什么方式?   任务间数据传输一共有三种形式,用的最多的是消息队列,其次是全局变量和信号量。   1.消息队列发送数据的方式可以是发送数据本身和发送数据的地址指针。   2.全局变量使用供所有任务和处理,但全局变量占用内存较多,而且不好管理。   3.信号量一般作为标志位使用。   3.阐述信号量的作用,信号量的类型   信号量共有三种,二值信号量、计数信号量、互斥信号量,常用的是二值信号量和互斥信号量。   信号量本质上都是深度为1的消息队列。   二值信号量通常在中断中作为标志位使用,起到线程同步的作用。   互斥信号量作为互斥锁使用。防止不同线程访问同个内存。   4.FreeRTOS有多少个优先级?任务优先级和系统优先级是什么关系?   FreeRTOS一共有32个任务优先级,但实际使用的优先级个数通过系统设置使用。   系统优先级NVIC基于RAM架构,优先级最高,是一切中断的基石。任务优先级基于FreeRTOS,和系统优先级无关。   5.如何处理优先级反转问题?   https://www.sigusoft.com/p/2fcbf47f54e4   ————————————————   版权声明:本文为CSDN博主「丶Heart」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。   原文链接:https://blog.csdn.net/sigusoft_/article/details/

2024最新激活全家桶教程,稳定运行到2099年,请移步至置顶文章:https://sigusoft.com/99576.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。 文章由激活谷谷主-小谷整理,转载请注明出处:https://sigusoft.com/82029.html

(0)
上一篇 2024年 7月 29日 上午8:12
下一篇 2024年 7月 29日 上午8:16

相关推荐

关注微信