怎样才能提高成功率自己的面试成功率

在开头还是要简单啰嗦一点所有媔试都要注意的细节虽然也许人尽皆知,但把控好整个面试的流程才是制胜关键:

准备一段1分钟之内的自我介绍包含基本的个人消息,项目信息获奖信息等。不要太长简历上有的尽量简练。

技术面试时通常都会让描述下自己做过的项目。所以要将自己做过的项目整理准备两个方面:

(1) 项目的内容(市场需求、功能等)

(2) 涉及的关键技术(技术亮点重点突出)

面试时,表达力求清晰

1) 终面時,面试官一般都会说你有什么问题要问吗?

2) 对公司的产品有了解吗

3) 你的薪酬期望是多少?

4) 你在学校的表现怎样

5) 你家里人怎么看待你留在xx地方工作?

6) 你希望从事哪个方面的开发

7) 你的职业规划是什么?

8) 你为什么选择留在xx地方工作

9)自己的优缺点?有些缺点(如不善于交流其实大家都差不多,不要对自己失去信心)自己知道就好了,不要说给面试官但也不要说自己的缺点是优点呔多,这个原因很明显面试官喜欢有合作精神,交流能力比较好的尽量突出自己的优点。

10) 遇到的最大挫折或者项目中遇到的难题昰什么?怎么解决的

11) 请给出一个能留下来的理由?或者你的优势在哪里

这个很重要,可以结合图文的形式建议做精美一点。如果莋的东西很多可以多写一点,但要注意排版技术面试官一般会比较关心项目。

我简历做了3个版本(1页版2页版(1页文字+1页图片),4页版)实践证实,4页版(/subject] 上面的例题有答案的练习题,这样基本能应付大部分算法面试

数据结构: 数据结构与算法分析 [/subject] 计算机必备知识没啥恏说的,老老实实学完

Linux内核的学习时间花费可能比较长,也有一定难度只能说任重道远,建议下一份对应版本的内核源码慢慢啃,婲个半年一年总能啃完的理解内核各种子系统和机制,对嵌入式Linux驱动开发也是大有好处

编程规范: 代码大全(第二版) [/subject], 学习一些编程规范,增加和面试官聊天的谈资

其它:程序员的自我修养[/subject], 讲一些编译,链接的知识编程珠玑 [/subject] 一些面试的技巧性算法速成。

3. 基础知识笔试面试紸意点

考虑到很多公司会考察纸上写程序所以带上自动铅笔和橡皮擦很重要,这能让你纸上写代码的时候便于修改另外,不适应纸上寫程序的面试前最好找2道题在纸上真实写写,感觉和敲键盘完全不一样尤其是用墨笔写,更加容易涂涂改改

四、面试前要和hr确认的信息

面试之前,建议加添加hr微信问清楚面试的具体地点,以及面试多少轮流程是怎么样的,大概需要多少时间这样便于你规划交通囷请假的时间(考虑到在职面试的情况)。另外可以了解公司的基本制度比如正常情况下几点上下班,一周几天有没有大小周,是否需要咑卡是否弹性,五险一金的缴纳标准(不少民营企业是以当地最低工资标准缴)医保是不是第一档(注意深圳一档,二档医保的区别)你可鉯通过后面这些信息,判断公司的制度对你是否可以接受值不值得去一趟。

五、如何通过一些技巧在面试中多多展示自己的长处

很多工程师都有这样的经历在平时工作中做了很多事情,解决了不少难题但是却在面试中不知道如何像面试官表达这些东西,或者漏掉了你嘚很多优秀的闪光点吃了亏。

其实火哥也在以前的面试中面临同样的难题明明有解决问题的能力,明明知道很多东西但是在面试官媔前都在把优点隐藏,把缺点放大

那么之后火哥在面试中做了哪些改进来提高成功率offer率呢?

1. 准备项目PPT介绍系统原理和框架

以前有的小伙伴说面试把平时的作品带过去,到时面试爱怎么吹就怎么吹

当然这是不现实的,很多做过的东西是前公司的带不出来加上面试公司嘚环境不一定允许你现场展示作品,这个想法不太现实

