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

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

?? st79_usart.c

?? st公司新出的一款8位單片機(jī)st79的lib庫
?? C
?? 第 1 頁 / 共 3 頁
字號(hào):
        }
		break;

        /*< Returns the Receiver Interrupt Enable bit state              */
    case USART_IT_RIEN:
        if (USARTx->CR2 & USART_CR2_RIEN)
        {
            return SET;
        }
        else
        {
            return RESET;
        }
		break;

        /*< Returns the Idle Line Interrupt Enable bit state             */
    case USART_IT_ILIEN:
        if (USARTx->CR2 & USART_CR2_ILIEN)
        {
            return SET;
        }
        else
        {
            return RESET;
        }
		break;
        /*< Returns the LIN Break Detection Interrupt Enable bit state   */
    case USART_IT_LBDIEN:
        if (USARTx->CR4 & USART_CR4_LBDIEN)
        {
            return SET;
        }
        else
        {
            return RESET;
        }
		break;
    default:
			return SET;
        break;
    }
}


/**
  * @brief Enables or disables the USART抯 Half Duplex communication.
  * @par Full description:
  * Enables or disables the USART抯 Half Duplex communication.
  * @param[in] USARTx can be only USART.
  * @param[in] NewState new state of the USART Communication.
*                    This parameter can be: ENABLE or DISABLE.
  * @retval void None
  * @par Required preconditions:
  * None
  * @par Called functions:
  * None
  * @par Example:
  * @code
  * USART_HalfDuplexCmd(USART, ENABLE);
  * @endcode
  */
void USART_HalfDuplexCmd(USART_TypeDef* USARTx, FunctionalState NewState)
{
    assert(IS_STATE_VALUE_OK(NewState));

    if (NewState)
    {
        USARTx->CR5 |= USART_CR5_HDSEL;  /**< USART Half Duplex Enable  */
    }
    else
    {
        USARTx->CR5 &= (u8)~USART_CR5_HDSEL; /**< USART Half Duplex Disable */
    }
}

/**
  * @brief Initializes the USART peripheral.
  * @par Full description:
  * Initializes the USART peripheral according to the specified
  * parameters .
  * @param[in] USARTx can be only USART,
  * @param[in] USART_WordLength can be USART_WordLength_8D or USART_WordLength_9D to select the lenght of data frame,
  * @param[in] USART_StopBits can 0.5, 1, 1.5 or 2 stopbits,
  * @param[in] USART_Parity can be USART_Parity_No, USART_Parity_Odd or USART_Parity_Even,
  * @param[in] USART_SyncMode USART_SyncMode_TypeDef values,
  * @param[in] USART_BaudRate the baudrate,
  * @param[in] MasterFrequency can be obtained using the CLK_GetClocksFreq function,
  * @param[in] USART_Mode USART_Mode_TypeDef,
  * @retval void None
  * @par Required preconditions:
  * None
  * @par Called functions:
  * None
  * @par Example:
  * @code
  * USART_Init(USART, USART_InitStruct)
  * @endcode
  */
