做单片机软件设计应该考虑哪些事情?
1.首先要保证实现所需要的各种功能,要做到零故障,准确无误,做到零BUG。
2.其次,凡是需要人工操作的,要做到操作简便,避免可能出现的误操作,必须在软件上加以限制,做到零错误。
3.需要显示时,做到显示明确,避免用户误会,应准确显示出系统状态,出现故障时应及时提示和报警。
4.在软件编写时,做到模块化,层次清晰,结构合理,易懂易读易移植,利用团队合作完成。
5.在软件上,要有防止干扰的措,加看门狗,防止飞程序,禁止死循环。 这些是主要几点,对于一个项目,一个产品,在研发时,公司会有严密的管理制度和措施,更会有硬件软件的设计要求的,会更详细具体。
怎样才能成为单片机工程师?
单片机工程师?我先理解为从事单片机相关工作的设计人员。
单片机从上世纪80年代开始流行到现在,并且最近几年单片机又火爆了一次,主要得益于智能电器的流行。
其实单片机很简单,单片机在所有系统中的作用就是外围设备信息的采集和控制,数据的计算和分析等等,并且大部分单片机都是相通的,学会某一个单片机,其他的也都差不多。
如果从事单片机行业,个人建议51单片机必学,很多高校的单片机课程也都是51单片机。学习51单片机的作用在于它的直观,通过学习,能把软件编程和硬件联系起来,比如配置定时器,通过写入寄存器的数据可以很直观的认识到底层硬件是怎么连接的,如何通过软件代码实现硬件的动作,理解比较深刻。同时需要学习c语言和数电知识。怎么把自己的想法转成机器语言,这需要一定时间的,还有就是数电了。单片机也数字电路的一部分,内部其实也是很多数字单元组成的。
51单片机学习一段时间后可以选择一款32位单片机学习,推荐使用stm32,这个芯片使用度非常大,网上资料也很多,学习起来比较方便。stm32相对51单片机来说功能更强大,同时也更复杂。开始可以买一块开发版学习。开发板资料都很全,先系统了解一下,对比一下不足,再通过查找资料一点点弥补不足。
推荐图书
做技术很辛苦,一方面积累经验,一方面不断学习,这样你会越来越强大,加油✊✊
1、首先学习C语言,汇编语言。
2、精通数字电路 模拟电路;
3、找一部视频跟着项目做;
4、自己动手画原理图PCB;
5、进行电路调试,其中万用表、示波器、电烙铁等等工具都得会用。
首先要有数电、模电的基础知识,能看懂各类芯片资料,比如各项参数,特别是文档中的典型电路,能帮助我们节省很多设计成本。
接下来得学学画图软件,比如AD,或者PADS,protell等,熟练掌握一种就可以了,实在不想画板子,调试板子的时候也能辅助搞明白电路图,对于调试板子是很有帮助的。
然后还要学学C语言。现在大部分单片机都是用C来开发,汇编用的不多了,有富裕精力的朋友可以熟悉了解一下。单片机板可以看做是人的躯壳,里面运行的程序是灵魂,相辅相成,缺一不可。
接下来是动手能力,一些基本的焊接技术是必要的,还有万用表,示波器这两样工具要熟练掌握,调试过程,是最能提高水平的过程!
最后就是要多多做不同的项目丰富自己的经验,比如usb转ttl的电路设计,上位机软件如串口助手的操作,这些都有助我们快速的完成单片机项目的设计验证。
作为嵌入式开发一员,来谈谈如何成为单片机工程师。
最简单直接的就是来看下我们企业对于单片机工程师如何定义的,这样我们对于成为单片机工程师需要掌握的知识图谱技能也就一目了然了。
从上面的JD我们可以看出要成为一个合格的单片机工程师,我们需要做到:
1.精通C语言编程,目前大部分单片机开发都是基于c语言,有时候会涉及到汇编。只有熟练的运用好编程语言这门工具,才能很好的实现需求。
2.熟练的阅读硬件原理图,同时还要能读懂数据手册,只有看懂原理图,如管脚,上拉电阻,总线接口等,才能对应的完成软件的编写。
3.熟练某个平台的单芯片soc,比如51,arduino,树莓派开发,由于单片机(嵌入式)工程师基本上都是和硬件打交道,基于平台开发相关的应用功能,所以势必需要熟悉如i2c,spi,串口,蓝牙等协议。
4.熟练使用万用表,示波器,电烙铁等工具,这样对于问题才能更好的快速定位。
总之,编程经验需要不断的积累,尤其是嵌入式开发,需要懂得相当多的技能,需要我们大量的积累开发经验,并不断的学习新知识,只有这样才能顺应科技的进步,保持自己的竞争力。
极客老王,十年嵌入式相关领域工作经验,涉猎Android手机,路由器,VR,linux内核、网络开发,老司机带你飞,快上车,欢迎关注
一般来说,单片机属于硬件工程师的工作范畴。毕竟单片机驱动编程和电路设计是分不开,只有明白了单片机如何驱动才能设计出更为合理的电路产品。
如果想更好的从事单片机相关工作:
1、必须熟悉C语言。目前基本上所有的单片机的开发环境都支持C语言编程。
2、最好熟悉汇编语言。
原因如下:①、虽然大部分单片机都支持C语言编程,但某些单片机采用汇编语言编程更好一些,如PIC8位单片机。
②、对于一些对时间要求较高的产品,采取汇编语言会更节省时间并且时间可控性更高。
③、由于单片机的启动文件等底层文件都采用汇编语言,产品采用实时系统,如UCOS、FreeRTOS等,必须需要汇编语言进行一致。即使不采用实时系统,熟悉汇编语言也可更好的了解单片机系统。
3、熟悉各种元器件以及电子电路原理。只有熟悉电路原理,才能更好的利用单片机驱动做出好的产品来。
4、熟悉一款单片机的外设功能。单片机方面,基本上熟悉了一款,便可举一反三,能迅速上手其余的单片机。
5、熟练使用相关实验调试设别,如电烙铁、万用表、示波器等。只有熟练使用这些工具,才能迅速的调试出一款合格的产品。
如何理解单片机?单片机开发是一个什么概念?
1、单片机就是指那一片含有CPU的芯片。
2、由单片机再加上一些外围电路比如D/A、A/D或内存或程序扩展,叫单片机系统。
3、单片机开发就是指采用单片机(包括硬件设计、软件设计)来实现某种检测、控制功能的系统设计。
4、学习板上除了一片芯片是单片机外,其他都是扩展或者外围电路,配合单片机实现某些功能的。