STMCU小助手
发布时间:2022-6-27 10:26
|
本实验所要实现的功能是:首先检测 AT24C02 芯片是否存在,如果存在则输出提示信息,然后通过按键 K_UP 和 K_DOWN 控制 AT24C02 数据读写,并输出写入和读取的数据信息,最后让D1指示灯闪烁提示系统正常运行。程序框架如下: (1)使能所用 GPIO端口时钟,初始化 GPIO (2)使用软件模拟 I2C通信时序,包含起始和停止信号、应答信号等 (3)编写 AT24C02读写函数 (4)编写主函数 前面的实验中都有 GPIO 的初始化,现在对大家来说应该不是问题,所以本章软件的重点在 I2C 时序的模拟及数据的读写上。下面我们打开“I2C-EEPROM实验” 工程, 在APP工程组中可以看到添加了iic.c和 24cxx.c 文件 (iic.c 里面包含了 I2C 驱动程序, 24cxx.c 里面包含了AT24CXX驱动程序,并且此程序支持 AT24C01/02/04/08/16/32/64/128/256 芯片),还要包含对应的头文件路径。 这里我们分析 PZ6806L 开发板的 EEPROM 实验的几个重要函数,其他部分程序大家可以打开工程查看, 对于PZ6806D开发板EEPROM实验例程只是修改下IIC的 IO口即可。 I2C 初始化函数 我们是使用 STM32F1的PB10 和 PB11 模拟 I2C,所以需要使能其端口时钟,并初始化 GPIO,初始化代码如下:
由于我们使用的是软件模拟 I2C,所以在配置管脚为推挽输出即可,如果配置为开漏输出也是可以的,因为 PB10 和 PB11 上都外接了上拉电阻。但是如果使用STM32F1硬件I2C就必须配置为开漏输出。初始化函数内的IIC_SCL和IIC_SDA是我们定义的宏,其实就是对 PB10 和 PB11 位带的封装,可以在 iic.h 头文件查看到。 |
【福利三:逢7发帖赢大礼】想要充分利用STM32H743VI片内的RAM空间(但并不顺利)
基于stm32平台上的IC-MU磁绝对值编码器SPI通讯和码盘数据处理
使用STM32 MCU和MPU连接PDM数字麦克风
分享STM32资料-采用 STM32U031R8 MCU 的 STM32 Nucleo-64 开发板,官方资料,数据手册等资料
好用软件推荐-TouchGFX Designer
HRTIM 指南
使用 STM32 的 DWT 单元监控内存
DAC,COMP,HRTIM Fault 功能的使用
一个软件引起的 LSE 驱动不良的问题
STM32 GUI LTDC 最大像素时钟评估方法
微信公众号
手机版