void USART_Init(USART_TypeDef* USARTx,
                USART_WordLength_TypeDef USART_WordLength,
                USART_StopBits_TypeDef USART_StopBits,
                USART_Parity_TypeDef USART_Parity,
                USART_SyncMode_TypeDef USART_SyncMode,
                u32 USART_BaudRate,
                u32 MasterFrequency,
                USART_Mode_TypeDef USART_Mode)
{

    u32 BaudRate_Mantissa, BaudRate_Mantissa100;

    assert(IS_USART_WordLength_VALUE_OK(USART_WordLength));

    assert(IS_USART_StopBits_VALUE_OK(USART_StopBits));

    assert(IS_USART_Parity_VALUE_OK(USART_Parity));

    /* Assert: BaudRate value should be <= 625000 bps */
    assert(IS_USART_BAUDRATE_OK(USART_BaudRate));

    /* Assert: USART_Mode value should exclude values such as  USART_ModeTx_Enable|USART_ModeTx_Disable */
    assert(IS_USART_MODE_VALUE_OK((u8)USART_Mode));

    /* Assert: USART_SyncMode value should exclude values such as
       USART_Clock_Enable|USART_Clock_Disable */
    assert(IS_USART_SyncMode_VALUE_OK((u8)USART_SyncMode));

    /* Wait for no Transmition before modifying the M bit */
    /* while(!(USARTx->SR&USART_SR_TC));      */

    USARTx->CR1 &= (u8)(~USART_CR1_M);     /**< Clear the word length bit */
    USARTx->CR1 |= (u8)USART_WordLength; /**< Set the word length bit according to USART_WordLength value */

    USARTx->CR3 &= (u8)(~USART_CR3_STOP);  /**< Clear the STOP bits */
    USARTx->CR3 |= (u8)USART_StopBits;  /**< Set the STOP bits number according to USART_StopBits value  */

    USARTx->CR1 &= (u8)(~(USART_CR1_PCEN| USART_CR1_PS  ));  /**< Clear the Parity Control bit */
    USARTx->CR1 |= (u8)USART_Parity;     /**< Set the Parity Control bit to USART_Parity value */

    USARTx->BRR1 &= (u8)(~USART_BRR1_DIVM);  /**< Clear the LSB mantissa of USARTDIV  */
    USARTx->BRR2 &= (u8)(~USART_BRR2_DIVM);  /**< Clear the MSB mantissa of USARTDIV  */
    USARTx->BRR2 &= (u8)(~USART_BRR2_DIVF);  /**< Clear the Fraction bits of USARTDIV */

    /**< Set the USART BaudRates in BRR1 and BRR2 registers according to USART_BaudRate value */
    BaudRate_Mantissa    = (MasterFrequency / (USART_BaudRate << 4));
    BaudRate_Mantissa100 = ((MasterFrequency * 100) / (USART_BaudRate << 4));
    USARTx->BRR2 |= (u8)((u8)(((BaudRate_Mantissa100 - (BaudRate_Mantissa * 100)) << 4) / 100) & (u8)0x0F); /**< Set the fraction of USARTDIV  */
    USARTx->BRR2 |= (u8)((BaudRate_Mantissa >> 4) & (u8)0xF0); /**< Set the MSB mantissa of USARTDIV  */
    USARTx->BRR1 |= (u8)BaudRate_Mantissa;           /**< Set the LSB mantissa of USARTDIV  */

    USARTx->CR2 &= (u8)~(USART_CR2_TEN | USART_CR2_REN); /**< Disable the Transmitter and Receiver before seting the LBCL, CPOL and CPHA bits */
    USARTx->CR3 &= (u8)~(USART_CR3_CPOL | USART_CR3_CPHA | USART_CR3_LBCL); /**< Clear the Clock Polarity, lock Phase, Last Bit Clock pulse */
    USARTx->CR3 |= (u8)((u8)USART_SyncMode & (u8)(USART_CR3_CPOL | USART_CR3_CPHA| USART_CR3_LBCL));  /**< Set the Clock Polarity, lock Phase, Last Bit Clock pulse */

    if ((u8)USART_Mode & (u8)USART_Mode_Tx_Enable)
    {
        USARTx->CR2 |= (u8)USART_CR2_TEN;  /**< Set the Transmitter Enable bit */
    }
    else
    {
        USARTx->CR2 &= (u8)(~USART_CR2_TEN);  /**< Clear the Transmitter Disable bit */
    }
    if ((u8)USART_Mode & (u8)USART_Mode_Rx_Enable)
    {
        USARTx->CR2 |= (u8)USART_CR2_REN;  /**< Set the Receiver Enable bit */
    }
    else
    {
        USARTx->CR2 &= (u8)(~USART_CR2_REN);  /**< Clear the Receiver Disable bit */
    }
    /**< Set the Clock Enable bit, lock Polarity, lock Phase and Last Bit Clock pulse bits according to USART_Mode value */
    if ((u8)USART_SyncMode&(u8)USART_Clock_Disable)
    {
        USARTx->CR3 &= (u8)(~USART_CR3_CLKEN); /**< Clear the Clock Enable bit */
        /**< configure in Push Pull or Open Drain mode the Tx I/O line by setting the correct I/O Port register according the product package and line configuration*/
    }
    else
    {
        USARTx->CR3 |= (u8)((u8)USART_SyncMode & USART_CR3_CLKEN);
        /* USARTx->CR2 &= (u8)(~USART_CR2_REN);*/ /*TBD */
    }
}

