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

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

?? stm32l1xx_i2c.h

?? VS1003_MP3_SPI_SDHC_FAT32
?? H
?? 第 1 頁 / 共 3 頁
字號:

/* Slave TRANSMITTER mode -----------------------*/
/* --EV3 */
#define  I2C_EVENT_SLAVE_BYTE_TRANSMITTED                  ((uint32_t)0x00060084)  /* TRA, BUSY, TXE and BTF flags */
#define  I2C_EVENT_SLAVE_BYTE_TRANSMITTING                 ((uint32_t)0x00060080)  /* TRA, BUSY and TXE flags */
/* --EV3_2 */
#define  I2C_EVENT_SLAVE_ACK_FAILURE                       ((uint32_t)0x00000400)  /* AF flag */

/*
 ===============================================================================
                          End of Events Description
 ===============================================================================
 */

#define IS_I2C_EVENT(EVENT) (((EVENT) == I2C_EVENT_SLAVE_TRANSMITTER_ADDRESS_MATCHED) || \
                             ((EVENT) == I2C_EVENT_SLAVE_RECEIVER_ADDRESS_MATCHED) || \
                             ((EVENT) == I2C_EVENT_SLAVE_TRANSMITTER_SECONDADDRESS_MATCHED) || \
                             ((EVENT) == I2C_EVENT_SLAVE_RECEIVER_SECONDADDRESS_MATCHED) || \
                             ((EVENT) == I2C_EVENT_SLAVE_GENERALCALLADDRESS_MATCHED) || \
                             ((EVENT) == I2C_EVENT_SLAVE_BYTE_RECEIVED) || \
                             ((EVENT) == (I2C_EVENT_SLAVE_BYTE_RECEIVED | I2C_FLAG_DUALF)) || \
                             ((EVENT) == (I2C_EVENT_SLAVE_BYTE_RECEIVED | I2C_FLAG_GENCALL)) || \
                             ((EVENT) == I2C_EVENT_SLAVE_BYTE_TRANSMITTED) || \
                             ((EVENT) == (I2C_EVENT_SLAVE_BYTE_TRANSMITTED | I2C_FLAG_DUALF)) || \
                             ((EVENT) == (I2C_EVENT_SLAVE_BYTE_TRANSMITTED | I2C_FLAG_GENCALL)) || \
                             ((EVENT) == I2C_EVENT_SLAVE_STOP_DETECTED) || \
                             ((EVENT) == I2C_EVENT_MASTER_MODE_SELECT) || \
                             ((EVENT) == I2C_EVENT_MASTER_TRANSMITTER_MODE_SELECTED) || \
                             ((EVENT) == I2C_EVENT_MASTER_RECEIVER_MODE_SELECTED) || \
                             ((EVENT) == I2C_EVENT_MASTER_BYTE_RECEIVED) || \
                             ((EVENT) == I2C_EVENT_MASTER_BYTE_TRANSMITTED) || \
                             ((EVENT) == I2C_EVENT_MASTER_BYTE_TRANSMITTING) || \
                             ((EVENT) == I2C_EVENT_MASTER_MODE_ADDRESS10) || \
                             ((EVENT) == I2C_EVENT_SLAVE_ACK_FAILURE))
/**
  * @}
  */

/** @defgroup I2C_own_address1 
  * @{
  */

#define IS_I2C_OWN_ADDRESS1(ADDRESS1) ((ADDRESS1) <= 0x3FF)
/**
  * @}
  */

/** @defgroup I2C_clock_speed 
  * @{
  */

#define IS_I2C_CLOCK_SPEED(SPEED) (((SPEED) >= 0x1) && ((SPEED) <= 400000))
/**
  * @}
  */

/**
  * @}
  */

/* Exported macro ------------------------------------------------------------*/
/* Exported functions ------------------------------------------------------- */

/*  Function used to set the I2C configuration to the default reset state *****/
void I2C_DeInit(I2C_TypeDef* I2Cx);

