- /****************************************Copyright (c)******************************************
- **
- **--------------File Info-----------------------------------------------------------------------
- ** File name: main.c
- ** Last modified Date:
- ** Last Version:
- ** Descriptions:
- **----------------------------------------------------------------------------------------------
- ** Created by: FiYu
- ** Created date: 2018-1-20
- ** Version: 1.0
- ** Descriptions: 通过硬件IIC接口对外部EEPROM芯片(AT24CXX系列)进行读写操作,并通过串口1显示读取的数值
- **--------------------------------------------------------------------------------------------*/
- #include "stm32f10x.h"
- #include "user_usart.h"
- #include "user_eeprom.h"
- //delay这里报错的原因是:delay函数用汇编实现的,导致了MDK误报。
- #include "delay.h"
- /***************************************************************************
- * 描 述 : 主函数
- * 参 数 : 无
- * 返回值 : 无
- **************************************************************************/
- int main(void)
- {
- uint8_t Temp;
-
- //初始化USART1并配置USART1中断优先级
- USART1_Init();
- //初始化EEPROM用IIC所用到的IO口
- I2C_GPIO_Init();
- //初始化I2C1
- I2C1_Init();
-
- while(1)
- {
- if(WriteFLAG) //写模式
- {
- WriteFLAG=0; //写标志变量清零,发送一次
- AT24CXX_SendOneByte(200,0x33); //在地址200位置写入1个字节数据0x33
- USART1_SendByte(0x33); //串口1发送数据0x33表示写操作完成
- }
- if(ReadFLAG) //读模式
- {
- ReadFLAG=0; //读标志变量清零,发送一次
- Temp=AT24CXX_RcvOneByte(100); //在地址200位置处读取1个字符
- USART1_SendByte(Temp); //串口1发送读取的字符
- }
- if(ClearFLAG) //清除模式
- {
- ClearFLAG=0; //清除标志变量清零,发送一次
- AT24CXX_EraseOneByte(200); //擦除地址200位置处数据
- USART1_SendByte(0x00); //串口1发送数据0x00表示擦除完成
- }
- }
- }
- /********************************************END FILE********************/
复制代码
全部资料51hei下载地址:
片外EEPROM(硬件IIC).7z
(644.42 KB, 下载次数: 74)
|