面试(四)

目录

1. 组长安排了一个不可能完成的任务,怎么拒绝?

2.讲一下Freertos的机器人

3. Freertos的中断

4. Freertos功能

5. 树莓派怎么识别二维码?

6. Linux脚本作用?

7. Modbus?

8. freertos的动态创建和静态创建

9. RT-Thread设备框架?

10. MQTT是使用自己的服务器还是云平台

11. TCP,UDP,IP?

12. MQTT

13. 常用总线协议?

14. 自制开发板如何处理电源部分?

15. 使用什么样的的电源管理技术

16. 大功率进来,怎么处理?比如24V?


1. 组长安排了一个不可能完成的任务,怎么拒绝?

首先肯定不能当场拒绝,先肯定得表达对领导信任自己的能力的感谢,再表达自己马上会准备好这个项目的任务规划书。

接下来就是之后的过程:

(1) 准备理由:准备好具体的理由来解释这个任务不可能完成,比如任务难度,任务时间,任务成本等,基于事实和实际情况判断,而不是个人主观判断

(2) 提出解决方案:提出可能的解决方案和替代方案,比如延长截止日期,增加资源,增加团队成员等

(3) 请求反馈:询问组长是否有其他看法或建议

2.讲一下Freertos的机器人

项目要求是:扫描二维码领取任务,实现物料抓取,粗加工,暂存物料。

项目的创新点在:1. 使用freertos操作系统,多线程进行,减少裸机中某些读写模块对主程序的影响2. 识别采用树莓派的opencv库,树莓派在屏幕上显示二维码任务,树莓派和mcu采用串口通信。3.机器人使用磁编码器测得转速,最后转化为线速度,这样我们就能知道机器人的实时速度 4.结构上,我们做了很长时间的规划核设计,并且硬件结构核主控pcb皆是自己制作(1)我们使用麦克纳姆轮,使得机器人行驶,转弯更加方便.(2)我们使用了三个电源,一个给树莓派供电,一个给电机驱动模块供电,一个其他供电,目的主要是防止电机转动时对单片机或树莓派产生影响 (3)车体,我们是采用的三层亚克力板搭成的工训车,全封闭的,防止灰尘或外部环境对主控或其他模块造成影响。(4)还有模块的选择上,F4串口和定时器是最符合这次比赛需求的,以及串口屏和串口舵机(4自由度机械臂),会使得项目程序设计简单合理。

3. Freertos的中断

FreeRTOS中,实际是没有中断的,中断还是由硬件产生。以STM32为例,中断请求的响应还是由STM32的中断服务函数完成,而FreeRTOS在其中的作用可以说成是唤醒某个阻塞或就绪任务。

4. Freertos功能

  1. 内存管理:FreeRTOS提供了内存申请和释放的API,帮助开发者管理动态内存。这对于嵌入式系统来说尤其重要,因为内存资源通常是有限的。
  2. 中断管理:FreeRTOS允许开发者创建和管理中断服务例程(ISR),并且支持中断嵌套和中断优先级设置,以确保系统的响应性和稳定性。
  3. 同步与通信:为了协调任务之间的执行,FreeRTOS提供了多种同步机制,如二进制信号量、互斥量、事件组和队列等。
  4. 软件定时器:FreeRTOS中的软件定时器可以在指定的时间间隔后触发一个动作,这在需要周期性执行某些操作时非常有用。
  5. 系统监控和性能追踪:FreeRTOS提供了工具来监控系统的性能,如任务运行时间统计和堆栈使用情况,帮助开发者优化系统性能。
  6. 低功耗模式:对于需要节能的应用,FreeRTOS支持低功耗模式,可以在没有任务运行时让处理器进入休眠状态。
  7. 设备仿真:FreeRTOS还提供了设备仿真功能,可以在没有实际硬件的情况下进行软件开发和测试。
  8. 任务通知:任务可以通过通知机制来等待某个事件的发生,而不是持续轮询,这样可以提高CPU的使用效率。
  9. 事件组:事件组可以用来同步多个任务,当一组指定的事件发生时,一个或多个任务可以被通知执行。
  10. 队列:队列可以用来在任务之间传递数据,实现生产者和消费者模型,是任务间通信的一种方式。

