• Arduino的安装和编译


    /*
    Blink
    等待一秒钟,点亮LED,再等待一秒钟,熄灭LED,如此循环
    */
     
    // 在大多数Arduino控制板上 13号引脚都连接了一个标有“L”的LED灯
    // 给13号引脚连接的设备设置一个别名“led”
    int led = 13;
     
    // 在板子启动或者复位重启后, setup部分的程序只会运行一次
    void setup(){
      // 将“led”引脚设置为输出状态
      pinMode(led, OUTPUT);     
    }
     
    // setup部分程序运行完后,loop部分的程序会不断重复运行
    void loop() 
    {
      digitalWrite(led, HIGH);   // 点亮LED
      delay(1000);           // 等待一秒钟
      digitalWrite(led, LOW);   // 通过将引脚电平拉低,关闭LED
      delay(1000);           // 等待一秒钟
    }
    第一个程序Blink

    0.安装

    1.安装IDE(官网下载,下一步,下一步,下一步)
    2.安装驱动(下一步,下一步,下一步)
    

    1.什么是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支持库)的二次封装。
    传统开发方式中,你需要厘清每个寄存器的意义及之间的关系,然后通过配置多个寄存器来达到目的。

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

    最重要最必须的两个函数

    void setup() {
      // 只需运行一次的代码,如设置板子:
      //Arduino控制器通电或复位后,即会开始执行setup() 函数中的程序,该部分只会执行一次。
    通常我们会在setup() 函数中完成Arduino的初始化设置,如配置I/O口状态,初始化串口等操作 } void loop() { // 重复运行的代码,,如灯光闪烁: //注:在setup() 函数中的程序执行完后,Arduino会接着执行loop() 函数中的程序。而loop()函数是一个死循环,其中的程序会不断的重复运行。
    通常我们会在loop() 函数中完成程序的主要功能,如驱动各种模块,采集数据等 }

     底层原理(main()函数去哪里了)

    int main(void){
        init();
        setup();
    
        for(;;)
           loop();
    
        return 0;
    }
    #include <Arduino.h>
    
    // Declared weak in Arduino.h to allow user redefinitions.
    int atexit(void (* /*func*/ )()) { return 0; }
    
    // Weak empty variant initialization function.
    // May be redefined by variant files.
    void initVariant() __attribute__((weak));
    void initVariant() { }
    
    void setupUSB() __attribute__((weak));
    void setupUSB() { }
    
    int main(void)
    {
        init();
    
        initVariant();
    
    #if defined(USBCON)
        USBDevice.attach();
    #endif
    
        setup();
    
        for (;;) {
            loop();
            if (serialEventRun) serialEventRun();
        }
    
        return 0;
    }
    main.cpp源码分析

    Arduino程序中编写的setup和loop函数,都在main函数中调用了。loop的循环执行,是通过for循环实现的,且每次loop结束后,都会进行串口事件判断,也正是因为这种设计,串口事件不能实时响应。

     2.程序语言入门

    一.使用变量

    特点:单个数值

    int整形
    long长整型
    float浮点型
    double浮点型(同float(在arduino中!))
    boolean(布尔值(false(0)或true(1)))
    char字符型 -128~127之间的有符号值
    Byte比特型(类似于char,只是无符号值)
    

    二.使用数组

    特点:一组数值,从索引0开始

    0.创建数组
    用{}表示如:int balabala~[]={1,2,3,4,5}表示一个[1,2,3,4,5]的列表 int balabala~[4]表示[0,0,0,0]的列表
    1.读取数组
    for(int index=0;index<4;index++){
    pinMode(balabala[index],OUTPUT)代表索引的引脚进行的操作
    }
    2.将数组元素数目定义为常量来避免访问的实际大小超过数组长度
    const int PIN_COUNT = 4;
    int balabala~[]={1,2,3,4}
    for(int index=0;index<PIN_COUNT;index++){pinMode(balabala[index],OUTPUT)

    三.字符串

    1.使用arduino的String字符串

    加载Basic_Strings程序并查看输出内容

    2.使用C字符串

    四.数字与字符串的转换

    1.数字转换为字符串,为了在LCD或者其他显示器显示这个数字

    String变量可以自动将数字转换为字符串
    例如:
    String myNumber = 123456;
    

    2.字符串转换为数字

    String aNumber = "1234"
    int value = aNumber.toInt();
    

    五.函数

    1.不带参数
    void blink1(){}
    2.带一个参数
    viod blink(int count){}
    3.带一个参数并返回一个值
    int blink(int period)
    4.返回多个值
    改变全局变量从而改变多个值

    六.流程控制

    if条件语句
    if(条件){执行代码}
    else{执行代码}//else否则执行这一行代码

    switch语句
    switch(条件)
    case:分支条件
    while循环
    while(条件){执行代码}
    do..while循环类似于while循环
    do{}//先执行do再执行while
    while()
    跳出循环
    break;
    for循环
    for(int i=0;i<4;i++)
    
  • 相关阅读:
    lcx
    交换网络中存在的攻击及加固方法概括
    Hello world~
    CCSPSECURE1 安全理论
    SQL注入经验总结
    Access Control List
    初探java集合框架图
    深入浅出分析LinkedHashMap
    红黑树实现分析
    深入浅出的分析TreeMap
  • 原文地址:https://www.cnblogs.com/cangshuchirou/p/9915245.html
Copyright © 2020-2023  润新知