在过去的几十年中,单片机的规格变化不大,但是语言和支持软件的扩展为应用程序开发开辟了许多途径。多年来,对单片机进行编程涉及到两种语言的选择:C语言和汇编语言。但是随着现在可用于微处理器的新语言,用户在应用程序设计中面临更多选择。
单片机开发用哪种语言最好?
英锐恩单片机开发工程师表示,这个问题没有明确的答案,因为这取决于你正在处理的应用程序。
(1)C语言与汇编语言
在单片机可以使用新语言之前,可用的两个选择是C和Assembly。在深入探讨新语言之前,让我们简要地看一下它们。 即使C语言是在1970年代初期开发的,它也是一种流行的单片机语言。对于与单片机一起使用,C可以很好地运行,因为C具有处理内存分配的能力,同时还可以执行诸如if语句,循环和数学表达式之类的复杂功能。
汇编提供了C的替代方法,具有一些优点。汇编是一种较旧的语言,通常使用特定于设备的代码,并使用汇编程序实用程序对其进行转换。使用这种语言,用户可以直接访问CPU,在其中可以仔细调整例程以实现精确的计时应用。汇编提供了更好的CPU使用率,以及C不支持的其他指令集,例如使用特定的BIT指令进行位操作。
(2)MicroPython
Python是一种功能丰富的解释语言,以其简单,清晰和通用用途而着称。这些功能也使该语言对于微处理器来说太大了。但是,在2013年的Kickstarter活动的帮助下,物理学家Damien George能够将Python改编成适用于单片机的较小版本MicroPython。
MicroPython代码在MIT许可下是开源的。该语言使用标准Python库的一小部分在微处理器的裸机上运行。它只能使用256k的空间和16k的RAM进行操作,但是它被设计为与常规Python完全兼容。
它最初设计为可在基于ARM的系统上运行,包括BBC micro :bit,Adafruit Circuit Playground Express和MicroPython PyBoard,现在也可用于其他处理器,包括ESP8266和ESP32。
MicroPython在复杂项目的原型设计方面大放异彩。例如,在ESP8266上,可以通过几个简单的函数调用来创建IoT项目,以将MicroPython项目连接到本地Wi-Fi点,然后开始将信息流传输到MQTT代理。
(3)Blockly
Blockly是Google支持的开放源代码编程库,旨在通过使用拖放块使代码在视觉上具有逻辑性。
用户无需依赖正常对话中没有意义的单词和短语,而是将块放置到环境中并将它们连接在一起以定义程序的运行方式。例如,用户无需编写IF语句,而是将IF块拖到工作区中,并且将所得到的操作也拖到IF语句块内。
构建块后,用户可以使用多种语言(包括JavaScript,Python,PHP,Lua和Dart)导出其Blockly代码。Blockly系统的优点之一是几乎不可能发生错误(不是bug或错误,只是普通的旧错误),因为块需要特定的连接并且不允许不兼容的块进行连接。
尽管此编程方法可在包括Micro Bit和Adafruit Circuit Playground Express在内的许多平台上使用,但并非设计用于最终的商业产品。但是,它在原型设计阶段非常有用,尤其是在需要概念验证且学习设备详细信息会花费太长时间(例如寄存器,配置位和IDE配置)的情况下。
(4)Arduino C++
尽管将其称为“Arduino编程语言”,但Arduino实际上是使用良好的旧C++进行编程的,并使用特定于Arduino的库的子集。
Arduino C++与常规C++的区别包括单片机的通用例程,因为标准库C++函数无法在其有限的功能和内存上运行。使用这种较小版本的C++使该语言具有很高的可访问性,因为许多设计人员已经熟悉常规C++。实际上,通过使用编译器,代码可以用C++编写,然后解释为Arduino可用的代码。
使用Arduino C++的优势在于它适用于商业环境,比诸如Python之类的较大语言更快,并且具有高度可移植性。库使用通用函数自动处理最初为Uno在ARM内核上编译代码。
(5)BASIC
BASIC是一种语言,最早出现于60年代,随着80年代个人计算机的兴起而进入了鼎盛时期。由于其简单性和解释性,BASIC(初学者通用符号指令代码的首字母缩写)至今仍在使用,这使设计人员可以将更多的精力放在硬件上,而将精力放在软件上。
单片机上使用的BASIC的两个示例是PICAXE生产的并使用Microchip PIC单片机的BASIC Stamp(由Parallax生产)和PICAXE。BASIC是用于原型甚至硬件开发的好语言,但由于其速度慢和能耗低,在商业产品中应避免使用BASIC。
当在单片机上使用时,会解释BASIC,这会导致性能下降。但是,该语言的优势在于高度可移植。用BASIC编写的任何代码都可以在具有BASIC解释器的任何设备上使用。 过去使用单片机时,设计人员必须选择其首选平台,然后学习其使用的语言。随着语言和软件的发展,如今,语言可以决定设计师使用哪个平台。如果设计人员正在寻找特定功能,例如GPIO支持、网络,通过SSH进行通信的能力或其他,那么语言和系统的选择可能是寻找最佳开发路径的重要因素。
以上就是英锐恩单片机开发工程师分享的单片机开发用哪种语言的知识。英锐恩专注单片机应用方案设计与开发,提供8位单片机、16位单片机、32位单片机、运放芯片和模拟开关。