0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

STM32的IIC通信原理详解

CHANBAEK 来源:头条号秋天滴风 作者:头条号秋天滴风 2023-04-25 09:51 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

本文将介绍STM32 IIC的通信原理和协议

①IIC总线简介

②IIC总线协议与读写操作

③STM32 IIC控制器介绍

①IIC总线简介

IIC是inter integrated circuit的简称,IIC是由PHILIPS公司开发的两线式串行总线;该总线具有接口线少、易于控制、通讯速率高等有点,在微电子控制领域被广泛使用。

IIC总线具备以下特征:

1、同步通信,半双工,以字节为传输单位;

2、两条线路、SDA和SCL;

3、挂载在IIC总线上的设备均可为主设备、亦可为从设备;

4、具有3种传输速率,最高可达3.4Mbit/s;可通过总线时钟的频率和总线上拉电阻来配置传输速率;

5、多主机功能、7位和10位地址模式、可以软件复位、1字节缓冲带DMA功能;

IIC总线的物理连接如下图:

wKgaomRHMiuAJiZ1AAFCzFaaXMk575.jpg

SDA和SCL总线上会有上拉电阻,总线上可以挂在一定数量的设备通过总线进行通讯、当总线空闲时总线上处于高电平。

②IIC总线协议与读写操作

wKgZomRHMiuABQVPAAB673MwkaE255.jpg

IIC总线协议包括:起始信号、终止信号、数据、应答部分;

起始信号:当总线处于空闲状态时SDA SCL两根线上是高电平,若此时SDA由高变低、则定义为起始信号;

终止信号:当SCL处于高电平时,若此时SDA由低变高、则定义为终止信号;

起始信号、终止信号顾名思义是通信的开始和终止,这两个信号都有主设备发起;

数据:可分为地址数据、和真实意义上的地址内存储的数据;

应答:应答可以有应答信号和非应答信号,该信号是跟在数据后面;

若主设备向从设备写1个数据会有以下过程:

起始信号>从机地址+写位ACK>写入地址ACK>写入数据ACK>终止信号

wKgaomRHMiyATB1FAAAcPJmFsxU058.jpg

若主设备向从设备读1个数据会有以下过程:

起始信号>从机地址+写位ACK>要读的地址ACK>起始信号>从机地址+读位ACK>地址内的数据NACK>终止信号

wKgZomRHMiyAKXDoAAAkzK4W93g109.jpg

若读多个数据就是“从机地址+读位ACK>地址内的数据NACK”重复几次

③STM32 IIC控制器介绍

STM32这种芯片是具有IIC控制器的,这样可以通过硬件产生IIC时序;但有些简单的单片机就可能没有IIC控制器,那我们如何与IIC设备通讯呢?答案就是软件模拟IIC时序,软件模拟IIC时序相比更加操作繁琐、效率低。

STM32的IIC片上外设是用来专门实现IIC通讯协议的,我们只要配置好该外设,就可以产生通讯信号、收发数据并缓存起来,CPU检测外设的状态和访问数据寄存器就能完成数据的收发,这样减轻了CPU的工作负担、使得软件设计的效率提高。

以下是STM32 IIC控制器的框图:

wKgaomRHMi2AG_D2AAJkjKYFaiw398.jpg

引脚对应表:

wKgaomRHMi2AEdi2AACXiu1X8uc847.jpg

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 控制器
    +关注

    关注

    114

    文章

    17643

    浏览量

    190261
  • STM32
    +关注

    关注

    2305

    文章

    11121

    浏览量

    371164
  • IIC总线
    +关注

    关注

    1

    文章

    67

    浏览量

    22334
  • 通信原理
    +关注

    关注

    10

    文章

    125

    浏览量

    32740
  • 总线协议
    +关注

    关注

    0

    文章

    155

    浏览量

    15558
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    基于hbirdv2-sdk的iic 0.96寸lcd调试

    _SDA_PIN15// FPGA V17 三. 上板显示 注意事项: 网上基于stm32的lcd程序很多, 基于公开的程序,然后修改IIC底层相关的文件即可实现上述效果
    发表于 10-30 06:20

    iic中只设置了时钟和数据引脚没有配置那个端口,rtt是怎么知道在那个端口上进行iic通信的?

    用的5.2.0版本配置了iic的时钟和数据引脚没有配置端口,系统是怎么判断使用的那个端口的那个引脚开始了通信呢?在rt——thread中需要us的延时么?那个大佬解答一下啊,刚接触这个东西,感谢感谢
    发表于 09-26 07:26

    STM32项目分享:智能厨房安全系统(机智云)

    01—项目简介1.功能详解STM32智能厨房安全系统(机智云)功能如下:STM32F103C8T6单片机作为主控芯片检测功能:检测环
    的头像 发表于 09-10 00:01 900次阅读
    <b class='flag-5'>STM32</b>项目分享:智能厨房安全系统(机智云)

    STM32项目分享:智能语音台灯(机智云)

    01—项目简介1.功能详解STM32智能语音台灯(机智云)功能如下:STM32F103C8T6单片机作为主控单元按键切换模式,支持自
    的头像 发表于 07-24 18:03 1060次阅读
    <b class='flag-5'>STM32</b>项目分享:智能语音台灯(机智云)

    STM32项目分享:智能鱼缸/水族箱/水产养殖系统

    01—项目简介1.功能详解STM32智能鱼缸/水族箱/水产养殖系统功能如下:可检测温度,水位
    的头像 发表于 07-03 18:24 749次阅读
    <b class='flag-5'>STM32</b>项目分享:智能鱼缸/水族箱/水产养殖系统

    求助,关于STM32F030的iic主收问题求解

    我现在用stm32f030,在IIC的主模式下,想在收到一个字节数据后就回NACK和stop,但是现在实际情况是,我在接收到一个字节后进入接收中断再使能STOP,看波形是收到这个字节后自动回了一个
    发表于 06-24 07:54

    STM32U3 IIC通信后,SPI+GPDMA 进入循环发送,DMA无法使能寄存器USEF=1怎么解决?

    )); 现象:当data1=0x00 时,SPI+GPDMA正常发送,当data1不等于0x00 时比如0x01等,GPDMA并不能使能。把IIC代码注释了,能够正常发送SPI+GPMDA。IIC确实是能通信的。
    发表于 06-09 07:05

    STM32U3 IIC通信后,SPI+GPDMA 进入循环发送,DMA无法使能寄存器USEF=1怎么办?

    )); 现象:当data1=0x00 时,SPI+GPDMA正常发送,当data1不等于0x00 时比如0x01等,GPDMA并不能使能。把IIC代码注释了,能够正常发送SPI+GPMDA。IIC确实是能通信的。
    发表于 06-05 06:51

    STM32项目分享:智能鞋柜

    01—项目简介1.功能详解STM32智能鞋柜功能如下:DHT11检测鞋柜温湿度,温度低于阈值开启加热,湿度高于阈值开启加热和通风;P
    的头像 发表于 05-27 18:04 702次阅读
    <b class='flag-5'>STM32</b>项目分享:智能鞋柜

    IIC接口的IIC_SCL和IIC_SDA引脚做普通GPIO,程序启动不起来怎么解决?

    想用IIC接口的IIC_SCL和IIC_SDA引脚做普通GPIO,两个引脚对应的是GPIO58和GPIO59,更改代码将设置为普通GPIO引脚模式后,程序启动不起来。问:这种情况如何解决,官方支持这种应用吗?
    发表于 05-06 08:59

    STM32U3 IIC通信后,SPI+GPDMA 进入循环发送,DMA无法使能寄存器USEF=1怎么解决?

    )); 现象:当data1=0x00 时,SPI+GPDMA正常发送,当data1不等于0x00 时比如0x01等,GPDMA并不能使能。把IIC代码注释了,能够正常发送SPI+GPMDA。IIC确实是能通信的。
    发表于 04-29 06:01

    STM32项目分享:STM32智能语音分类垃圾桶

    01—项目简介1.功能详解STM32智能语音分类垃圾桶功能如下:1.STM32F103C8T6单片机系统板作为主控单元2.舵机驱动垃
    的头像 发表于 03-15 10:02 2399次阅读
    <b class='flag-5'>STM32</b>项目分享:<b class='flag-5'>STM32</b>智能语音分类垃圾桶

    STM32项目分享:STM32智能语音台灯

    —项目简介1.功能详解STM32智能语音台灯功能如下:1.STM32F103C8T6单片机系统板作为主控单元2.按键切换模式,支
    的头像 发表于 03-15 10:02 2349次阅读
    <b class='flag-5'>STM32</b>项目分享:<b class='flag-5'>STM32</b>智能语音台灯

    DLPC3435 IIC通信时候会干扰到DLPC3435正常工作,导致显示花屏或者画面不动怎么解决?

    IIC通信导致DLPC3435出现BUG,导致花屏。 想提问题的是:IIC通信真的会干扰到DLPC3435吗?如果真的是这样要如何规规避这个问题呢?
    发表于 02-21 09:53

    STM32项目分享:机智云智慧农业系统

    01—项目简介1.功能详解基于STM32的机智云智慧农业系统。功能如下:温湿度采集:使用DHT11温湿度传感器采集环境温湿度土壤湿度
    的头像 发表于 12-19 18:40 1902次阅读
    <b class='flag-5'>STM32</b>项目分享:机智云智慧农业系统