5. 树莓派怎么识别二维码?

二维码另一个名称是QR Code,本质上是个密码算法。我们使用一个pyzbar的库结合opencv来做一个动态二维码扫描。

6. Linux脚本作用?

1)批量处理,脚本可以批量处理文件,数据或执行一系列命令。

2) 易于维护和更新,相比于直接在终端中输入命令,使用脚本更易于维护和更新,只需修改脚本内容即可。

7. Modbus?

Modbus是主从方式通信,一个总线上只有一个主机,但可以有多个从机(这一点类似于IIC的通讯方式)。简单来说,也就是主机问从机答。问啥呢?主要问两个问题--从机的寄存器(线圈)的数值是多少、主机要求从机修改一下寄存器(线圈)的数值并回答。

8. freertos的动态创建和静态创建

首先举例数组的创建。

int a[10] //静态创建
int* p = (int*)malloc(sizef(int)*10);//动态创建

动态创建任务是在运行时通过动态内存分配函数分配任务内存,静态创建任务是在编译时为任务分配内存。

9. RT-Thread设备框架?

1) I/O设备管理层:这一层位于整个设备框架的最顶层,为应用程序提供统一的接口来操作底层的硬件设备。

2) 设备驱动框架层:这一层包含了设备驱动程序的基本框架,它负责实现具体的硬件操作细节,以及与上层管理层的接口对接。

3) 设备驱动层:这一层直接与硬件设备通信,包含具体的硬件初始化、数据读写等操作的实现。

10. MQTT是使用自己的服务器还是云平台

两者都有使用,一种是实验室搭建的MQTT服务器,域名是购买的域名,当然云平台也有使用,比如阿里云,腾讯云,华为云,Onenet。

11. TCP,UDP,IP?

  1. TCP(Transmission Control Protocol)
  • 是一种面向连接的协议,它确保数据包的可靠传输。
  • 提供数据包重传和排序机制,保证数据按顺序且完整地到达接收端。
  • 适用于需要高可靠性的应用,如网页浏览、文件传输和电子邮件等。
  • 在建立连接时,会进行“三次握手”过程,确保数据传输的稳定性和可靠性。
  1. UDP(User Datagram Protocol)
  • 是一种无连接的协议,不保证数据包的送达顺序和完整性。
  • 传输速度快,但不提供数据包的重传和排序功能。
  • 适用于对实时性要求高的应用,如在线视频和语音通信。
  • 由于其简洁性,常用于轻量级的网络应用或作为其他协议的基础。
  1. IP(Internet Protocol)
  • 是一种网络层协议,负责将数据包从源头路由到目的地。
  • 提供了数据包的基本路由和转发功能,但并不保证数据包的可靠传输。
  • IP协议版本主要有IPv4和IPv6,其中IPv6是为了解决IPv4地址耗尽问题而设计的。

12. MQTT

MQTT是一种轻量级的发布/订阅模式通讯协议,专为物联网和移动应用等设计,以实现高效且可靠的消息传输

13. 常用总线协议?

1)IIC        2)SPI        3)UART        4)JTAG        5)CAN        6)SDIO        7)USB

8)GPIO        

14. 自制开发板如何处理电源部分?

1)根据自己的电源需求,比如3.3v,5v,12v等,选择合适的稳压芯片或者线性稳压器

2)使用合适的电源连接器        4)设置保护元件

5)pcb布线时,尽量使电源线宽足够,以承载较大的电流,并尽量减少回路面积,降低电磁干扰。

6)考虑散热问题

15. 使用什么样的的电源管理技术

1)LDO(低压差稳压器)

2)DC-DC转换器

15. 使用什么样的的电源管理技术

16. 大功率进来,怎么处理?比如24V?

1)散热处理,风扇或散热片

2)增大线宽

