亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? main.c

?? STM32是以Cortex-M3為核的處理器
?? C
字號:
/******************** (C) COPYRIGHT 2007 STMicroelectronics ********************
* File Name          : main.c
* Author             : MCD Application Team
* Version            : V1.0
* Date               : 10/08/2007
* Description        : Main program body
********************************************************************************
* THE PRESENT SOFTWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS
* WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE TIME.
* AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY DIRECT,
* INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING FROM THE
* CONTENT OF SUCH SOFTWARE AND/OR THE USE MADE BY CUSTOMERS OF THE CODING
* INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS.
*******************************************************************************/

/* Includes ------------------------------------------------------------------*/
#include "i2c_ee.h"

/* Private typedef -----------------------------------------------------------*/
typedef enum {FAILED = 0, PASSED = !FAILED} TestStatus;

/* Private define ------------------------------------------------------------*/
#define EEPROM_WriteAddress1 0x5
#define EEPROM_ReadAddress1  0x5
#define BufferSize1 (countof(Tx1_Buffer)-1)
#define BufferSize2 (countof(Tx2_Buffer)-1)
#define EEPROM_WriteAddress2 (EEPROM_WriteAddress1 + BufferSize1)
#define EEPROM_ReadAddress2  (EEPROM_ReadAddress1 + BufferSize1)

/* Private macro -------------------------------------------------------------*/
#define countof(a) (sizeof(a) / sizeof(*(a)))

/* Private variables ---------------------------------------------------------*/
u8 Tx1_Buffer[] = "/* STM32F10x I2C Firmware ";
u8 Tx2_Buffer[] = "Library Example */";
u8 Rx_Buffer[BufferSize1 + BufferSize2], Rx1_Buffer[BufferSize1], 
   Rx2_Buffer[BufferSize2];
volatile TestStatus TransferStatus1 = FAILED, TransferStatus2 = FAILED;
ErrorStatus HSEStartUpStatus;
    
/* Private functions ---------------------------------------------------------*/
void RCC_Configuration(void);
void NVIC_Configuration(void);
TestStatus Buffercmp(u8* pBuffer1, u8* pBuffer2, u16 BufferLength);

/*******************************************************************************
* Function Name  : main
* Description    : Main program
* Input          : None
* Output         : None
* Return         : None
*******************************************************************************/
int main(void)
{
#ifdef DEBUG
  debug();
#endif

  /* System clocks configuration ---------------------------------------------*/
  RCC_Configuration();

  /* NVIC configuration ------------------------------------------------------*/
  NVIC_Configuration();

  /* Initialize the I2C EEPROM driver ----------------------------------------*/
  I2C_EE_Init();  

  /* First write in the memory followed by a read of the written data --------*/
  /* Write on I2C EEPROM from EEPROM_WriteAddress1 */
  I2C_EE_BufferWrite(Tx1_Buffer, EEPROM_WriteAddress1, BufferSize1); 

  /* Read from I2C EEPROM from EEPROM_ReadAddress1 */
  I2C_EE_BufferRead(Rx1_Buffer, EEPROM_ReadAddress1, BufferSize1); 

  /* Check if the data written to the memory is read correctly */
  TransferStatus1 = Buffercmp(Tx1_Buffer, Rx1_Buffer, BufferSize1);
  /* TransferStatus1 = PASSED, if the transmitted and received data 
     to/from the EEPROM are the same */
  /* TransferStatus1 = FAILED, if the transmitted and received data 
     to/from the EEPROM are different */

  /* Wait for EEPROM standby state */
  I2C_EE_WaitEepromStandbyState();

  /* Second write in the memory followed by a read of the written data -------*/
  /* Write on I2C EEPROM from EEPROM_WriteAddress2 */
  I2C_EE_BufferWrite(Tx2_Buffer, EEPROM_WriteAddress2, BufferSize2); 

  /* Read from I2C EEPROM from EEPROM_ReadAddress2 */
  I2C_EE_BufferRead(Rx2_Buffer, EEPROM_ReadAddress2, BufferSize2);

  /* Check if the data written to the memory is read correctly */
  TransferStatus2 = Buffercmp(Tx2_Buffer, Rx2_Buffer, BufferSize2);
  /* TransferStatus2 = PASSED, if the transmitted and received data 
     to/from the EEPROM are the same */
  /* TransferStatus2 = FAILED, if the transmitted and received data 
     to/from the EEPROM are different */

  /* Wait for EEPROM standby state */
  I2C_EE_WaitEepromStandbyState();

  /* Read the hole written data on I2C EEPROM and store it in the Rx_Buffer 
     starting from address EEPROM_ReadAddress1 */
  I2C_EE_BufferRead(Rx_Buffer, EEPROM_ReadAddress1, BufferSize1 + BufferSize2);

  while (1)
  {
  }
}