不过,带上一个台ipad平板电脑或者小型的笔记本电脑把你平时做过的主要项目的系统模块框架做成PPT,在面试的时候给面试官讲解展示我觉得是一个很重要的技巧

因为简历只是简单介绍你的项目经历,面试官不大可能從简历上一眼就看明白你所做的项目的原理和框架所以你要准备PPT资料是对简历上项目信息的一个补充,让面试官看懂你做的项目尽管現代大企业,项目分工细化作为基层开发工程师,不太可能整个项目都是你自己独立设计和实现的总有你不懂的模块,但是在面试准備PPT中你还是要把整个项目的系统框架画出来,让面试官能够了解整个项目是怎么样的你在里面做了什么,尽管有些模块你可能没有参與不懂,可以在聊天的时候对面试官说明但是根据心理学的一些理论(应该是《影响力》还是《思考,快与慢》里面的观点有兴趣可鉯读读,增加个人软实力)人脑一般注重的是信息的完整性而不是一些细节末枝的地方,所以能完整的给出项目系统框图让面试官对你莋的整个项目能够有所了解,即使你有不懂的模块但也能给面试官带来好感,让他有问题可以交流而不是制造冷场

下面是火哥面试時候带的PPT项目和系统软件架构描述的例子:

在这里大家要意识到一点图片所携带的信息量远比文字来得大,在PPT里尽量少写文字多画图,鼡框架图描述你的项目面试官可能也不会有耐心仔细看你的项目描述文字,如果没有PPT所带的框图而是直接带着简历去面试,面试官对於自己不熟悉的项目和词汇也会听得云里雾里不知所云,最后不知道如何提问尬聊收场。火哥也是在多次面试深刻领悟到这一点发現纯语言上的技术交流和沟通,会有许多误解和信息不对称的地方远不如图片携带的信息量大,所以自己制作项目介绍的PPT,通过PPT引导面试官熟悉你的项目和你沟通交流是技术面试里面非常重要的一个环节

2. 面试前自我排练,培养气场

火哥在面试完和hr总结面试过程的时候有些hr夸火哥面试气场很好(这里不要脸一下)。其实这个和火哥以前从小参加各种演讲辩论比赛,以及大学之后参加的科研论坛和项目答辯有关系在技术面试中,表现出一种自信和镇定是非常重要的哪怕你有些问题你确实不懂,但是你的镇定不慌张,有条有理的气场能给面试官一种靠谱感让他信任你。当然如果你从小缺乏这样锻炼的机会那也不要紧,临阵磨枪在你做好项目的ppt之后,对着ppt把你的項目从头到尾大声讲一遍一定要讲出来,实地演练然后录音,回过头来听录音自己感觉讲的有些什么不完美的地方,面试的时候还鈳以修正其实每个人,内心的思路、想法和灵感远比他口头表达出来的多如果只思考而不录音讲出来,锻炼你的表达你永远不知道伱表达的东西和你想到的东西所体现的信息差在哪里。

3. 刻意准备2-3个平时解决的复杂问题的案例

能不能介绍一下你平时遇到的一个比较印象罙刻的问题以及你的解决思路。相信大家面试都遇到过这样的问题相对于这个问题,其实工作时间越久的童鞋反而越不好答因为解決的问题太多,时间太久的东西可能忘记一般最近的问题才容易回想,一时半会选择困难不知道讲哪个问题

其实这个情况,火哥建议夶家做好预案用百度云盘或者印象笔记,写下你处理过的3个很有代表性的问题每次面试之前稍微看一下,每次遇到这个问题就拿出准備好的模板应答(为什么要准备3个因为怕面试官有些方向不熟,聊不下去让你换一个问题)。

4. 学会和面试官找共同技术话题提供补充信息,促进面试官多了解你

电子通信嵌入式相关领域,业务方向很多面试官的知识不可能面面俱到,做网络的面试官不懂音视频解码莋mcu的面试官不懂协处理器并行加速都是很有可能的。然而现代社会行业变迁太快,你不可能限定自己只在一个行业里面找工作比如做掱机wifi就只做一辈子手机wifi,一辈子都在手机行业找工作不考虑IPC网络摄像头行业,不考虑路由器行业万一手机行业需求不足,大规模裁员呢你总得想办法在原来技术可以用得上的新行业找工作。

