模拟iic和硬件iic区别_「正点原子NANO STM32开发板资料连载」第二十三章 IIC 实验...

1)实验平台:alientek NANO STM32F411 V1开发板2)摘自《正点原子STM32F4 开发指南(HAL 库版》关注官方微信号公众号,获取更多资料:正点原子

d80637d24048141d08ca8c847b92c1b1.png

第二十三章 IIC 实验

本章我们将向大家介绍如何利用 STM32F4 的普通 IO 口模拟 IIC 时序,并实现和 24C02 之间的双向通信。在本章中,我们将利用 STM32F4 的普通 IO 口模拟 IIC 时序,来实现 24C02 的读写,并将结果打印在串口上。本章分为如下几个部分:

23.1 IIC 简介

23.2 硬件设计

23.3 软件设计

23.4 下载验证

23.1 IIC 简介

IIC(Inter-Integrated Circuit)总线是一种由 PHILIPS 公司开发的两线式串行总线,用于连接

微控制器及其外围设备。它是由数据线 SDA 和时钟 SCL 构成的串行总线,可发送和接收数据。

在 CPU 与被控 IC 之间、IC 与 IC 之间进行双向传送,高速 IIC 总线一般可达 400kbps 以上。

I2C 总线在传送数据过程中共有三种类型信号, 它们分别是:开始信号、结束信号和应答

信号。

开始信号:SCL 为高电平时,SDA 由高电平向低电平跳变,开始传送数据。

结束信号:SCL 为高电平时,SDA 由低电平向高电平跳变,结束传送数据。

应答信号:接收数据的 IC 在接收到 8bit 数据后,向发送数据的 IC 发出特定的低电平脉冲,

表示已收到数据。CPU 向受控单元发出一个信号后,等待受控单元发出一个应答信号,CPU 接

收到应答信号后,根据实际情况作出是否继续传递信号的判断。若未收到应答信号,由判断为

受控单元出现故障。

这些信号中,起始信号是必需的,结束信号和应答信号,都可以不要。IIC 总线时序图如

图 23.1.1 所示:

4e2533113198effc1c41102bd357ed58.png

图 23.1.1 IIC 总线时序图

ALIENTEK NANO STM32F4 板载的 EEPROM 芯片型号为 24C02。该芯片的总容量是 256

个字节,该芯片通过 IIC 总线与外部连接,我们本章就通过 STM32F1 来实现 24C02 的读写。

目前大部分 MCU 都带有 IIC 总线接口,STM32F1 也不例外。但是这里我们不使用 STM32F1

的硬件 IIC 来读写 24C02,而是通过软件模拟。ST 为了规避飞利浦 IIC 专利问题,将 STM32

的硬件 IIC 设计的比较复杂,而且稳定性不怎么好,所以这里我们不推荐使用。有兴趣的读者

可以研究一下 STM32F1 的硬件 IIC。

用软件模拟 IIC,最大的好处就是方便移植,同一个代码兼容所有 MCU,任何一个单片机

只要有 IO 口,就可以很快的移植过去,而且不需要特定的 IO 口。而硬件 IIC,则换一款 MCU,

基本上就得重新搞一次,移植是比较麻烦的,这也是我们推荐使用软件模拟 IIC 的另外一个原

因。

本章实验功能简介:开机的时候先检测 24C02 是否存在,然后在主循环里面检测两个按键,

其中 1 个按键(KEY_UP)用来执行写入 24C02 的操作,另外一个按键(KEY1)用来执行读

出操作,DS2 提示读写状态,在串口调试助手上打印显示相关信息。同时用 DS0 提示程序正在

运行。

23.2 硬件设计

本章需要用到的硬件资源有:

1) 指示灯 DS0、DS2

2) KEY_UP 和 KEY1 按键

3) 串口(打印输出和 USMART 使用)

4) 24C02

前面 4 部分的资源,我们前面已经介绍了,请大家参考相关章节。这里只介绍 24C02 与

STM32 的连接,24C02 的 SCL 和 SDA 分别连在 STM32 的 PB6 和 PB7 上的,连接关系如图

23.2.1 所示:

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值