/*******************************************************************************
* Function Name  : RCC_Configuration
* Description    : Configures the different system clocks.
* Input          : None
* Output         : None
* Return         : None
*******************************************************************************/
void RCC_Configuration(void)
{
  /* RCC system reset(for debug purpose) */
  RCC_DeInit();

  /* Enable HSE */
  RCC_HSEConfig(RCC_HSE_ON);

  /* Wait till HSE is ready */
  HSEStartUpStatus = RCC_WaitForHSEStartUp();

  if(HSEStartUpStatus == SUCCESS)
  {
    /* Enable Prefetch Buffer */
    FLASH_PrefetchBufferCmd(FLASH_PrefetchBuffer_Enable);

    /* Flash 2 wait state */
    FLASH_SetLatency(FLASH_Latency_2);
 
    /* HCLK = SYSCLK */
    RCC_HCLKConfig(RCC_SYSCLK_Div1); 
  
    /* PCLK2 = HCLK */
    RCC_PCLK2Config(RCC_HCLK_Div1); 

    /* PCLK1 = HCLK/2 */
    RCC_PCLK1Config(RCC_HCLK_Div2);
 
    /* PLLCLK = 8MHz * 9 = 72 MHz */
    RCC_PLLConfig(RCC_PLLSource_HSE_Div1, RCC_PLLMul_9);

    /* Enable PLL */ 
    RCC_PLLCmd(ENABLE);

    /* Wait till PLL is ready */
    while(RCC_GetFlagStatus(RCC_FLAG_PLLRDY) == RESET)
    {
    }

    /* Select PLL as system clock source */
    RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK);

    /* Wait till PLL is used as system clock source */
    while(RCC_GetSYSCLKSource() != 0x08)
    {
    }
  }

/* Enable peripheral clocks --------------------------------------------------*/
  /* GPIOB Periph clock enable */
  RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);
  /* I2C1 Periph clock enable */
  RCC_APB1PeriphClockCmd(RCC_APB1Periph_I2C1, ENABLE);
}

/*******************************************************************************
* Function Name  : NVIC_Configuration
* Description    : Configures Vector Table base location.
* Input          : None
* Output         : None
* Return         : None
*******************************************************************************/
void NVIC_Configuration(void)
{
  /* Set the Vector Table base location at 0x08000000 */ 
  NVIC_SetVectorTable(NVIC_VectTab_FLASH, 0x0);
}

/*******************************************************************************
* Function Name  : Buffercmp
* Description    : Compares two buffers.
* Input          : - pBuffer1, pBuffer2: buffers to be compared.
*                : - BufferLength: buffer's length
* Output         : None
* Return         : PASSED: pBuffer1 identical to pBuffer2
*                  FAILED: pBuffer1 differs from pBuffer2
*******************************************************************************/
TestStatus Buffercmp(u8* pBuffer1, u8* pBuffer2, u16 BufferLength)
{
  while(BufferLength--)
  {
    if(*pBuffer1 != *pBuffer2)
    {
      return FAILED;
    }
    
    pBuffer1++;
    pBuffer2++;
  }

  return PASSED;  
}

#ifdef  DEBUG
/*******************************************************************************
* Function Name  : assert_failed
* Description    : Reports the name of the source file and the source line number
*                  where the assert_param error has occurred.
* Input          : - file: pointer to the source file name
*                  - line: assert_param error line source number
* Output         : None
* Return         : None
*******************************************************************************/
void assert_failed(u8* file, u32 line)
{ 
  /* User can add his own implementation to report the file name and line number,
     ex: printf("Wrong parameters value: file %s on line %d\r\n", file, line) */

  /* Infinite loop */
  while (1)
  {
  }
}
#endif