/**
  * @brief Configures the USART抯 IrDA interface.
  * @par Full description:
  * Configures the USART抯 IrDA interface.
  * @par This function is valid only for USART.
  * @param[in] USARTx can be only USART .
  * @param[in] USART_IrDAMode specifies the IrDA mode.
  *                    This parameter can be one of the following values:
  *                       - USART_IrDAMode_LowPower
  *                       - USART_IrDAMode_Normal
  * @retval void None
  * @par Required preconditions:
  * None
  * @par Called functions:
  * None
  * @par Example:
  * @code
  * USART_IrDAConfig(USART, USART_IrDAMode_LowPower)
  * @endcode
  */
void USART_IrDAConfig(USART_TypeDef* USARTx, USART_IrDAMode_TypeDef USART_IrDAMode)
{
    assert(IS_USART_IrDAMode_VALUE_OK(USART_IrDAMode));

    if (USART_IrDAMode == USART_IrDAMode_Normal)
    {
        USARTx->CR5 &= ((u8)~USART_CR5_IRLP);
    }
    else
    {
        USARTx->CR5 |= USART_CR5_IRLP;
    }
}

/**
  * @brief Enables or disables the USART抯 IrDA interface.
  * @par Full description:
  * Enables or disables the USART抯 IrDA interface.
  *@par This function is valid only for USART
 * @param[in] USARTx can be only USART (USART has no IrDA interface).
  * @param[in] NewState new state of the IrDA mode.
  *                    This parameter can be: ENABLE or DISABLE.
  * @retval void None
  * @par Required preconditions:
  * None
  * @par Called functions:
  * None
  * @par Example:
  * @code
  * USART_IrDACmd(USART, ENABLE)
  * @endcode
  */
void USART_IrDACmd(USART_TypeDef* USARTx, FunctionalState NewState)
{
    assert(IS_STATE_VALUE_OK(NewState));

    if (NewState)
    {
        /* Enable the IrDA mode by setting the IREN bit in the CR3 register */
        USARTx->CR5 |= USART_CR5_IREN;
    }
    else
    {
        /* Disable the IrDA mode by clearing the IREN bit in the CR3 register */
        USARTx->CR5 &= ((u8)~USART_CR5_IREN);
    }
}

/**
  * @brief Enables or disables the specified USART interrupts.
  * @par Full description:
  * Enables or disables the specified USART interrupts.
  * @param[in] USARTx can be only USART to select the peripheral.
  * @param[in] USART_IT specifies the USART interrupt sources to be
  *                    enabled or disabled.
  *                    This parameter can be one of the following values:
  *                       - USART_IT_PIEN
  *                       - USART_IT_TCIEN
  *                       - USART_IT_RIEN
  *                       - USART_IT_ILIEN
  *                       - USART_IT_RIEN
   *                      - USART_IT_LBDIEN
   *		        - USART_IT_EIE
  * @param[in] NewState new state of the specified USART interrupts.
 *                    This parameter can be: ENABLE or DISABLE.
  * @retval void None
  * @par Required preconditions:
  * None
  * @par Called functions:
  * None
  * @par Example:
  * @code
  * USART_ITConfig(USART, USART_IT_PIEN, ENABLE)
  * @endcode
  */
void USART_ITConfig(USART_TypeDef* USARTx, USART_IT_TypeDef USART_IT, FunctionalState NewState)
{
    assert(IS_USART_IT_VALUE_OK(USART_IT));
    assert(IS_STATE_VALUE_OK(NewState));

    if (NewState)
    {
        /**< Enable the Interrupt bits according to USART_IT mask */
        USARTx->CR2 |= (u8)((u8)(USART_IT) & (u8)(USART_CR2_TIEN | USART_CR2_TCIEN | USART_CR2_RIEN | USART_CR2_ILIEN));
        USARTx->CR1 |= (u8)((u8)USART_IT & USART_CR1_PIEN);
        USARTx->CR4 |= (u8)((u8)((u8)USART_IT << 4) & USART_CR4_LBDIEN);
    }
    else
    {
        /**< Disable the interrupt bits according to USART_IT mask */
        USARTx->CR2 &= (u8)(~((u8)(USART_IT) & (u8)(USART_CR2_TIEN | USART_CR2_TCIEN | USART_CR2_RIEN | USART_CR2_ILIEN)));
        USARTx->CR1 &= (u8)(~((u8)USART_IT & USART_CR1_PIEN));
        USARTx->CR4 &= (u8)(~((u8)((u8)USART_IT << 4) & USART_CR4_LBDIEN));
    }

}