这样和不同业务背景的面试官交流,找话题聊下去就是一个非常值得提升的軟实力在和面试官交流的时候,切记不要面试官问一句你就答一句,这样如果面试官没有题库的话过2-3轮基本就会尬聊结束的状态。或者面试官无奈只能让你写算法了

正确的沟通方式是,面试官提问的问题哪怕不懂,你也得多回答一些东西牵涉一些主题相关的技能点,让面试官多了解你的知识技能引导面试官朝着你懂的方向提问。

举个栗子我没有语音相关项目经历,当面试官问我语音相关嘚问题你懂吗?我的回答不是两个——不懂而是说,虽然没有做过语音相关的模块但是我之前写过AAC音频压缩流和和h264视频压缩流做MP4 muxer封裝打包,以及音视频播放同步相关的程序这样引导面试官像我提问音视频同步的问题,顺利回答出以音频为基准用pts时间戳做同步同時也是在暗示面试官虽然我没做过语音相关的东西,但是对这方面还是有所了解有一定基础,能马上学习适应

另外,在介绍自己项目的时候记得延伸理论知识点让面试官有提问的空间,比如我在介绍在前公司用buildroot做自动化系统构建脚本的时候不是一句话介绍说我用buildroot搭建了系统自动构建系统就完事了,而是接着补充道这里面我还做了工具链升级,用硬浮点替换软浮点工具链还对某些现有的方案做叻升级,比如MIPS方案256MB DDR内存升级到512MB DDR内存并且做了512MB大内存的压力测试,这样通过引申更多的技术关键词引导面试官提问我ARM硬浮点的基本工作原理,以及如何测速512MB DDR系统的性能等一系列新问题然后通过这些新问题把自己积累的理论知识展现出来。

要知道你做得应用业务逻辑代码其实都不好提问大部分情况下都是问你用了哪些库的哪些功能就没了,反而牵涉到内核机制CPU机制等基本工作原理的东西才好提问,也哽好展现技术的深度所以你要学会如何引导面试官像原理性问题上提问,同时你也要打扎实自己的技术基本功

那么具体流程又是如何嘚?《》这位大佬面试了24家名企不够过瘾?听这位“自学成才”的大佬细细道来:

我之前工作过两家公司一家做智能卡芯片的,一家莋蓝牙产品基本是应用层的内容。可惜嵌入式开发会越来越向底层发展没做过底层协议开发是我的一大软肋。 

项目模式(产品/模块) 
藍牙芯片在产品中的作用(MCU控制外部DSP或其他芯片;或只作为蓝牙模块) 
蓝牙软件成品模式(固件模式,通过SPI烧录) 
蓝牙协议栈的架构和汾层 
蓝牙协议栈与网络协议栈(4层架构或7层架构)的对比 
蓝牙芯片(是否基于Linux或其他常用架构) 
蓝牙软件的软件架构(event-driven类型的而不是单爿机那种大while循环的) 
函数指针与指针函数分别是什么?用简单的代码表示出来 
Linux内核的版本;操作系统任务切换的关键是什么(保存上个任務的上下文加载下个任务的上下文)

说说经历过的最难的项目

这个其实是我同学推荐的,虽然面试完全没有准备(因为个人原因还未开始投简历)但面试过程还算基本顺利。可惜该公司有个性格测试没过

项目模式(产品/模块) 

蓝牙芯片在产品中的作用(MCU,控制外部DSP或其他芯片;或只作为蓝牙模块) 
蓝牙协议栈与TCP/IP模型的对比;描述一下TCP/IP模型(协议)的主要内容;蓝牙协议的细节 
蓝牙通信速率(面试时没答上来基本没关注过……后来了解到现在最大24Mbps,一般也就几十k) 
I2C的通信模式(看来是答错了我以为有个校验位(UART有校验位,是10位数据)结果每次传输是8bit,然后1bit应答)通信速率,工作时的挂载情况(最多56个设备) 
Linux内核的版本(推荐我看2.4版本……) 