/******************* (C) COPYRIGHT 2007 STMicroelectronics *****END OF FILE****/

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品嫩草久久久久| 男人的天堂久久精品| 成人在线视频一区二区| 国产精品入口麻豆原神| 91小宝寻花一区二区三区| 亚洲欧美日韩国产综合| 在线欧美小视频| 日韩专区一卡二卡| 久久你懂得1024| 99精品1区2区| 丝袜美腿高跟呻吟高潮一区| 日韩欧美高清一区| 蜜芽一区二区三区| 正在播放一区二区| 国产欧美精品一区二区色综合朱莉| 久久精品国产精品亚洲精品| 精品成a人在线观看| 99免费精品视频| 亚洲国产色一区| 久久久无码精品亚洲日韩按摩| av不卡免费在线观看| 日韩一区精品字幕| 国产日本欧美一区二区| 欧美日韩黄视频| 成人免费毛片aaaaa**| 亚洲色图都市小说| 欧美成va人片在线观看| fc2成人免费人成在线观看播放| 视频一区免费在线观看| 国产精品免费网站在线观看| 欧美精品亚洲一区二区在线播放| 国产一区视频网站| 亚洲一区二区三区影院| 久久精品视频在线看| 欧美日韩精品系列| 欧美精三区欧美精三区| 成人理论电影网| 日韩制服丝袜av| 亚洲男人的天堂在线aⅴ视频 | eeuss鲁片一区二区三区在线观看 eeuss鲁片一区二区三区在线看 | 精品国产不卡一区二区三区| 91日韩在线专区| 国产在线播精品第三| 亚洲二区在线视频| 综合av第一页| 久久久久久久久久久电影| 欧美精品 日韩| 91丨九色丨尤物| 国产一区二区在线观看免费| 午夜精品久久久久久不卡8050| 亚洲国产激情av| 久久影视一区二区| 7777精品伊人久久久大香线蕉最新版 | 26uuu另类欧美| 91精品国产综合久久小美女| 色综合网站在线| jiyouzz国产精品久久| 精品系列免费在线观看| 日韩成人午夜精品| 亚洲第一在线综合网站| 亚洲精品国产精华液| 亚洲丝袜制服诱惑| 国产精品私人自拍| 国产精品无圣光一区二区| 久久久国产一区二区三区四区小说| 欧美一卡二卡在线| 337p亚洲精品色噜噜噜| 欧美日韩中文字幕一区| 一本久久精品一区二区| 9人人澡人人爽人人精品| 成人免费看黄yyy456| 国产精品亚洲午夜一区二区三区| 久久99精品国产麻豆婷婷| 蜜臀av性久久久久av蜜臀妖精| 轻轻草成人在线| 蜜桃av一区二区三区电影| 美女一区二区久久| 韩国精品一区二区| 高清在线观看日韩| 99精品视频在线观看免费| 91在线高清观看| 在线观看一区日韩| 欧美日韩国产bt| 日韩一卡二卡三卡国产欧美| 国产精品国产成人国产三级| 亚洲视频在线观看三级| 亚洲精品乱码久久久久久久久| 亚洲欧美日韩国产另类专区| 一区二区三区电影在线播| 亚洲成人一区在线| 奇米影视7777精品一区二区| 国产一区二区视频在线| 成人动漫视频在线| 色婷婷亚洲综合| 欧美精品三级日韩久久| 日韩精品一区二区三区swag| 久久久久久电影| 亚洲人成网站在线| 亚洲成av人片一区二区梦乃| 麻豆精品视频在线观看视频| 国产伦精品一区二区三区免费 | a级高清视频欧美日韩| 91麻豆视频网站| 欧美视频一区二区三区四区| 日韩午夜在线观看| 国产精品久久久久久久久动漫| 夜夜爽夜夜爽精品视频| 久久精品72免费观看| 日韩精品中文字幕在线不卡尤物| 26uuu精品一区二区| 亚洲国产高清在线| 亚洲一区在线看| 韩国av一区二区三区四区| 成人激情开心网| 欧美午夜电影网| 精品国产乱码久久久久久久久| 国产欧美在线观看一区| 亚洲国产精品欧美一二99| 狠狠色狠狠色综合日日91app| 色综合久久88色综合天天免费| 欧美一区二区在线播放| 国产农村妇女精品| 天天综合天天做天天综合| 国产不卡视频在线观看| 欧美男同性恋视频网站| 国产精品嫩草久久久久| 日一区二区三区| 不卡一二三区首页| 日韩视频免费观看高清在线视频| 国产精品成人在线观看| 久久99这里只有精品| 日本久久电影网| 久久精品人人做人人综合| 亚洲成人综合视频| av不卡免费电影| 国产欧美一区二区三区沐欲| 视频在线观看91| 欧美在线观看禁18| 国产精品久久久久国产精品日日 | 老司机午夜精品| 欧洲一区在线观看| 国产精品久久久爽爽爽麻豆色哟哟| 青青草伊人久久| 欧美视频自拍偷拍| 国产精品福利一区二区| 国产.欧美.日韩| 久久久99久久精品欧美| 美女视频黄频大全不卡视频在线播放| 一本一本久久a久久精品综合麻豆| 亚洲成av人片一区二区三区| 在线亚洲一区二区| **网站欧美大片在线观看| 国产精品一区二区在线播放| 日韩区在线观看| 日韩电影在线一区| 欧美日本乱大交xxxxx| 亚洲一区在线观看网站| 日本福利一区二区| 亚洲欧美一区二区久久| av福利精品导航| 国产精品传媒入口麻豆| 99国产精品久| 亚洲婷婷综合色高清在线| av毛片久久久久**hd| 国产精品久久久久久久久搜平片| 国产精品资源在线看| 久久理论电影网| 成人午夜私人影院| 亚洲日本va午夜在线影院| 91网站最新地址| 一区二区三区视频在线看| 色噜噜狠狠一区二区三区果冻| 亚洲裸体xxx| 欧美性猛片aaaaaaa做受| 亚洲国产一区二区在线播放| 欧美日韩精品一区二区三区蜜桃 | 美女视频黄 久久| 91麻豆精东视频| 成人av资源在线观看| 欧美色大人视频| 日本成人在线电影网| 播五月开心婷婷综合| 日韩av成人高清| 日韩欧美久久久| 国产美女精品人人做人人爽| 一区二区三区不卡视频| 日韩二区三区四区| 一级日本不卡的影视| 国产精品久久网站| 久久夜色精品一区| 成人午夜短视频| 亚洲精品国产无天堂网2021| 成人黄页毛片网站| 日韩高清一级片| 日韩欧美综合在线| 波多野结衣91| 午夜精品一区二区三区电影天堂| 亚洲日本护士毛茸茸| 欧美日韩一区二区三区不卡| 老司机精品视频线观看86|