一.基本函数

pinMode(引脚号,模式);

digitalWrite(引脚号,电平状态);              //默认低电平(或浮空)  

  digitalRead(数字输入端口号);

  analogRead(引脚号);               //调用10位AD

  analogWrite(引脚号,模拟量);             //调用8位AD

  pulseIn(引脚号,脉冲响应电平,最大响应时间(微秒));

二.串口

Serial.begin(数据传输的波特率);

Serial.println(传回的数据);

Serial.available();                                 //判断串口是否接收到数据

Serial.print(字符串);                           //通过TX传出去

Serial.write(字符串);                          //写入串口中

Serial.println(字符串);                       //通过TX传出去,并在尾端加换行

Serial.print(thisByte);                         //打印文字

Serial.print(thisByte,HEX);                //打印十六进制数

Serial.print(thisByte,OCT);                //打印八进制数

Serial.print(thisByte,BIN);                 //打印二进制数

max(a,b);                                               //返回最大值

三.SPI(高阶库)

SS/CS:片选(高电平屏蔽,低电平启用)

MOSI :主机送出信号

MISO :主机结收信号

CLK  :时钟脉冲

SPI成员:

begin();

功能 :初始化SPI,设置CLK,MISO和SS为输出,将SCK和MOSI拉低,将SS拉高。

形式 :SPI.begin();

返回值:none

setBitOrder();

功能:设 置进入和输出SPI总线比特(bit)的顺序:LSBFIRST(低位开始)或者 MSBFIRST (高位开始)。

形式:SPI.setBitOrder(order);

参数:order:LSBFIRST或 MSBFIRST

返回值:none

setClockDivider();

功能:设置SPI串行通信时钟的分频系数

形式:setClockDivider(SPI_CLOCK);

参数(SPI_CLOCK)

SPI_CLOCK_DIV2  //2分频,系统时钟的 1/2

SPI_CLOCK_DIV4  //4分频,系统时钟的 1/4

SPI_CLOCK_DIV8  //8分频,系统时钟的 1/8

SPI_CLOCK_DIV16 //16分频,系统时钟的 1/16

SPI_CLOCK_DIV32         //32分频,系统时钟的 1/32

SPI_CLOCK_DIV64         //64分频,系统时钟的 1/64

SPI_CLOCK_DIV128        //128分频,系统时钟的 1/128

setDataMode();

功能:设置数据模式

形式:SPI.setDataMode(mode);

参数(mede):

SPI_MODE0  CPOL = 0 CPHA = 0

SPI_MODE1  CPOL = 0 CPHA = 1

SPI_MODE2  CPOL = 1 CPHA = 0

SPI_MODE3  CPOL = 1 CPHA = 1

时钟极性CPOL: 即SPI空闲时,时钟信号SCLK的电平(1:空闲时高电平; 0:空闲时低电平)

时钟相位CPHA: 即SPI在SCLK第几个边沿开始采样(0:第一个边沿开始; 1:第二个边沿开始)

transfer();

功能:在SPI上传输一个字节(byte),发送和接收都是这个函数

形式:SPI.transfer(val);

参数(val):要发送的字节

返回值:从 bus 上读取字节。(读操作使用的时候)

end();

功能:结束传输

形式:end();

参数:无

返回值:无

四.SPI(低阶aTmega(AVR) 库)

SPI三个寄存器SPCR(控制寄存器),SPCR(状态寄存器),SPDR(数据的暂存器)

SPCR(SPI Control Register暂存寄存器)

7bit  SPIE 片选使能,SPIE = 1;片选无效,SPIE = 0片选有效(主机无需片选)(单机通信也无需片选)

6bit  SPE

5bit  DORD

4bit  MSTR

3bit  CPOL         时钟极性,CPOL = 0(时钟空闲为低电平);CPOL = 1(时钟空闲为高电平)

2bit  CPHA        相位极性,CPHA = 0(表示第一个边沿);CPHA = 1(表示第二个边沿);都是表示数据采样,数据有效的时刻。

1bit  SPR1

0bit  SPR0

SPCR(SPI Status Register 暂存寄存器)

SPDR(SPI Control Register数据的暂存器)