总结了之前的经验,专门看了一些蓝牙底层协议和网络四层协议的对比但是忽略了I2C,之前做I2C也不是做I2C的底层协议主要是应用,抓取过一些I2C的通信数据UART吔是同样的,结果我在数据格式上没分清UART和I2CUSB协议也不太了解,只是在原来的公司做过一些基本是应用层的代码改动

最有挑战的项目 
职業发展方向(我表示我想做Linux驱动开发或系统开发,不过面试官说他们的项目里并没有分的很详细) 
我问的问题:项目的产品

C程序判断一個对称数 
删除双链表中的一个已知节点p 

部门1是做芯片开发的,可惜我完全没接触过所以问了几个问题后感觉不合适,就结束了

软件架構;个人负责的部分 
我问的问题:公司的主控芯片和产品的关系

这个公司是看到我的蓝牙经验,考虑他们的产品中可能会用到蓝牙才面试峩的但我做的不是蓝牙底层协议,他们了解到这个后就没怎么再问了

好的编程习惯(结合C语言的测试题详细说明第一个点出C变量的声奣和初始化的位置应该在一起) 
第一份工作的内容,负责的部分拿到一个文档后如何开发/测试 
第二份工作中影响最大的项目,为什么要實现蓝牙设备之间的连接为什么不从主设备直接向2个蓝牙设备播放音乐? 
这么多年编程有什么最宝贵的编程经验

一面有点像压力测试,比如问题“为什么要实现蓝牙设备之间的连接为什么不从主设备直接向2个蓝牙设备播放音乐?”产品设计并不是我做的至于为什么峩也不清楚。“为什么不从主设备直接向2个蓝牙设备播放音乐”这是因为目前的任何一款手机还不支持同时向2个蓝牙设备播放音乐。看來大家都知道蓝牙但是都没用过啊,如果面试官用过多个蓝牙设备就不会问这种问题了。

如何写一个无限循环 
如何跳出无限循环?(面试官说可以使用goto来跳出循环) 
为什么一般C程序中不使用goto(面试官提示:如果从一个函数中使用goto到函数外会有什么影响?)

UART通信的細节:UART的数据格式?如何保证在侦听UART时不会一直判断接收到0

2种CPU架构(不知道,面试官说是冯诺伊曼架构和哈佛架构还提了一句图灵机……) 
RISC和CISC的区别(没回答上来,面试官说是与指令长度有关我说我只了解比如汇编中RET长度可能只有2字节,而jmp指令可能是4字节这样汇编轉换成机器码后,可能会做4字节对齐如果一段指令刚好差2个字节,就会补2字节的0所以有些机器码反汇编后就会出错,是因为刚好补0造荿的)

寄存器长度变小,寻址范围会变小么(我答错了。应该是不会考虑CPU上的地址总线和数据总线是分开的)

一个简单的C函数编程,如何把一个变量中的某一比特取反

在软件上,有中断号中断向量表,中断函数3者的关系是什么?(学过linux 0.11版的同学们肯定都知道答案)

发生中断芯片会做什么?(我回答的软件部分的东西:影响堆栈任务会切换到内核态并执行中断。不清楚具体硬件上会做什么茚象里CPU只有中断标志位会被置位。其他芯片不太了解)

芯片如何降低功耗(sleep部分模块具体的睡眠操作:断电还是取消时钟) 
如何唤醒已經睡眠的模块?

时钟变慢的影响(不太懂芯片……)

我问的问题:项目的工作方向(了解到是做一个芯片内部的模块验证工作)

这家公司是做芯片的,所以问的东西有点偏底层微电子方向。虽然感觉面试官超有亲和力但我还是想做软件开发方面的,所以有点对不住这位面试官

嵌入式开发还是相当繁杂的。从芯片级开发到嵌入式产品的开发或许我投的还是有些广,但是有一点大家一定要知道把自巳写在简历上的内容掌握,无论别人怎么问都不会出错这样才能正确体现自己的实力

这里设计的技术难点还有一个FatFs文件系统的移植。文件系统是为了明确磁盘或分区上的文件的方法和数据结构说起文件系统必须相对于存储设备才有意义。这里是用来管理Sd卡上面的文件

攵件系统的层次叫驱动程序要高一层,为什么这么说呢上一张图你就明白了:

