找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2228|回复: 2
收起左侧

STM32片外EEPROM(硬件IIC)源程序

[复制链接]
ID:634006 发表于 2019-11-17 16:58 | 显示全部楼层 |阅读模式
  1. /****************************************Copyright (c)******************************************
  2. **
  3. **--------------File Info-----------------------------------------------------------------------
  4. ** File name:                 main.c
  5. ** Last modified Date:         
  6. ** Last Version:                  
  7. ** Descriptions:                                          
  8. **----------------------------------------------------------------------------------------------
  9. ** Created by:                        FiYu
  10. ** Created date:                2018-1-20
  11. ** Version:                            1.0
  12. ** Descriptions:                通过硬件IIC接口对外部EEPROM芯片(AT24CXX系列)进行读写操作,并通过串口1显示读取的数值
  13. **--------------------------------------------------------------------------------------------*/
  14. #include "stm32f10x.h"
  15. #include "user_usart.h"
  16. #include "user_eeprom.h"       
  17. //delay这里报错的原因是:delay函数用汇编实现的,导致了MDK误报。
  18. #include "delay.h"


  19. /***************************************************************************
  20. * 描  述 : 主函数
  21. * 参  数 : 无
  22. * 返回值 : 无
  23. **************************************************************************/
  24. int main(void)
  25. {
  26.         uint8_t        Temp;
  27.   
  28.   //初始化USART1并配置USART1中断优先级
  29.   USART1_Init();
  30.   //初始化EEPROM用IIC所用到的IO口
  31.   I2C_GPIO_Init();       
  32.   //初始化I2C1
  33.   I2C1_Init();       
  34.   
  35.   while(1)
  36.   {              
  37.      if(WriteFLAG)                                //写模式
  38.                  {              
  39.                           WriteFLAG=0;                              //写标志变量清零,发送一次
  40.                           AT24CXX_SendOneByte(200,0x33);                        //在地址200位置写入1个字节数据0x33
  41.         USART1_SendByte(0x33);                    //串口1发送数据0x33表示写操作完成
  42.                  }
  43.                  if(ReadFLAG)                                 //读模式
  44.                  {
  45.                           ReadFLAG=0;                               //读标志变量清零,发送一次
  46.                           Temp=AT24CXX_RcvOneByte(100);                                //在地址200位置处读取1个字符
  47.         USART1_SendByte(Temp);                    //串口1发送读取的字符
  48.                  }       
  49.                  if(ClearFLAG)                                //清除模式
  50.                  {
  51.                           ClearFLAG=0;                              //清除标志变量清零,发送一次
  52.                           AT24CXX_EraseOneByte(200);                //擦除地址200位置处数据
  53.         USART1_SendByte(0x00);                    //串口1发送数据0x00表示擦除完成
  54.                  }         
  55.         }
  56. }

  57. /********************************************END FILE********************/
复制代码

全部资料51hei下载地址:
片外EEPROM(硬件IIC).7z (644.42 KB, 下载次数: 69)
回复

使用道具 举报

ID:124486 发表于 2023-11-28 18:18 | 显示全部楼层
参考一下
回复

使用道具 举报

ID:101305 发表于 2023-12-4 13:02 | 显示全部楼层
谢谢大神,可以参考下,硬件比软件要简单
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表