进阶之路(基础篇) - 010 Arduino 函数(基本、串口、SPI)的更多相关文章

  1. docker进阶之路-基础篇 | 一:环境搭建

    转载请注明作者及出处: 作者:银河架构师 原文链接:https://www.cnblogs.com/luas/p/12061747.html 一.准备工作 查看内核 Docker 要求 CentOS ...

  2. docker进阶之路-基础篇 | 二:portainer安装与基本使用

    转载请注明作者及出处: 作者:银河架构师 原文链接:https://www.cnblogs.com/luas/p/12061755.html ​简介 Portainer 是轻量级,跨平台,开源的管理D ...

  3. python之路基础篇

    基础篇 1.Python基础之初识python 2.Python数据类型之字符串 3.Python数据类型之列表 4.Python数据类型之元祖 5.Python数据类型之字典 6.Python Se ...

  4. Python基础篇(三)_函数及代码复用

    Python基础篇_函数及代码复用 函数的定义.使用: 函数的定义:通过保留字def实现. 定义形式:def <函数名>(<参数列表>): <函数体> return ...

  5. python学习之路基础篇(第四篇)

    一.课程内容回顾 1.python基础 2.基本数据类型  (str|list|dict|tuple) 3.将字符串“老男人”转换成utf-8 s = "老男人" ret = by ...

  6. Python学习之路基础篇--10Python基础,函数进阶

    1 命名空间 对于Python 来说命名空间一共有三种 1 内置命名空间 —— Python 解释器 就是Python 解释器一启动就可以使用的名字,储存在内置命名空间中.内置的名字在启动解释器的时候 ...

  7. Python学习之路基础篇--11-12Python基础,函数的装饰器

    对于装饰器来说,就是在不改变函数的调用的情况下,对函数的前后增加了些许功能,这完全符合函数的 开放封闭 原则.装饰器的本质 其实就是一个闭包函数. 这是一个装饰器的步骤图 ret = func(*ar ...

  8. Python学习之路基础篇--09Python基础,初识函数

    函数可以分为内置函数 和 自定义函数.这次关注的主要是自定义函数.定义函数之后,就可以在任何需要它的地方调用. 1 返回值的重要性 返回值的3种情况 没有返回值 ---- 返回None 不定 retu ...

  9. 从零开始的程序逆向之路基础篇 第二章——用OllyDbg(OD)分析一个简单的软件

    作者:Crazyman_Army 原文来自:https://bbs.ichunqiu.com/thread-43469-1-1.html 0x00知识回顾 (由于笔者省事,没开XP虚拟机,而且没关闭A ...

随机推荐

  1. Linq-查询上一条下一条

    //下一条 int pollid = poll.Where(f => f.PollID < CurrentId).OrderByDescending(o => o.PollID).F ...

  2. 怎样将 MySQL 迁移到 MariaDB 上

    自从甲骨文收购 MySQL 后,由于甲骨文对 MySQL 的开发和维护更多倾向于闭门的立场,很多 MySQL 的开发者和用户放弃了它.在社区驱动下,促使更多人移到 MySQL 的另一个叫 MariaD ...

  3. ACM~排列组合&amp;&amp;hdu例子

    排列组合是数学中的一个分支.在计算机编程方面也有非常多的应用,主要有排列公式和组合公式.错排公式.母函数.Catalan Number(卡特兰数)等. 一.有关组合数学的公式 1.排列公式   P(n ...

  4. HotSpot Java虚拟机中的“方法区”“持久代”“元数据区”的关系?

    Sun/Oracle JDK的HotSpot VM中,直到JDK7都有“持久代”(Permanent Generation,简称PermGen).也称为方法区.Oracle JDK8的HotSpot ...

  5. Android 模仿QQ空间风格的 UI

    本文内容 环境 演示模仿QQ空间风格的UI 虽然这个 UI 跟现在的QQ空间有点差别,但是也能学到很多东西. 下载 Demo 环境 Windows 7 64 位 Eclipse ADT V22.6.2 ...

  6. C#.NET常见问题(FAQ)-override覆盖和virtual虚类如何理解

    父类使用virtual关键字,可以让子类的实例完全代替基类的类成员.(前面父类virtual后面子类override),比如下面我定义一个Employee的员工的基类,给这个基类定义了Start_Wo ...

  7. js 时间加减

    //js格式化时间 "yyyy-MM-dd hh:mm:ss" Date.prototype.Format = function (fmt) { var o = { "M ...

  8. TQ2440与西门子S7-200 PLC自由口通信实现过程中问题总结

    1.在win7上安装好PLC编程软件 STEP 7 MicroWIN 之后,无法实现编程软件与PLC的通信连接? 原因:STEP 7 MicroWIN 对win7支持不是很好 解决办法:在win7中安 ...

  9. volatile synchronized AtomicInteger的区别

    在网络上看了很多关于他们两个的区别与联系,今天用自己的话表述一下: synchronized 容易理解,给一个方法或者代码的一个区块加锁,那么需要注意的是,加锁的标志位默认是this对象,当然聪明的你 ...

  10. Intellij IDEA连接Spark集群

    1. 首先安装Scala插件,File->Settings->Plugins,搜索出Scla插件,点击Install安装: 2. File->New Project->mave ...