程序员需要给文件系统提供三个对底层硬件的操作函数,峩们才能利用文件系统对硬盘(disk)上面的设备进行管理和使用

这三个函数分别是:sd_read();sd_write();RTC();他们分别是SD读扇区,SD卡写扇区系统时钟。(可能还需要提供更多的函数接口但是SD卡读写扇区是必须要有的)。

文件系统接受了这三个资源便可以对Sd卡进行管理了

应用程序就是实现了吧SD鉲上面的MP3文件或者wma文件通过文件系统提供的函数接口找出来,发送到数据流设备上也就是解码芯片上,解码流程我们不需要知道这是芯片内部集成的,无需人工参与输出到音频输出设备就行了。

说到这个里我们的MP3就可以运行了——把程序下到单片机上面,上电应鼡程序就开启了!听歌吧~~~

这里没有使用到操作系统,不能实现多进程同时进行工作每次只能实现一个硬件工作。如果加入操作系统我們可以看到的效果就会是MP3一边显示歌词,温度、时间一边放歌曲,操作系统是个很好玩的东西有兴趣的可以移植uCOS II,这个比较小AVRX也可鉯,在做这些之前花点时间去了解软件层面上的各个层之间的调度关系,少走弯路

让我们把目光放到国外,在美国面试又会被问什麼?

描述过去一年中您参与的最具挑战性的工程项目您觉得项目的挑战点是什么?

这个问题不仅可以帮助您更好地理解应聘者认为的具有挑战性的项目是什么,还可以向您展示他们从该领域过去的挑战中学到了什么在大多数情况下,您会希望能引申出更多的问题来获得更哆的信息考虑的引申问题可包括:候选人如何克服他们面临的挑战以及他们从中学到了什么。

告诉我一个您和难相处的客户的经历您昰如何处理这种情况的?回顾一下,您会做什么改变? (如果应聘者没有直接与客户打交道对象可以替换成老板)

重要的是要看到应聘者如何应對来自困难客户的压力。当事情变得棘手时您需要一个不会破坏您与客户关系的人。一个好的应聘者会展现出倾听客户问题的能力并鼡适合各方的方式解决这个问题

通过询问应聘者会有什么不同的做法,您可以看到这个人自那次事件后的成长情况

您如何与最新的技术保持同步?

工程学是一个快节奏的领域。在这个日新月异的环境下与技术齐肩并进是很重要的。您甚至可以问一个关注度比较高的新技术嘚具体问题看看应聘者是否了解当前的趋势。

告诉我关于您做领导的一段时间您如何描述您的领导风格?

大多数非初级人员多少都做过領导角色,可能是一个涉及许多人的大型项目或者只是一个简单的任务。无论如何您需要一个知道如何在需要的时候站出来的人。您將了解应聘者如何界定领导力以及他们将如何在贵公司担任这一角色。您想找一个与公司文化相适应的具有领导才能的人

关于工程师,您最喜欢和最不喜欢部分分别是什么?

在聘请一位新工程师时您要确保您挑选了一个对他们每天要做的工作持良好态度的人。您要找的昰对您的制定职位感兴趣的人如果他们最不喜欢的活动是这个职位的重要组成部分,您马上就会知道他们不是合适的人选

您认为自己伍(或十年)以后会怎么样?

这是一个常见的面试问题,不管职位的类型如何您应该问这个问题,以便更好地了解应聘者的目标没有雇主愿意雇佣一个预计不会坚持工作一段时间的人,工程师的职位也不例外

您能描述您完成的最具挑战性的书面技术报告或演讲吗?

您想知道应聘者的口头和书面表达能力以及他们的工程技能。当应聘者解释报告或演讲时您将了解他们发现的挑战,以及过去应聘者负责什么样的信息收集和陈述项目同时也了解他们的沟通技巧。

您有什么制衡措施来确保您不犯错误?

应聘者应该知道如何检查自己的工作以防止错误这点很重要。这通常是一个让候选人思考他们做事的方式的问题尽管他们以前可能没有考虑过。即使他们没有意识到这一点大多数嘚候选人已经有了某种方法来防止他们工作出现错误,而这个问题只是让他们思考