3)滤波和稳压

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/3575.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【C++】C++的内存管理

目录 内存分布 动态内存管理 C语言的动态内存管理 C的动态内存管理 对内置类型操作 对自定义类型操作 new[]和delete[] 开空间的细节 探讨匹配问题 定位new表达式 内存分布 栈:存放非静态局部变量,函数参数,返回值等。栈是向下增长…

【数字电路与系统】【北京航空航天大学】实验:时序逻辑设计——三色灯开关(五)、小结

本次实验(一)见博客:【数字电路与系统】【北京航空航天大学】实验:时序逻辑设计——三色灯开关(一)、实验指导书 本次实验(二)见博客:【数字电路与系统】【北京航空航天…

大语言模型——涌现能力

在现有文献中,大语言模型的涌现能力被非形式化定义为在小型模型中不存在但在大模型中出现的能力”,具体是指当模型扩展到一定规模时,模型的特定任务性能突然出现显著跃升的趋势,远超过随机水平。类比而言,这种性能涌现模式与物理学中的相变现象有一定程度的相似,但是仍然…

如何在Android应用中安全地使用SQLite数据库,并通过SQLCipher进行加密保护

Android内置SQLite轻量级关系型数据库,可以在Android应用中存储、检索和管理结构化数据。SQLite是一个无服务器的、零配置的、事务性的SQL数据库引擎,非常适合用于移动设备和桌面应用程序中。 SQLite特点: 「轻量级」:SQLite不需要单独的服务器进程或操作系统级别的配置。…

Vim学习笔记01~04

第01章: 遁入空门,模式当道 1.什么是vim Vim是一个高效的文本编辑工具,并且可以在编程开发过程中发挥越来越重要的作用。 事实上,有不少编程高手使用他们来进行代码的开发,并且对此赞不绝口。 2.本系列目的 但是让…

微信小程序按钮点击时的样式hover-class=“hover“

小程序的button组件很好用,按钮点击的时候会显示点击状态,默认的就是颜色加深 但是我们改变了button的背景色之后,就看不出点击效果了,解决起来也很简单 关键代码就是小程序的 hover-class 属性,需要注意的是&#xff…

C 语言实例 - 计算 int, float, double 和 char 字节大小

使用 sizeof 操作符计算int, float, double 和 char四种变量字节大小。 sizeof 是 C 语言的一种单目操作符&#xff0c;如C语言的其他操作符、–等&#xff0c;它并不是函数。 sizeof 操作符以字节形式给出了其操作数的存储大小。 #include <stdio.h>int main() {int …

代码随想录算法训练营Day8 | ● 344.反转字符串● 541. 反转字符串II● 54.替换数字● 151.翻转字符串里的单词● 55.右旋转字符串

&#xff08;记得重学&#xff09; ● 344.反转字符串 题目&#xff1a;编写一个函数&#xff0c;其作用是将输入的字符串反转过来。输入字符串以字符数组 s 的形式给出。 不要给另外的数组分配额外的空间&#xff0c;你必须原地修改输入数组、使用 O(1) 的额外空间解决这一…

让Springboot JpaAuditing 支持ZonedDateTime

我们项目需要支持国际化&#xff0c;那么日期时间就需要有时区了&#xff0c;否则我们在今天早上9点干的事&#xff0c;人家美国人看到的是明天的时间。所以我们在Auditable中的创建时间和更新时间我们都定义为ZonedDateTime. 然而在保存的时候却抛出如下错误&#xff1a; Cau…

Qt [获取Dump] 使用WindowsAPI实现生成MiniDump文件

说明 客户现场的软件偶发崩溃是程序开发者&#xff0c;比较头疼的事情。如何更快速的定位到问题点和解决掉&#xff0c;是开发应该具备的基本能力。 Windows提供了一系列的API&#xff0c;可以记录软件崩溃前的堆栈信息。下面就实现一个生成Dump文件的程序实例。 主要代码 回…

计算机系列之输入输出、中断、总线、可靠性、操作系统、进程管理、同步互斥

