文章目录

  • 串口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相关推荐

  1. 英伟达Jeston nano<3>使用Python实现三种方式串口通信

    英伟达Jeston nano<3>使用Python实现三种方式串口通信 前言 通信配置过程 基本信息 配置过程 方案一:Python-40pinEXpansion Header 方案二:P ...

  2. 详解微信小程序页面间传递信息的三种方式

    详解微信小程序页面间传递信息的三种方式 在开发微信小程序的时候,经常会遇到在页面间传递信息的情况,有三种方法可以实现. 1. 使用数据缓存 将要存储的数据使用以下方法放入缓存 wx.setStorag ...

  3. 第二周项目1函数参数传递的三种方式

    /* .*Copyright (c) 2014,烟台大学计算机学院 *All right reserved. *文件名称:函数参数传递的三种方式.cpp *作者:彭子竹 *完成日期:2015年9月11 ...

  4. SpringBoot项目实现多数据源的三种方式

    在开发过程中,我们经常被要求在一个项目中使用多数据源下面是总结下,使用多数据源的几种方式: 方式一:在同一实例下的不同数据库(在写SQL的时候用(数据库名称+"."+表名)) 方式 ...

  5. 小程序瀑布流的实现三种方式

    实现思路:把图片分成两排,创建两个数组,计算总数组中图片的宽高,对比上一个图片和当前的图片高度,低的就给另一个数组添加. 效果图: 第一种:如果后端返回了图片高度 处理过程如下: js: Page({ ...

  6. Python入门小项目-计算阶乘n的三种方法+常见练习(含代码示例)

    今天的文章主要给各位整理了Python常见的集中计算练习,这些也是作为初学者必会的联系项目了,代码分享出来,需要的朋友们可以看下~ 一.计算阶乘n! 整数的阶乘(英语:factorial)是所有小于及 ...

  7. 【小项目关键技术六】控制北斗 GPS 定位 / UWB 室内定位

    文章目录 UWB 定位 GPS 定位 UWB 定位 产品链接:维特智能UWB室内定位传感器模块平面坐标二维厘米级通讯距离测量 产品资料地址:(打开网站搜索型号获取资料) 模块实物如下: 指令 功能 0 ...

  8. 【小项目关键技术五】控制全彩 WS2812 灯环/灯带

    Ref: Arduino控制WS2812灯带(灯环) #include <FastLED.h>#define LED_PIN 13// Information about the LED ...

  9. 【小项目关键技术七】MPU6050

    Ref: MPU 6050 Tutorial | How to Program MPU 6050 With Arduino connections for our Arduino UNO and NA ...

最新文章

  1. 验证环境中的program为什么必须是automatic
  2. Josephus Problem的详细算法及其Python, Java语言的实现
  3. RocketMQ的安装与配置
  4. 2017.9.13 找硬币 失败总结
  5. linux下简单time machine实现,可选择快速备份恢复脚本
  6. 发那科程序全部输出_走,去看看发那科机器人全新的自动化解决方案!
  7. 如何在文件夹中打开DOS命令窗口
  8. HTTP的报文(详解)
  9. 可编辑ppt地图分布图怎么做?
  10. Android深色模式适配
  11. cad图纸问号怎么转换文字_打开cad2016图纸字体和符号显示问号怎么办?
  12. 调用restFul接口如何实现返回的数据编码格式为utf-8
  13. html nav标签无序排列,web前端分享HTML5中的nav标签
  14. Tab表格thead头部固定(demo)
  15. 最近沉迷美女图片无法自拔,所以我决定用PHP扒海量妹子图
  16. 华为telnet连接(无用户名登录和aaa模板登录)
  17. 程序员高效率工作工具归纳(上)
  18. Ubuntu启动错误——Kernel panic - not syncing VFS unable to mount root fs on unknown-block 0 0
  19. numeric_limits用法
  20. 例3.2 计算存款利息。有1000元,存一年。(1)活期,年利率为r1,(2)一年期定期,年利率为r2,(3)存两年半年定期,年利率为r3。

热门文章

  1. Java锁机制(一)synchronized
  2. 【Python机器学习时间指南】一、Python机器学习的生态系统
  3. .net微软消息队列(msmq)简单案例
  4. 程序员成长的三个方法
  5. 18.实现标准的Dispose模式
  6. ASP.NET Razor (标记)语言概要
  7. 用RadASM开发窗口程序(2)
  8. C#_动态获取鼠标位置的颜色
  9. iOS 开发一定要尝试的 Texture(ASDK)
  10. tomcat架构分析(valve机制)