IIC_STM32F1_AT24C02实验:AT24C02 模块(3)

该文提供了一个基于STM32F1系列MCU的IIC通信AT24C02存储器的实验开发流程,包括写入和读取字节的函数实现,以及页写和顺序读的功能。此外,还介绍了检测AT24C02模块是否正常运行的方法,采用0X55作为测试信号。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

IIC(集成电路总线)-STM32F1系列-AT24C02-简易实验开发详细流程(个人总结)

基于正点原子代码的个人改编,本篇(IIC实验)共3个章节。
注:本博客无盈利行为,真诚希望能帮助到大家!如有错误,还请指正!

IIC_STM32F1_AT24C02实验:AT24C02 模块(3)

第一步:编写基础的实现逻辑

(1)模块通信配置和写字节逻辑(本文中的代码均通过测试)
at24c02.h 文件

/*
* AT24C02 模块,总容量 2KB,总页数 32,8 字节/页,字地址长度 8 位。
* 基本的读写功能
* 程序员:贬道
*/

#ifndef AT24C02_H
#define AT24C02_H

#include "stm32f10x.h"

// 基础配置与实现逻辑
// 读写操作位:1 读;0 写
/************************************************************************************/
#define AT24C02	255		// AT24C02 共 256 个字节

void AT24C02_Init(void);

void AT24C02_WriteOneByte(u8 WriteAddr, u8 DataToWrite);	// 指定地址写入一个字节
/************************************************************************************/

#endif

AT24C02 写字节时序
at24c02.c 文件

#include "at24c02.h"
#include "iic.h"
#include "delay.h"

/************************************************************************************/
void AT24C02_Init(void){
   
	IIC_Idle();
}

// 写字节
/*
WriteAddr   : 写入数据的目的地址
DataToWrite : 要写入的数据
*/
void AT24C02_WriteOneByte(u8 WriteAddr, u8 DataToWrite){
   
	IIC_Start();
	
	IIC_Send_Byte(0XA0);			// 发送 AT24C02 器件地址 0XA0 和写操作
	IIC_WaitAck();					// 低电平为应答
	
    IIC_Send_Byte(WriteAddr%256);	// 发送要写的数据的低地址,地址由低到高
	IIC_WaitAck();
	
	IIC_Send_Byte(DataToWrite);		// 发送字节,传输数据
	IIC_WaitAck();
	
    IIC_Stop();						// 产生一个停止条件
	Delay_ms(10);					// 确保有足够的时间防止传输意外,最好不小于 5ms
}
/*********************************************************
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值