【小项目关键技术】硬件通信三种方式、串口、IIC、SPI
文章目录
- 串口UART:
- IIC
- SPI
- SWD 仿真下载接口
串口UART:
引脚 | 功能 |
---|---|
VCC | |
GND | |
TXD | 发送数据输出引脚。 |
RXD | 接收数据输入引脚。 |
IIC
引脚定义为:SCL、SDA
I2C总线是一种同步、半双工双向的两线式串口总线。它由两条总线组成:串行时钟线SCL和串行数据线SDA。
SCL线——负责产生同步时钟脉冲。
SDA线——负责在设备间传输串行数据。
SPI
引脚定义为:SCLK、MOSI、MISO、CS
SPI总线是同步、全双工双向的4线式串行接口总线。它是由“单个主设备+多个从设备”构成的系统。
在系统中,只要任意时刻只有一个主设备是处于激活状态的,就可以存在多个SPI主设备。常运用于AD转换器、EEPROM、FLASH、实时时钟、数字信号处理器和数字信号解码器之间实现通信。
为了实现通信,SPI共有4条信号线,分别是:
主设备出、从设备入(Master Out Slave In,MOSI):由主设备向从设备传输数据的信号线,也称为从设备输入(Slave Input/Slave Data In,SI/SDI)。
主设备入、从设备出(Master In Slave Out,MISO):由从设备向主设备传输数据的信号线,也称为从设备输出(Slave Output/Slave Data Out,SO/SDO)。
串行时钟(Serial Clock,SCLK):传输时钟信号的信号线。
从设备选择(Slave Select,SS):用于选择从设备的信号线,低电平有效。
UART、SPI、I2C比较
I2C线更少,比UART、SPI更为强大,但是技术上也更加麻烦些,因为I2C需要有双向IO的支持,而且使用上拉电阻,抗干扰能力较弱,一般用于同一板卡上芯片之间的通信,较少用于远距离通信。
SPI实现要简单一些,UART需要固定的波特率,就是说两位数据的间隔要相等,而SPI则无所谓,因为它是有时钟的协议。
I2C的速度比SPI慢一点,协议比SPI复杂一点,但是连线也比标准的SPI要少。
UART一帧可以传5/6/7/8位,I2C必须是8位。I2C和SPI都从最高位开始传。
SPI用片选信号选择从机,I2C用地址选择从机。
SWD 仿真下载接口
引脚定义为:SWCLK、SWIO、SWIO、SWCLK
Ref:
[1] 单片机常用的几种通信接口,I2C、SPI、UART等
[2] 单片机常用的几种通信接口
【小项目关键技术】硬件通信三种方式、串口、IIC、SPI相关推荐
- 英伟达Jeston nano<3>使用Python实现三种方式串口通信
英伟达Jeston nano<3>使用Python实现三种方式串口通信 前言 通信配置过程 基本信息 配置过程 方案一:Python-40pinEXpansion Header 方案二:P ...
- 详解微信小程序页面间传递信息的三种方式
详解微信小程序页面间传递信息的三种方式 在开发微信小程序的时候,经常会遇到在页面间传递信息的情况,有三种方法可以实现. 1. 使用数据缓存 将要存储的数据使用以下方法放入缓存 wx.setStorag ...
- 第二周项目1函数参数传递的三种方式
/* .*Copyright (c) 2014,烟台大学计算机学院 *All right reserved. *文件名称:函数参数传递的三种方式.cpp *作者:彭子竹 *完成日期:2015年9月11 ...
- SpringBoot项目实现多数据源的三种方式
在开发过程中,我们经常被要求在一个项目中使用多数据源下面是总结下,使用多数据源的几种方式: 方式一:在同一实例下的不同数据库(在写SQL的时候用(数据库名称+"."+表名)) 方式 ...
- 小程序瀑布流的实现三种方式
实现思路:把图片分成两排,创建两个数组,计算总数组中图片的宽高,对比上一个图片和当前的图片高度,低的就给另一个数组添加. 效果图: 第一种:如果后端返回了图片高度 处理过程如下: js: Page({ ...
- Python入门小项目-计算阶乘n的三种方法+常见练习(含代码示例)
今天的文章主要给各位整理了Python常见的集中计算练习,这些也是作为初学者必会的联系项目了,代码分享出来,需要的朋友们可以看下~ 一.计算阶乘n! 整数的阶乘(英语:factorial)是所有小于及 ...
- 【小项目关键技术六】控制北斗 GPS 定位 / UWB 室内定位
文章目录 UWB 定位 GPS 定位 UWB 定位 产品链接:维特智能UWB室内定位传感器模块平面坐标二维厘米级通讯距离测量 产品资料地址:(打开网站搜索型号获取资料) 模块实物如下: 指令 功能 0 ...
- 【小项目关键技术五】控制全彩 WS2812 灯环/灯带
Ref: Arduino控制WS2812灯带(灯环) #include <FastLED.h>#define LED_PIN 13// Information about the LED ...
- 【小项目关键技术七】MPU6050
Ref: MPU 6050 Tutorial | How to Program MPU 6050 With Arduino connections for our Arduino UNO and NA ...
最新文章
- 验证环境中的program为什么必须是automatic
- Josephus Problem的详细算法及其Python, Java语言的实现
- RocketMQ的安装与配置
- 2017.9.13 找硬币 失败总结
- linux下简单time machine实现,可选择快速备份恢复脚本
- 发那科程序全部输出_走,去看看发那科机器人全新的自动化解决方案!
- 如何在文件夹中打开DOS命令窗口
- HTTP的报文(详解)
- 可编辑ppt地图分布图怎么做?
- Android深色模式适配
- cad图纸问号怎么转换文字_打开cad2016图纸字体和符号显示问号怎么办?
- 调用restFul接口如何实现返回的数据编码格式为utf-8
- html nav标签无序排列,web前端分享HTML5中的nav标签
- Tab表格thead头部固定(demo)
- 最近沉迷美女图片无法自拔,所以我决定用PHP扒海量妹子图
- 华为telnet连接(无用户名登录和aaa模板登录)
- 程序员高效率工作工具归纳(上)
- Ubuntu启动错误——Kernel panic - not syncing VFS unable to mount root fs on unknown-block 0 0
- numeric_limits用法
- 例3.2 计算存款利息。有1000元,存一年。(1)活期,年利率为r1,(2)一年期定期,年利率为r2,(3)存两年半年定期,年利率为r3。