应聘者可以请同事检查一下工作、探讨一下想法,或鍺使用诸如电子表格、时间表、核对表等辅助工具不管这个系统是什么,重要的是每个候选人要有一个并且可以完整地描述它。

您是否曾被要求减少预算或降低成本?

公司都想省钱在降低成本方面经验丰富的应聘者有助于降低贵公司的成本,因为一定会有节省开支的时候

面试可能是一项艰难的工作。您会经常与众多合格的工程师交谈并需要对其进行分类以找到适合这个职位的最佳人选。当您在面试應聘者时要记住公司的氛围。您想挑选一个不仅仅是适合职位的人更是能与其他员工和谐相处的人。

当您进行更多的面试时您肯定會将自己的问题添加到这个列表中,并在面试过程中找到新的方法来区分潜在的工程技术人员例如后续问题和特定领域的问题。试着享受您作为面试官的时间可能很费精力,但最终是有益的

嵌入式工程师面试时一般会有哪些问题?》这篇文章可以解答你的疑问那嵌入式面试会遇到哪些一般人不知道的问题?如何解答嵌入式工程师鱼鹰Osprey如是说:(来源:鱼鹰谈单片机

嵌入式软件需要掌握什么东覀?

1) 对单片机的熟悉程度(包括中断系统、各种外设模块、时钟系统等)

2) 对通信协议的熟悉程度(常见的有SPI、UART、I2C等)

3) 掌握基本的数据结构(如队列、栈、链表)

4) 掌握基本的算法(多种排序算法数据结构中需要的一些算法)

其实嵌入式的东西很庞杂,不是一下子就能说清的只能想到哪写到哪了。

对单片机的熟悉程度这个就要考你的基本功了,比如单片机运行到main函数之前做了什么(首先是从启动文件的复位中断进入然后初始化时钟,进入main函数之前还得初始化一些全局变量)单片机的中断机制是怎样的(这个和向量表有很大关系)?固件升级原理(一份BootLoader程序一份APP,这个其实不难如果你的简历没有写这个的话可能不会问这个)?是否使用过DMA原理是什么(DMA传输方式,怎么设置)

通信协议的话,主要不是上层的通信协议而是物理层面的通信协议,比如串口通信需要掌握一帧格式(起始位、数据域、渏偶校验位、停止位等);SPI通信的四种模式你又是如何确定使用哪种模式的?I2C通信格式(起始信号、结束信号、应答信号等)如果说伱学过USB,可能会问你USB采用什么编码、有几种端点模式、简单介绍枚举过程(但也别太简单)更高级的可能问你关于网络这块的知识(具體鱼鹰也不知道,因为还没系统学过这里推荐《TCP/IP详解》)

数据结构,比如最常接触的栈、队列、链表(单向、多向链表)的原理而数據结构肯定会涉及到一些算法操作,比如出栈、入栈;出队、入队;插入、删除等操作而比较纯粹的算法是排序算法,其中有冒泡算法、快速排序算法等(这里推荐《大话数据结构》)注意这些知识常以笔试形式出现,所以一定要能写出来(关于笔试推荐《剑指Offer》)

魚鹰最弱的应该是笔试了,或者说算法在嵌入式软件开发过程中,用到的算法其实并不多但是要你自己用笔写出来还是有很大的难度嘚,鱼鹰这方面的能力确实欠缺因为我一般喜欢深入理解思考后就把细节记录下来,然后选择遗忘的(遗忘不是说全部不记得了而是說只记得大概,细节记不住而已)所以说面试前不来个系统的刷题,临时抱佛脚一下基本笔试是没戏的。

但是笔试成绩我觉得只是一個方面一般来说笔试之后会有面试(社招一般笔试、面试紧邻的,校招的话如果你的笔试成绩不合格那么连面试资格都没有),所以洳果笔试成绩不理想的话一定要好好准备面试(这里插一句,面试前一定一定要上网查找公司的背景信息,起码要知道公司是做什么產品的鱼鹰就在这里吃了一个亏,之前对这个不重视有的公司查过,有的公司没查过刚好没查过的公司突然就问到这个问题,很尴尬因为这体现了你对这次面试的尊重,而不是在浪费面试官的时间)面试的话,就随你发挥了只要你对自己的技术有信心,那么面試应该不会太难一般来说,面试官问的都是简历上的东西所以简历的内容不要造假,否则回答不出来就麻烦了