/**
  * @brief Sets the USART LIN Break detection length.
  * @par Full description:
  * Sets the USART LIN Break detection length.
  * @param[in] USARTx can be USART or USART to select the peripheral.
  * @param[in] USART_LINBreakDetectionLength specifies the LIN break
  *                    detection length.
  *                    This parameter can be one of the following values:
  *                       - USART_LINBreakDetectionLength10
  *                       - USART_LINBreakDetectionLength11
  * @retval void None
  * @par Required preconditions:
  * None
  * @par Called functions:
  * None
  * @par Example:
  * @code
  * USART_LINBreakDetectionConfig(USART, USART_LINBreakDetectionLength11)
  * @endcode
  */
void USART_LINBreakDetectionConfig(USART_TypeDef* USARTx, USART_LINBreakDetectionLength_TypeDef USART_LINBreakDetectionLength)
{
    assert(IS_USART_LINBreakDetectionLength_VALUE_OK(USART_LINBreakDetectionLength));

    if (USART_LINBreakDetectionLength == USART_LINBreakDetectionLength10)
    {
        USARTx->CR4 &= ((u8)~USART_CR4_LBDL);
    }
    else
    {
        USARTx->CR4 |= USART_CR4_LBDL;
    }
}


/**
  * @brief Enables or disables the USART抯 LIN mode.
  * @par Full description:
  * Enables or disables the USART抯 LIN mode.
  * @param[in] USARTx can be USART or USART to select the peripheral.
  * @param[in] NewState is new state of the USART LIN mode.
  *                    This parameter can be: ENABLE or DISABLE.
  * @retval void None
  * @par Required preconditions:
  * None
  * @par Called functions:
  * None
  * @par Example:
  * @code
  * USART_LINCmd(USART, ENABLE)
  * @endcode
  */
