查看: 118801|回复: 44

Arduino编程基础(一)——Arduino语言

  [复制链接]
  • TA的每日心情
    郁闷
    2018-12-6 22:21
  • 签到天数: 48 天

    [LV.5]常住居民I

    发表于 2017-4-12 20:22 | 显示全部楼层 |阅读模式
    本教程节选自《Arduino程序设计基础》

    Arduino编程基础(一)——Arduino语言
    http://www.arduino.cn/thread-45048-1-1.html
    Arduino编程基础(二)——C\C++语言基础(上)
    http://www.arduino.cn/thread-45049-1-1.html
    Arduino编程基础(二)——C\C++语言基础(下)
    http://www.arduino.cn/thread-45050-1-1.html
    Arduino编程基础(三)——常用电子元件和扩展模块
    http://www.arduino.cn/thread-45117-1-1.html
    Arduino编程基础(四)——Arduino扩展板的使用
    http://www.arduino.cn/thread-45152-1-1.html


    Arduino语言

    Arduino使用C/C++编写程序,虽然C++兼容C语言,但这是两种语言,C语言是一种面向过程的编程语言,C++是一种面向对象的编程语言。早期的Arduino核心库使用C语言编写,后来引进了面向对象的思想,目前最新的Arduino核心库采用C与C++混合编写而成。
    通常我们说的Arduino语言,是指Arduino核心库文件提供的各种应用程序编程接口(Application Programming Interface,简称API)的集合。这些API是对更底层的单片机支持库进行二次封装所形成的。例如,使用AVR单片机的Arduino的核心库是对AVR-Libc(基于GCC的AVR支持库)的二次封装。
    传统开发方式中,你需要厘清每个寄存器的意义及之间的关系,然后通过配置多个寄存器来达到目的。

    而在Arduino中,使用了清楚明了的API替代繁杂的寄存器配置过程,如以下代码:

    kittenblock中小学创客名师推荐的图形化编程软件

    pinMode(13,OUTPUT);
    digitalWrite(13,HIGH);

    pinMode(13,OUTPUT)即是设置引脚的模式,这里设定了13脚为输出模式;而digitalWrite(13,HIGH) 是让13脚输出高电平数字信号。

    这些封装好的API,使得程序中的语句更容易被理解,我们不用理会单片机中繁杂的寄存器配置,就能直观的控制Arduino,增强程序的可读性的同时,也提高了开发效率。

    在上一章我们已经看到第一个Arduino程序Blink,如果你使用过C/C++语言,你会发现Arduino的程序结构与传统的C/C++结构的不同——Arduino程序中没有main函数。

    其实并不是Arduino没有main函数,而是main函数的定义隐藏在了Arduino的核心库文件中。Arduino开发一般不直接操作main函数,而是使用Setup和loop这个两个函数。

    通过Arduino IDE菜单>文件>示例>01.Basics>BareMinimum可以看到Arduino程序的基本结构:

    kittenblock中小学创客名师推荐的图形化编程软件

    void setup()
    {
      // 在这里加入你的setup代码,它只会运行一次:
    }
    
    void loop() 
    {
      // 在这里加入你的loop代码,它会不断重复运行:
    }


    Arduino程序基本结构由setup() 和loop() 两个函数组成:

    Arduino控制器通电或复位后,即会开始执行setup() 函数中的程序,该部分只会执行一次。
    通常我们会在setup() 函数中完成Arduino的初始化设置,如配置I/O口状态,初始化串口等操作。


    在setup() 函数中的程序执行完后,Arduino会接着执行loop() 函数中的程序。而loop()函数是一个死循环,其中的程序会不断的重复运行。
    通常我们会在loop() 函数中完成程序的主要功能,如驱动各种模块,采集数据等。


    Arduino编程基础(二)——C\C++语言基础





    如果以上内容对你有帮助,你可以通过打赏支持作者

    4人打赏

  • TA的每日心情
    开心
    2017-9-19 19:02
  • 签到天数: 1 天

    [LV.1]初来乍到

    发表于 2017-9-19 14:08 来自手机 | 显示全部楼层
    好好学习天天向上,还在玩跑马灯阶段,感觉单片机简化了
  • TA的每日心情
    开心
    2017-4-26 09:54
  • 签到天数: 1 天

    [LV.1]初来乍到

    发表于 2017-4-26 10:56 | 显示全部楼层
    初學者入門

    该用户从未签到

    发表于 2017-5-7 22:13 | 显示全部楼层
    初学者入门。。。
  • TA的每日心情
    开心
    2017-6-7 16:20
  • 签到天数: 10 天

    [LV.3]偶尔看看II

    发表于 2017-5-23 16:52 | 显示全部楼层
    放下了10多年的C语言终于可以用上了
  • TA的每日心情
    开心
    2017-7-3 14:41
  • 签到天数: 2 天

    [LV.1]初来乍到

    发表于 2017-6-15 11:03 | 显示全部楼层
    很不错的入门

    该用户从未签到

    发表于 2017-7-20 17:27 | 显示全部楼层
    很好
    继续学习了

    该用户从未签到

    发表于 2017-9-2 22:47 | 显示全部楼层
    突然很感兴趣,不知道能坚持多久
    您需要登录后才可以回帖 登录 | 立即注册  

    本版积分规则

    热门推荐

    今晚闲来无事搞了下STM32 Ardunio 的SPI2 SD卡的通讯
    今晚闲来无事搞了下STM32
    看到Ardunio很火,就想用STM32F103RBT6的板子试一下。之前移植网上带系统的,竟然说超
    arduino之串口通讯
    arduino之串口通讯
    总操流程: 1、写入程序 2、测试[hr][/backcolor] 写程序[/backcolor] [*]void s
    四位数码管动态显示
    四位数码管动态显示
    代码如下;从9990到9999,然后再从9898开始 代码撸起; const unsigned char dofly_Du
    求助!GM65二维码扫描模块怎么用?
    求助!GM65二维码扫描模块
    求助!GM65二维码扫描模块怎么用? 卖家给的资料真的看不懂该怎么弄。。( ̄▽ ̄)~*
    Arduino Pro Micro 打造USB音频转 3.5mm音频转接板
    Arduino Pro Micro 打造US
    3.5mm耳机接口是PC上最常见的音频接口,因为它工艺简单、价格低廉在涉及到声音输入输
    Copyright   ©2015-2016  Arduino中文社区  Powered by©Discuz!   ( 蜀ICP备14017632号-3 )
    快速回复 返回顶部 返回列表