STM32

您所在的位置:网站首页 iic通信程序 STM32

STM32

2024-06-06 01:12| 来源: 网络整理| 查看: 265

STM32——IIC详解 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 总线时序图如图 27.1.1 所示: 在这里插入图片描述 ALIENTEK 精英 STM32F103 板载的 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 个按键(KEY1) 用来执行写入 24C02 的操作,另外一个按键(KEY0) 用来执行读出操作,在 TFTLCD 模块上显示相关信息。同时用 DS0 提示程序正在运行。

硬件连接

本次实验用到的硬件资源: 1) 指示灯 DS0 2) KEY0 和 KEY1 按键 3) 串口( USMART 使用) 4) TFTLCD 模块 5) 24C02 这里只介绍 24C02 与STM32F1 的连接, 24C02 的 SCL 和 SDA 分别连在 STM32F1 的 PB6 和 PB7 上的,连接关系如图 27.2.1 所示: 在这里插入图片描述

软件设计

在 HARDWARE 文件夹下新建一个 24CXX 的文件夹。然后新建一个 24cxx.c、 myiic.c的文件和 24cxx.h、 myiic.h 的头文件,保存在 24CXX 文件夹下,并将 24CXX 文件夹加入头文件包含路径。 打开 myiic.c 文件,输入如下代码:

//初始化 IIC void IIC_Init(void) { RCC->APB2ENR|=1CRL|=0X33000000; GPIOB->ODR|=37; txd


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3