在过去的几十年中,单片机的规格变化不大,但是语言和支持软件的扩展为应用程序开发开辟了许多途径。多年来,对单片机进行编程涉及到两种语言的选择: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位单片机、运放芯片和模拟开关。

单片机学c语言还是python好_单片机开发用哪种语言最好?相关推荐

  1. python做客户端适合吗_太简单!只学十分钟,Python菜鸟也能开发一个区块链客户端...

    原标题:太简单!只学十分钟,Python菜鸟也能开发一个区块链客户端 作者:Adil Moujahid 编译:kou.Eli 本文转自区块链大本营(ID:blockchai_camp),转载需授权 区 ...

  2. python图片转文字easyocr_支持40种语言的图片文字识别(OCR)项目

    Hi!大家好呀!我是你们努力的喵哥! OCR(光学字符识别)是我们日常很常用的人工智能技术.我们总会有从图片中提取文字的需求.你是不是有需要从图片复制文字的经历?手打是最低效的选择.我们可以使用 OC ...

  3. window直接运行不需要环境的软件是什么语言开发的_C语言为何不会过时?你需要掌握多少种语言?_C 语言...

    01为什么C语言不会过时 评价任何一门编程语言,都是招人骂的.永远是这样.就像是春寒料峭的季节, 街上穿棉袄和穿单衣的擦肩而过,双方一定是同时在心里出现了两个字:"s b!"这个在 ...

  4. 多语言ASR?没有什么听不懂,15种语言我全都要

    摘要:在这篇博文中,我们介绍来自Google的一篇论文<Scaling End-to-End Models for Large-Scale Multilingual ASR>,来看看如何构 ...

  5. python编程剪刀石头布思路_剪刀石头布小习题三种语言python2、php、go代码

    剪刀石头布小习题三种语言python2.php.go代码 # coding:utf-8 """ python核心编程6-14习题的解题思路 设计一个"石头,剪子 ...

  6. c语言实现python列表_用C语言实现python的扩展模块

    用C语言实现python的扩展模块 示例1: 1 Example.c int add(int a,int b) { return a+b; } int sub(int a,int b) { retur ...

  7. 单片机c语言必背代码_单片机编程用C语言还是汇编?

    单片机是一种可编程器件,单片机的出现使硬件设计变得更为简单,产品的功能也更强大,而程序就是单片机的灵魂.目前功能稍微复杂一点的电子产品,都是以单片机为核心,再加以不通的外设电路实现不通的功能需求.单片 ...

  8. c语言实现python语法_用C语言扩展Python的功能

    转自:http://www.ibm.com/developerworks/cn/linux/l-pythc/ 一.简介 Python是一门功能强大的高级脚本语言,它的强大不仅表现在其自身的功能上,而且 ...

  9. 单片机定时器实验两位倒计时秒表_单片机学习「1」 初始51单片机

    问题1:什么是单片机? 采用集成电路技术,将CPU(具有处理数据能力的中央处理器).RAM(随机存储器,类比电脑里的内存条).ROM(程序存储器,类比电脑硬盘).多种I/O口(类比电脑的各种接口,不过 ...

最新文章

  1. tanh relu可视化
  2. python selenium框架_基于python+selenium的框架思路
  3. shell 数学运算
  4. Java编程的逻辑 (84) - 反射
  5. php文件上传并保存路径到数据库,thinkphp表单上传文件并将文件路径保存到数据库中?...
  6. 判断用户输入的这个数是不是质数
  7. lua OOP实现对象的链式调用
  8. WebService 之 WSDL详解
  9. 「模拟赛20180306」回忆树 memory LCA+KMP+AC自动机+树状数组
  10. DynamipsGUI使用方法
  11. 读书笔记《Redis入门指南》
  12. c语言 go to 用法,c语言中 go to语句的使用方法
  13. linux的lilo,深 入Linux 的LILO-嵌入式系统-与非网
  14. 2-PHP代码审计——PHPCMSV9.6.0 sql注入漏洞
  15. 西藏自治区林芝市谷歌高清卫星地图下载(百度网盘离线包下载)
  16. Django项目使用QQ实现第三方登录
  17. 【并发编程】map 基本用法和常见错误以及如何实现线程安全的map类型
  18. SQL命令讲解(二)
  19. 解决one-stage目标检测正负样本不均衡的另类方法--Gradient Harmonized,focal loss
  20. 什么是堡垒机?堡垒机的作用?

热门文章

  1. JDK 伪异步编程(线程池)
  2. mysql select语句执行顺序
  3. EntityFramework 4.1 如何加入项目
  4. less、Element-UI等安装配置
  5. 特征点提取—尺度不变特征SIFT算法
  6. Decorator(装饰器)
  7. Type Data(数据类型)
  8. b树c语言,B树——思路、及C语言代码的实现
  9. 二维列表的len_基于Voronoi二维多晶体的衍生脚本操作
  10. elasticsearch x-pack license过期