void USART_LINCmd(USART_TypeDef* USARTx, FunctionalState NewState)
{
    assert(IS_STATE_VALUE_OK(NewState));

    if (NewState)
    {
        /* Enable the LIN mode by setting the LINE bit in the CR2 register */
        USARTx->CR3 |= USART_CR3_LINEN;
    }
    else
    {
        /* Disable the LIN mode by clearing the LINE bit in the CR2 register */

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
一区二区成人在线| 欧美一区二区三区人| 国产.欧美.日韩| 国产999精品久久久久久| 久久久久久影视| 亚洲一区二区三区影院| 国产一区二区女| 91成人国产精品| 日韩欧美成人一区| 亚洲视频一二三| 偷拍亚洲欧洲综合| 不卡一区二区在线| 精品少妇一区二区| 午夜伊人狠狠久久| 99久久精品免费| 337p粉嫩大胆色噜噜噜噜亚洲| 亚洲最快最全在线视频| 欧美日韩亚洲丝袜制服| 亚洲美女视频在线| 粉嫩一区二区三区性色av| 国产精品色在线| 免费成人美女在线观看.| 91免费观看视频| 久久久精品影视| 色欧美乱欧美15图片| 国产欧美精品一区aⅴ影院| 麻豆国产精品777777在线| 欧美精品久久99久久在免费线 | 国产精品美女久久久久久久久久久| 99精品久久只有精品| 日韩和欧美一区二区三区| 日本精品裸体写真集在线观看 | 国产在线精品免费| 亚洲人精品午夜| 久久综合色一综合色88| 在线观看一区二区视频| 亚洲一区二区在线观看视频| 日韩欧美不卡在线观看视频| 色哟哟精品一区| 国产在线国偷精品免费看| 亚洲地区一二三色| 国产精品视频一二三区| 91精品综合久久久久久| 免费在线看成人av| 亚洲视频一二三| 欧美国产日本韩| 91亚洲精品久久久蜜桃| 麻豆成人在线观看| 亚洲午夜免费电影| 91精品国产综合久久香蕉的特点 | 91在线丨porny丨国产| 久久福利资源站| 国产性天天综合网| 不卡的电影网站| 精品一区二区三区在线播放| 国产精品无圣光一区二区| 欧美成人一区二区三区片免费| 欧美专区在线观看一区| 99久久免费视频.com| 国产成人免费视| 亚洲制服丝袜av| 综合色中文字幕| 国产精品美女久久久久久久久久久| 精品国产区一区| 99精品在线免费| 国产91富婆露脸刺激对白| 久久精品国产精品亚洲红杏| 天堂午夜影视日韩欧美一区二区| 亚洲美女一区二区三区| 亚洲激情一二三区| 精品国产乱码久久久久久图片 | 亚洲国产高清在线| 久久久久久**毛片大全| 精品捆绑美女sm三区| 欧美成人欧美edvon| 欧美一级午夜免费电影| 日韩欧美国产麻豆| 欧美xxxxx牲另类人与| 精品国产一区二区在线观看| 欧美电影精品一区二区| 久久综合狠狠综合久久综合88| 2017欧美狠狠色| 国产精品视频免费看| 综合分类小说区另类春色亚洲小说欧美| 国产精品久久一卡二卡| 日韩欧美久久久| 欧美xxxxx裸体时装秀| 精品福利一区二区三区免费视频| 久久综合色一综合色88| 国产日本欧洲亚洲| 国产喷白浆一区二区三区| 国产精品每日更新在线播放网址 | 亚洲二区在线观看| 午夜精品一区二区三区电影天堂 | 日韩免费视频线观看| 欧美一区二区三区视频在线| 精品国产区一区| 国产精品久久二区二区| 一区二区三区在线免费| 天堂成人免费av电影一区| 九九精品视频在线看| 成人av在线影院| 在线免费不卡视频| 日韩精品最新网址| 国产精品无人区| 天天操天天干天天综合网| 久久精品国产精品亚洲综合| heyzo一本久久综合| 国产精品资源在线看| 国内精品伊人久久久久影院对白| 性欧美大战久久久久久久久| 精品亚洲欧美一区| 97se亚洲国产综合自在线不卡| 欧美男男青年gay1069videost| 色久优优欧美色久优优| 欧美一区在线视频| 中文子幕无线码一区tr| 亚洲午夜精品网| 国产综合久久久久影院| 日本韩国视频一区二区| 欧美精品一区二区不卡 | 日本一区二区三区免费乱视频| 亚洲美女一区二区三区| 精品一区二区三区在线观看| 日本高清不卡aⅴ免费网站| 欧美xingq一区二区| 又紧又大又爽精品一区二区| 九九精品一区二区| 欧美巨大另类极品videosbest| 国产无一区二区| 人妖欧美一区二区| 色婷婷国产精品久久包臀| 国产香蕉久久精品综合网| 丝袜美腿高跟呻吟高潮一区| 97久久精品人人做人人爽| 欧美电影免费观看完整版 | 日韩高清不卡在线| 看片的网站亚洲| 欧美亚日韩国产aⅴ精品中极品| 欧美午夜片在线看| 久久久天堂av| 日韩成人午夜精品| 欧美亚一区二区| 亚洲色大成网站www久久九九| 国产一区二区三区| 精品理论电影在线| 日韩不卡一区二区| 欧美日韩三级一区二区| 亚洲欧美日本韩国| 99re8在线精品视频免费播放| 久久综合网色—综合色88| 日韩国产一区二| 欧美精品在线一区二区三区| 亚洲精品国产一区二区精华液| 国产成人啪午夜精品网站男同| 欧美r级在线观看| 九色porny丨国产精品| 欧美成人高清电影在线| 奇米在线7777在线精品| 91精品国产综合久久久久久久久久| 亚洲一级二级在线| 欧美日韩夫妻久久| 天堂资源在线中文精品| 欧美午夜精品久久久| 亚州成人在线电影| 欧美伦理影视网| 日韩综合小视频| 欧美一卡二卡在线| 麻豆精品视频在线| 欧美大片在线观看一区| 国内精品视频666| 国产亚洲一本大道中文在线| 激情久久五月天| 久久免费的精品国产v∧| 国产一区二区主播在线| 久久精品免视看| 不卡免费追剧大全电视剧网站| 亚洲欧洲成人自拍| 九九视频精品免费| 久久久国产精品麻豆| 成人一道本在线| 久久夜色精品国产欧美乱极品| 韩国女主播成人在线观看| 久久久久亚洲综合| 久久国产尿小便嘘嘘尿| 久久一区二区三区四区| 成人国产精品免费观看动漫 | 在线观看一区二区视频| 偷窥国产亚洲免费视频| 日韩欧美国产精品一区| 国产白丝精品91爽爽久久| 亚洲色图欧美偷拍| 欧美日韩成人一区二区| 免费欧美高清视频| 天天爽夜夜爽夜夜爽精品视频| 欧美另类z0zxhd电影| 国产一区中文字幕| 国产精品美女久久久久久 | 成人av手机在线观看| 一区二区成人在线观看|