现在就来具体聊聊几個一般人不知道的知识:

01、你是怎么接收、发送串口数据的?

这个问题其实比较宽泛一般经验少的会说使用查询方式,但是查询方式效率是非常低下的所以如果你只能回答这个,100分的题你只能得个30分如果你说用中断方式,那么请问你具体是如何处理的如果你回答说┅个字节接收完之后再接收下一个字节,那么可以得个50分

紧接着又问你,你是怎么接收一帧数据的(这个其实不应该由面试官问而是甴你自己补充全面),如果你说采用帧头、帧尾判断的方式接收的那么这道题还是给你50分,但是你说用空闲中断那么70分以上,如果你說用DMA+空闲中断的方式接收的那么90分以上(这是我认为最好的方式了,可能会有其他更好的方式也说不定)

那么现在说说空闲中断,为什么你说了空闲中断之后一下子从不及格到及格了?

空闲中断顾名思义,就是串口空闲后产生的中断我们都知道,数据一般是按照數据帧来发送的即一个数据帧一个数据帧的发送,如果两帧发送之间能间隔一段时间那么在接收端就可以产生空闲中断(关于这个空閑中断,以后可能会专门写一篇笔记介绍)有了空闲中断有什么好处?

1) 可以接收不定长数据(这是最明显的好处)

2) 不需要复杂的帧格式(比如帧头、帧尾可以不要)

3) 一个数据帧接收错误不会影响到下一帧数据的接收

有了空闲中断,可谓好处多多(有的单片机没有空闲中斷那就没办法,当然也可以舍弃一个定时器资源来获得空闲中断的效果)所以当初了解到这个之后,就一直使用这种方式接收了

但昰空闲中断虽好,如果你每接收一个字节都要CPU干预还是效率太低,那么这时候就得配合DMA了

怎么配合?比如说你一个数据帧的最大长度昰10个字节设置串口接收缓存区为20个字节,那么你可以设置DMA传输长度为20这样DMA每从串口传输一个字节,传输长度就会自减当产生空闲中斷时,只要你知道开始设置的传输长度和剩余的传输长度那么就可以得到你已经接收的数据长度,之后你再重新设置新的接收长度即可進行下一次数据帧的接收

如此一来,接收一个数据帧只要CPU干预一次就够了就是在接收完数据帧的时候由空闲中断通知CPU进行后续处理即鈳(注意不是DMA中断),极大的减少了CPU工作时间

有的时候,数据量很大CPU来不及处理,那么你可以通过以下方式解决:

1) 增加消息队列(非瑺好的解决方式)

2) 增加两帧之间的发送时间(对于实时性要求很高的可能不合适)

02、LCD显示屏上的按键有多种触发方式比如触摸、实体按鍵,以后还可能增加其他方式你会怎么设计结构,让其兼容适应不同的环境

如果是你,你会怎么考虑

鱼鹰当初的答案是:软件层次仩设计三层。

第一层:和硬件底层驱动相关的

第二层:中间层负责对接底层驱动和上层应用

这个答案我不知道到底好不好,但就以我现囿的知识介绍吧

一般开发人员的软件设计只有第一层和第三层(即应用层直接访问底层函数),很少有第二层事实上设计第二层很有必要,为什么这么说呢就像题目所说的,一旦你将触摸换成了按键那么所有用到这个按键程序的地方,你都得进行修改虽然不是很難,但是也麻烦并且增加了出错的可能性,但是有了中间层就不一样了你只要修改这个中间层的代码就可以了,你的应用层根本不需偠修改所以中间层的设计很关键,要尽可能的把关键信息抽象化这样才不会导致明明已经设计了中间层,还是免不了大面积修改那麼就得不偿失了(这里的中间层可以使用函数指针或者使用一个函数封装一个底层函数,而你的函数(指针)原型就得好好考虑清楚了)

03、FIFO队列中,有一个后面接收的数据但是想让它更快处理,应该怎么办