9、输入输出-中断-总线-可靠性 1、输入输出技术、中断 1、内存与接口地址的编址方法&#xff08;了解概念即可&#xff09; 计算机系统中存在多种内存与接口地址的编址方法&#xff0c;常见的是下面两种&#xff1a;&#xff08;了解概念即可&#xff09; 1&#xff09;内存…

ai大模型应用开发

随着人工智能技术的飞速发展&#xff0c;AI大模型应用开发已成为一个日益重要的领域。本文将从专业角度深入探讨AI大模型的应用开发&#xff0c;并思考其未来的深度影响和逻辑性。 编辑搜图 请点击输入图片描述&#xff08;最多18字&#xff09; ​【一、AI大模型的定义与特点…

Practice Exam: Oracle Cloud Infrastructure Generative AI Professional

Practice Exam: Oracle Cloud Infrastructure Generative AI Professional 1. In the simplified workflow for managing and querying vector data, what is the role of indexing?2. In which scenario is soft prompting appropriate compared to other training styles?3…

ASP.NET Core 3 高级编程(第8版) 学习笔记 03

本篇介绍原书的第 18 章&#xff0c;为 19 章 Restful Service 编写基础代码。本章实现了如下内容&#xff1a; 1&#xff09;使用 Entity Framework Core 操作 Sql Server 数据库 2&#xff09;Entity Framework Core 数据库迁移和使用种子数据的方法 3&#xff09;使用中间件…

Babylon.js 读取GLB模型元数据

如果你熟悉将 3D 资源导出到游戏引擎的过程&#xff0c;那么无疑也会熟悉 3D 资源的 PBR 和 GLB 导出过程。 这是我们之前概述的内容&#xff0c;也是我们交互式工作的所有资产准备的基石。 然而&#xff0c;从传统的管道意义上来说&#xff0c;能够用元数据标记网格有很多逻辑…

通配符HTTPS安全证书

众多类型的SSL证书&#xff0c;要说适用或者说省钱肯定是通配符了&#xff0c;因为谁都想一本SSL证书包括了整条域名&#xff0c;而且也不用一条一条单独管理。 通配符HTTPS安全证书&#xff0c;其实就是通配符SSL证书&#xff0c;SSL证书主流CA的参数都一样&#xff0c;通配符…

【MHA】MySQL高可用MHA介绍8-常见错误以及解决

目录 MHA Node 未安装在 MySQL 服务器上 找不到主服务器的二进制日志 没有对二进制/中继日志授予读权限 使用多主复制&#xff08;不受支持&#xff09; 这些日志是 MHA Manager 在执行故障检测和故障切换过程中遇到的一些问题的记录。让我为您解释一下每个错误消息的含义&…

武汉星起航:亚马逊助力中国卖家扬帆出海,迎来跨境电商新机遇

2015年&#xff0c;亚马逊全球开店业务正式踏入中国这片充满活力和潜力的市场&#xff0c;此举不仅为中国卖家提供了前所未有的跨境电商新机遇&#xff0c;更为其发展出口业务、拓展全球市场、打造国际品牌铺设了一条坚实的道路。亚马逊作为国际版的电商购物平台&#xff0c;其…

Hadoop-Hive-Spark-离线环境搭建

一、版本描述 apache-hive-2.3.9-bin.tar.gz hadoop-2.7.0.tar.gz spark-2.4.0-bin-hadoop2.7.tgz 下载链接&#xff1a; https://archive.apache.org/dist/spark/spark-2.4.0/spark-2.4.0-bin-hadoop2.7.tgz https://archive.apache.org/dist/hadoop/common/hadoop-2.7.…

js中onchange的使用场景及如何使用

使用场景&#xff1a; onchange 事件常用于表单元素&#xff08;如 input、select、textarea 等&#xff09;的值发生改变时触发相应的操作。可以用于实时监测用户输入的内容&#xff0c;进行验证或实时更新相关内容。 示例代码&#xff1a; <!DOCTYPE html> <html…