標(biāo)題: STM32片外EEPROM(硬件IIC)源程序 [打印本頁(yè)]

作者: meteorite07    時(shí)間: 2019-11-17 16:58
標(biāo)題: STM32片外EEPROM(硬件IIC)源程序
  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:                通過(guò)硬件IIC接口對(duì)外部EEPROM芯片(AT24CXX系列)進(jìn)行讀寫(xiě)操作,并通過(guò)串口1顯示讀取的數(shù)值
  13. **--------------------------------------------------------------------------------------------*/
  14. #include "stm32f10x.h"
  15. #include "user_usart.h"
  16. #include "user_eeprom.h"       
  17. //delay這里報(bào)錯(cuò)的原因是:delay函數(shù)用匯編實(shí)現(xiàn)的,導(dǎo)致了MDK誤報(bào)。
  18. #include "delay.h"


  19. /***************************************************************************
  20. * 描  述 : 主函數(shù)
  21. * 參  數(shù) : 無(wú)
  22. * 返回值 : 無(wú)
  23. **************************************************************************/
  24. int main(void)
  25. {
  26.         uint8_t        Temp;
  27.   
  28.   //初始化USART1并配置USART1中斷優(yōu)先級(jí)
  29.   USART1_Init();
  30.   //初始化EEPROM用IIC所用到的IO口
  31.   I2C_GPIO_Init();       
  32.   //初始化I2C1
  33.   I2C1_Init();       
  34.   
  35.   while(1)
  36.   {              
  37.      if(WriteFLAG)                                //寫(xiě)模式
  38.                  {              
  39.                           WriteFLAG=0;                              //寫(xiě)標(biāo)志變量清零,發(fā)送一次
  40.                           AT24CXX_SendOneByte(200,0x33);                        //在地址200位置寫(xiě)入1個(gè)字節(jié)數(shù)據(jù)0x33
  41.         USART1_SendByte(0x33);                    //串口1發(fā)送數(shù)據(jù)0x33表示寫(xiě)操作完成
  42.                  }
  43.                  if(ReadFLAG)                                 //讀模式
  44.                  {
  45.                           ReadFLAG=0;                               //讀標(biāo)志變量清零,發(fā)送一次
  46.                           Temp=AT24CXX_RcvOneByte(100);                                //在地址200位置處讀取1個(gè)字符
  47.         USART1_SendByte(Temp);                    //串口1發(fā)送讀取的字符
  48.                  }       
  49.                  if(ClearFLAG)                                //清除模式
  50.                  {
  51.                           ClearFLAG=0;                              //清除標(biāo)志變量清零,發(fā)送一次
  52.                           AT24CXX_EraseOneByte(200);                //擦除地址200位置處數(shù)據(jù)
  53.         USART1_SendByte(0x00);                    //串口1發(fā)送數(shù)據(jù)0x00表示擦除完成
  54.                  }         
  55.         }
  56. }

  57. /********************************************END FILE********************/
復(fù)制代碼

全部資料51hei下載地址:
片外EEPROM(硬件IIC).7z (644.42 KB, 下載次數(shù): 74)

作者: longline    時(shí)間: 2023-11-28 18:18
參考一下
作者: herohuang    時(shí)間: 2023-12-4 13:02
謝謝大神,可以參考下,硬件比軟件要簡(jiǎn)單




歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1