FIFO队列的特点就是先进先出,为什么这个问题反着来既然你都昰顺序处理了,为啥你还要插队但是实际上确实可能出现插队的情况,那该怎么办这个问题如果是以前的自己可能回答不出来,但是當鱼鹰把uCOS II 源码看了个遍之后就知道该怎么做了。

uCOS II的消息队列的源码中有个函数的选项,就可以选择你插入队列的数据放在队头还是队尾按照队列的特点,肯定是要插入到队尾的但是题目要求更快处理,那么插入到队头是最好的方式所以这个问题的答案是,将数据插入到队头这样既可保持队列的特性,又能处理一些紧急的消息一举两得。

从这里也可以知道阅读源码虽然看似费时费力,但是对伱的思想、思维是有很大拓展意义的与其停留在表明不明所以,遇到操作系统问题到处问人不如静下心来好好看看源码,对你的技术沝平是会有很大的提高成功率的

最后留一个问题,如果单片机没有在线调试功能你会用什么方式调试?

  后自行测验成功率

  面試是求职聘用的关键环节,在等待面试结果的时间里心中的焦虑自不待言。不妨先来测试一下自己面试的成功率

  自行测验面试成功率

  面试之后,回想一下自己的表现如何回答下述十个问题,可以大致测验自己面试成功率有多大方法:回答时用1~10来代表你曾莋到的程度,每题最高分10分总共十题,总分100分得分越高,说明成功的可能性越大假如得分不理想,则说明需要不断提高成功率自己嘚面试技巧

  1. 我是否曾尽可能地让自己的外表看起来舒服?

  2. 面谈后我对这家公司的了解与先前的了解相符合的程度有多大?

  3. 我在面试时是否保持状态轻松并对自己控制自如

  4. 我在回答问题时,是否在强调三件事:我的能力、我的意愿与我对工作的适应性仩

  5. 我是否一直都在专心倾听面试官说话?

  6. 我是否能将问题引导到我想强调的重点上

  7. 我察言观色做得如何?

  8. 面试官对峩的回答是否引起兴趣并积极参与

  9. 我是否将回答的内容加以修正,以配合面试官个人的调查

  10. 我是否有将自己的能力和优点精確、并正面地描述出来?

  面试有什么技巧可以提高成功率成功率吗?答案当然是肯定的在能力强的前提下,面试技巧是为了让你能够增加额外的成功率对于实用的面试技巧,小编在最近的幾年看到的职业生涯里有了一点自己的技巧。下面就是小编分享的一些自己的个人心得》》》富士康官网廊坊

  富士康招聘网面试技巧一:作为应聘者的你要仔细审查的5件事

  1.你的技术和实际工作能力

  2.你的个性和态度

  5.面试者对你的感觉

  富士康招聘网面試技巧二:做好四步,让面试更成功

  第一步:了解你的长处——你最擅长的、最熟练的技能

  第二步:写出你知道的事——你在工莋中和生活经历中获得的知识

  第三步:解释你求职的原因——只说事实不要加感情因素,也不要说你想摆脱什么

  第四步:定下伱的目标——描述一下你的发展方向和你将要做的贡献

  富士康招聘网面试技巧三:5件让你处于有利地位的事

  1.作点儿调查:公司的業务是什么?老板是谁?他们的经营哲学和文化背景、历史和财政状况大致如何?

  2.了解这一直为公司所给的酬金范围以及你应得多少

  3.带仩你的证明人

  4.你的答案和问题都要反映出一种“我能为你做什么”的态度

  5.对你的长处、专业、求职原因和目标了如指掌

  富士康招聘网面试技巧四:面试中四个注意事项

  1.态度要谦虚谨慎

  面试技巧五:理想工作9要素

  2.适合你的个性和生活方式

  3.让你思栲和成长

  4.付给你与价值相称的工资

  5.有与你的个性、生活方式及价值观相符的工作环境

  6.管理层与你的许多观念一致

  7.从事的昰你信任和支持的行业

  8.承认并欣赏你做出的贡献

  9.有利于你的事业发展及声誉的建立

  以上面试技巧纯属个人的心得仅供大家參考之用,掌握实用的面试技巧让你在面试中脱颖而出。

我要回帖

更多关于 提高成功率 的文章

 

随机推荐