/* Initialization and Configuration functions *********************************/
void I2C_Init(I2C_TypeDef* I2Cx, I2C_InitTypeDef* I2C_InitStruct);
void I2C_StructInit(I2C_InitTypeDef* I2C_InitStruct);
void I2C_Cmd(I2C_TypeDef* I2Cx, FunctionalState NewState);
void I2C_GenerateSTART(I2C_TypeDef* I2Cx, FunctionalState NewState);
void I2C_GenerateSTOP(I2C_TypeDef* I2Cx, FunctionalState NewState);
void I2C_AcknowledgeConfig(I2C_TypeDef* I2Cx, FunctionalState NewState);
void I2C_OwnAddress2Config(I2C_TypeDef* I2Cx, uint8_t Address);
void I2C_DualAddressCmd(I2C_TypeDef* I2Cx, FunctionalState NewState);
void I2C_GeneralCallCmd(I2C_TypeDef* I2Cx, FunctionalState NewState);
void I2C_SoftwareResetCmd(I2C_TypeDef* I2Cx, FunctionalState NewState);
void I2C_SMBusAlertConfig(I2C_TypeDef* I2Cx, uint16_t I2C_SMBusAlert);
void I2C_ARPCmd(I2C_TypeDef* I2Cx, FunctionalState NewState);
void I2C_StretchClockCmd(I2C_TypeDef* I2Cx, FunctionalState NewState);
void I2C_FastModeDutyCycleConfig(I2C_TypeDef* I2Cx, uint16_t I2C_DutyCycle);
void I2C_Send7bitAddress(I2C_TypeDef* I2Cx, uint8_t Address, uint8_t I2C_Direction);

/* Data transfers functions ***************************************************/ 
void I2C_SendData(I2C_TypeDef* I2Cx, uint8_t Data);
uint8_t I2C_ReceiveData(I2C_TypeDef* I2Cx);
void I2C_NACKPositionConfig(I2C_TypeDef* I2Cx, uint16_t I2C_NACKPosition);

/* PEC management functions ***************************************************/ 
void I2C_TransmitPEC(I2C_TypeDef* I2Cx, FunctionalState NewState);
void I2C_PECPositionConfig(I2C_TypeDef* I2Cx, uint16_t I2C_PECPosition);
void I2C_CalculatePEC(I2C_TypeDef* I2Cx, FunctionalState NewState);
uint8_t I2C_GetPEC(I2C_TypeDef* I2Cx);

/* DMA transfers management functions *****************************************/
void I2C_DMACmd(I2C_TypeDef* I2Cx, FunctionalState NewState);
void I2C_DMALastTransferCmd(I2C_TypeDef* I2Cx, FunctionalState NewState);


/* Interrupts, events and flags management functions **************************/
uint16_t I2C_ReadRegister(I2C_TypeDef* I2Cx, uint8_t I2C_Register);
void I2C_ITConfig(I2C_TypeDef* I2Cx, uint16_t I2C_IT, FunctionalState NewState);

/*

 ===============================================================================
                          I2C State Monitoring Functions
 ===============================================================================
  This I2C driver provides three different ways for I2C state monitoring
  depending on the application requirements and constraints:
         
   
     1. Basic state monitoring (Using I2C_CheckEvent() function)
     -----------------------------------------------------------
        It compares the status registers (SR1 and SR2) content to a given event
        (can be the combination of one or more flags).
        It returns SUCCESS if the current status includes the given flags 
        and returns ERROR if one or more flags are missing in the current status.

          - When to use
             - This function is suitable for most applications as well as for startup 
               activity since the events are fully described in the product reference 
               manual (RM0038).
             - It is also suitable for users who need to define their own events.

          - Limitations
             - If an error occurs (ie. error flags are set besides to the monitored 
               flags), the I2C_CheckEvent() function may return SUCCESS despite 
               the communication hold or corrupted real state. 
               In this case, it is advised to use error interrupts to monitor 
               the error events and handle them in the interrupt IRQ handler.
         
     Note
         For error management, it is advised to use the following functions:
           - I2C_ITConfig() to configure and enable the error interrupts (I2C_IT_ERR).
           - I2Cx_ER_IRQHandler() which is called when the error interrupt occurs.
             Where x is the peripheral instance (I2C1, I2C2 ...)
           - I2C_GetFlagStatus() or I2C_GetITStatus()  to be called into the 
             I2Cx_ER_IRQHandler() function in order to determine which error occurred.
           - I2C_ClearFlag() or I2C_ClearITPendingBit() and/or I2C_SoftwareResetCmd() 
             and/or I2C_GenerateStop() in order to clear the error flag and source 
             and return to correct  communciation status.
             
 
     2. Advanced state monitoring (Using the function I2C_GetLastEvent())
     -------------------------------------------------------------------- 
        Using the function I2C_GetLastEvent() which returns the image of both status 
        registers in a single word (uint32_t) (Status Register 2 value is shifted left 
        by 16 bits and concatenated to Status Register 1).

          - When to use
             - This function is suitable for the same applications above but it 
               allows to overcome the mentioned limitation of I2C_GetFlagStatus() 
               function.
             - The returned value could be compared to events already defined in 
               the library (stm32l1xx_i2c.h) or to custom values defined by user.
               This function is suitable when multiple flags are monitored at the 
               same time.
             - At the opposite of I2C_CheckEvent() function, this function allows 
               user to choose when an event is accepted (when all events flags are 
               set and no other flags are set or just when the needed flags are set 
               like I2C_CheckEvent() function.

          - Limitations
             - User may need to define his own events.
             - Same remark concerning the error management is applicable for this 
               function if user decides to check only regular communication flags 
               (and ignores error flags).
      
 
     3. Flag-based state monitoring (Using the function I2C_GetFlagStatus())
     -----------------------------------------------------------------------
     
      Using the function I2C_GetFlagStatus() which simply returns the status of 
      one single flag (ie. I2C_FLAG_RXNE ...). 

          - When to use
             - This function could be used for specific applications or in debug 
               phase.
             - It is suitable when only one flag checking is needed (most I2C 
               events are monitored through multiple flags).
          - Limitations: 
             - When calling this function, the Status register is accessed. 
               Some flags are cleared when the status register is accessed. 
               So checking the status of one Flag, may clear other ones.
             - Function may need to be called twice or more in order to monitor 
               one single event.

   For detailed description of Events, please refer to section I2C_Events in 
   stm32l1xx_i2c.h file.

*/

