进阶之路(基础篇) - 010 Arduino 函数(基本、串口、SPI)
一.基本函数
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)的更多相关文章
- docker进阶之路-基础篇 | 一:环境搭建
转载请注明作者及出处: 作者:银河架构师 原文链接:https://www.cnblogs.com/luas/p/12061747.html 一.准备工作 查看内核 Docker 要求 CentOS ...
- docker进阶之路-基础篇 | 二:portainer安装与基本使用
转载请注明作者及出处: 作者:银河架构师 原文链接:https://www.cnblogs.com/luas/p/12061755.html 简介 Portainer 是轻量级,跨平台,开源的管理D ...
- python之路基础篇
基础篇 1.Python基础之初识python 2.Python数据类型之字符串 3.Python数据类型之列表 4.Python数据类型之元祖 5.Python数据类型之字典 6.Python Se ...
- Python基础篇(三)_函数及代码复用
Python基础篇_函数及代码复用 函数的定义.使用: 函数的定义:通过保留字def实现. 定义形式:def <函数名>(<参数列表>): <函数体> return ...
- python学习之路基础篇(第四篇)
一.课程内容回顾 1.python基础 2.基本数据类型 (str|list|dict|tuple) 3.将字符串“老男人”转换成utf-8 s = "老男人" ret = by ...
- Python学习之路基础篇--10Python基础,函数进阶
1 命名空间 对于Python 来说命名空间一共有三种 1 内置命名空间 —— Python 解释器 就是Python 解释器一启动就可以使用的名字,储存在内置命名空间中.内置的名字在启动解释器的时候 ...
- Python学习之路基础篇--11-12Python基础,函数的装饰器
对于装饰器来说,就是在不改变函数的调用的情况下,对函数的前后增加了些许功能,这完全符合函数的 开放封闭 原则.装饰器的本质 其实就是一个闭包函数. 这是一个装饰器的步骤图 ret = func(*ar ...
- Python学习之路基础篇--09Python基础,初识函数
函数可以分为内置函数 和 自定义函数.这次关注的主要是自定义函数.定义函数之后,就可以在任何需要它的地方调用. 1 返回值的重要性 返回值的3种情况 没有返回值 ---- 返回None 不定 retu ...
- 从零开始的程序逆向之路基础篇 第二章——用OllyDbg(OD)分析一个简单的软件
作者:Crazyman_Army 原文来自:https://bbs.ichunqiu.com/thread-43469-1-1.html 0x00知识回顾 (由于笔者省事,没开XP虚拟机,而且没关闭A ...
随机推荐
- 教程 | Kaggle网站流量预测任务第一名解决方案:从模型到代码详解时序预测
https://mp.weixin.qq.com/s/JwRXBNmXBaQM2GK6BDRqMw 选自GitHub 作者:Artur Suilin 机器之心编译 参与:蒋思源.路雪.黄小天 近日,A ...
- Centos6.4下安装mysql5.6.10
今天下午捣腾安装mysql和apache.从网上下载mysql5.6.10,http://ishare.iask.sina.com.cn/f/36050990.html,解压后发现没有configur ...
- Python基础案例教程
一.超市买薯片 # 用户输入薯片的单价 danjia = float(input("薯片的单价")) # 用户输入购买袋数 daishu = int(input("购买的 ...
- Global Web Index发布社交网络现状调查,Snapchat增速领跑移动端所有App,四分之一Facebook用户年龄在45岁以上【转载+整理】
原文地址 有次上班做公交,期间听到一个老太太说:"我加你微信啊--",还有一次去看老中医,并交换了电话,可当我回去后发现这个大夫竟然加了我微信--这些都令我有点吃惊,连60.70岁 ...
- BAT,你好!字幕组,再见!——也许要跟美剧说再见了~
对于美剧迷来说,上周的星期六(2014 年11 月 22 日)是黑色的一天. 11 月 22 日,人人影视暂时关站,并发布公告称网站正在清理内容.虽然这不是人人影视第一次关站清理,而且人人影视还给出提 ...
- C++实现一个web服务器, 弱智版服务器
监听本地的8888端口, 当在浏览器中访问这个地址的时候, 返回一堆HTML数据, 这种方式返回的数据不稳定,不同浏览器解析不同, 因为我们没有定义返回文件类型: #include <stdli ...
- C# .Net计算函数执行的时间
C#计算函数执行的时间 protected void StopwatchTest() { System.Diagnostics.Stopwatch stopwatch = new System.Dia ...
- 微信小程序 - debug(调试)
微信小程序调试的方式是基于Chrome. 1. 常见console.log调试(可以具体参考console.log这个函数使用,它可不止这一个作用!) 2.使用NETWORK(我们可以查询到访问了那些 ...
- JAVA GC优化入门
为什么需要优化GC? JAVA的GC是面试必考的题目,可是在实际项目中什么时候使用GC哪?或者应该什么时候优化GC哪?有句名言:“GC优化永远是最后一项任务”. 在使用GC之前,应该考虑一下进行GC的 ...
- Endorsement 业务逻辑介绍
本文主要介绍保单系统中Endorsement功能的基本逻辑和过程,主要参考OIC系统 保单系统 保险公司用来管理保单的信息系统,这里简称为保单系统.主要作用是收集和维护投保人信息和投保信息,计算保费, ...