/*
 ===============================================================================
                          1. Basic state monitoring
 ===============================================================================
 */
ErrorStatus I2C_CheckEvent(I2C_TypeDef* I2Cx, uint32_t I2C_EVENT);
/*
 ===============================================================================
                          2. Advanced state monitoring
 ===============================================================================
 */
uint32_t I2C_GetLastEvent(I2C_TypeDef* I2Cx);
/*
 ===============================================================================
                          3. Flag-based state monitoring
 ===============================================================================
 */
FlagStatus I2C_GetFlagStatus(I2C_TypeDef* I2Cx, uint32_t I2C_FLAG);


void I2C_ClearFlag(I2C_TypeDef* I2Cx, uint32_t I2C_FLAG);
ITStatus I2C_GetITStatus(I2C_TypeDef* I2Cx, uint32_t I2C_IT);
void I2C_ClearITPendingBit(I2C_TypeDef* I2Cx, uint32_t I2C_IT);

#ifdef __cplusplus
}
#endif

#endif /*__STM32L1xx_I2C_H */

/**
  * @}
  */ 

/**
  * @}
  */ 

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

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
一区二区三区四区亚洲| 9191久久久久久久久久久| 中文字幕欧美激情一区| 成人在线综合网站| 成人欧美一区二区三区白人| 成人免费av网站| 日韩一区欧美一区| 欧美日韩一区二区在线观看视频 | 欧美日精品一区视频| 日韩av一级电影| 久久在线观看免费| voyeur盗摄精品| 亚洲最新在线观看| 日韩免费高清av| 高清av一区二区| 亚洲一区在线观看免费| 日韩视频永久免费| 成人av在线资源网| 性做久久久久久免费观看| 欧美成人猛片aaaaaaa| 成人午夜av影视| 午夜精品一区二区三区免费视频| 欧美mv和日韩mv的网站| 成人av网站在线观看免费| 国产一区二区91| 中文字幕一区二区三| 欧美日韩亚洲高清一区二区| 狠狠狠色丁香婷婷综合激情| 国产精品久线在线观看| 欧美一区二区三区男人的天堂| 高清日韩电视剧大全免费| 亚洲国产欧美一区二区三区丁香婷| 日韩免费高清视频| 91国内精品野花午夜精品| 久久黄色级2电影| 一区二区三区欧美日韩| 久久久一区二区三区捆绑**| 在线亚洲人成电影网站色www| 精品在线视频一区| 亚洲精品国产第一综合99久久| 26uuuu精品一区二区| 欧美在线视频日韩| 粉嫩在线一区二区三区视频| 亚洲va韩国va欧美va| 中文字幕成人av| 欧美电影在哪看比较好| 99视频在线精品| 国产一区二区不卡| 日本不卡视频在线| 一区二区三区精品久久久| 欧美极品美女视频| 欧美电影免费观看高清完整版| 色网站国产精品| 成人午夜激情片| 激情综合色丁香一区二区| 亚洲午夜久久久久| 一区精品在线播放| 国产丝袜在线精品| 欧美r级在线观看| 在线成人av影院| 欧美在线观看视频在线| 成人黄色软件下载| 粉嫩在线一区二区三区视频| 精品一区二区三区香蕉蜜桃| 亚洲mv大片欧洲mv大片精品| 亚洲码国产岛国毛片在线| 欧美国产1区2区| www久久精品| 日韩一级黄色片| 91精品国产综合久久久久久久久久| 在线视频欧美区| 色嗨嗨av一区二区三区| 91性感美女视频| 色婷婷综合中文久久一本| 一本色道久久综合亚洲aⅴ蜜桃| 国产一区二区电影| 国产精品亚洲综合一区在线观看| 精一区二区三区| 激情五月播播久久久精品| 久久精品国产亚洲高清剧情介绍 | 亚洲乱码国产乱码精品精小说| 国产精品久久久久久久久晋中| 国产日韩高清在线| 国产精品乱码久久久久久| 国产欧美一二三区| 亚洲欧美在线高清| 亚洲综合免费观看高清完整版在线| 最新中文字幕一区二区三区| 亚洲精品免费在线观看| 一区二区三区日本| 亚洲国产一区二区三区| 日韩av中文在线观看| 黄色资源网久久资源365| 国产在线视频精品一区| 成人美女视频在线观看| 一本一道久久a久久精品| 在线观看亚洲一区| 欧美成人精品3d动漫h| 久久久国际精品| 亚洲免费av高清| 五月开心婷婷久久| 国产一区啦啦啦在线观看| 高清国产一区二区| 在线免费观看一区| 日韩一卡二卡三卡四卡| 欧美极品少妇xxxxⅹ高跟鞋| 一区二区三区蜜桃| 久久精品国产在热久久| 99精品偷自拍| 欧美美女喷水视频| 久久女同性恋中文字幕| 一区二区三区在线免费| 蜜桃久久精品一区二区| 成人精品鲁一区一区二区| 欧美日韩精品专区| 国产无人区一区二区三区| 亚洲精品欧美专区| 国产原创一区二区三区| 日本高清不卡视频| 精品乱人伦小说| 亚洲精品成人少妇| 国产一区二区三区av电影| 91久久精品日日躁夜夜躁欧美| 欧美zozozo| 一区二区理论电影在线观看| 狠狠色综合日日| 欧日韩精品视频| 久久男人中文字幕资源站| 亚洲精品乱码久久久久久| 精品一二三四在线| 欧美性感一类影片在线播放| 久久精品这里都是精品| 爽好久久久欧美精品| 91在线porny国产在线看| 日韩美女视频在线| 午夜久久福利影院| 91视频在线观看| 久久久亚洲综合| 天天影视涩香欲综合网| 成人av动漫网站| 精品国产一区二区在线观看| 亚洲自拍偷拍av| 成人免费观看视频| 欧美精品一区二区三区久久久| 一区二区三区资源| 97久久超碰精品国产| 国产午夜久久久久| 久久狠狠亚洲综合| 日韩一区二区三区精品视频| 一区二区三区欧美在线观看| 不卡av电影在线播放| 国产喷白浆一区二区三区| 麻豆精品在线视频| 91精品久久久久久久91蜜桃| 亚洲成人一区二区在线观看| 色婷婷综合视频在线观看| 国产精品毛片高清在线完整版| 国产传媒久久文化传媒| 久久综合狠狠综合久久激情| 久久电影国产免费久久电影| 欧美一二三四区在线| 天天综合天天做天天综合| 欧美蜜桃一区二区三区| 亚洲成av人片一区二区| 欧美日韩高清影院| 午夜精品福利久久久| 911国产精品| 男男gaygay亚洲| 日韩欧美色综合网站| 老色鬼精品视频在线观看播放| 91精品国产一区二区三区蜜臀| 性做久久久久久久免费看| 337p亚洲精品色噜噜狠狠| 免费高清在线一区| 久久老女人爱爱| 国产91丝袜在线播放| 国产精品免费视频网站| 色综合久久天天| 亚洲成av人影院在线观看网| 欧美精品v日韩精品v韩国精品v| 日本女人一区二区三区| 日韩欧美国产午夜精品| 国产美女在线精品| 国产精品天美传媒| 色狠狠一区二区三区香蕉| 香蕉av福利精品导航| 欧美本精品男人aⅴ天堂| 国产成人鲁色资源国产91色综| 亚洲欧洲日产国产综合网| 欧美亚洲禁片免费| 麻豆成人91精品二区三区| 国产三级精品三级在线专区| 91丨porny丨国产入口| 日韩精品成人一区二区在线| 欧美成人a在线| caoporn国产精品| 日本午夜一区二区| 国产三级精品三级在线专区| 色吧成人激情小说| 狂野欧美性猛交blacked|