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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? st79_usart.c

?? st公司新出的一款8位單片機st79的lib庫
?? C
?? 第 1 頁 / 共 3 頁
字號:
/**
  ********************************************************************************
  * @file st79_usart.c
  * @brief This file contains all the functions for the USART peripheral.
  * @author STMicroelectronics - MCD & APG Car Body Application Labs
  * @version V0.01
  * @date 04-JUL-2007
  ******************************************************************************
  *
  * 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.
  *
  * <h2><center>&copy; COPYRIGHT 2007 STMicroelectronics</center></h2>
  * @image html logo.bmp
  ******************************************************************************
  */

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

/* LINKER SECTIONS DEFINITION FOR THIS FILE ONLY */
#pragma section (USART_CODE)
#pragma section const {USART_CONST}
#pragma section @near [USART_URAM]
#pragma section @near {USART_IRAM}
#pragma section @tiny [USART_UZRAM]
#pragma section @tiny {USART_IZRAM}

/* Private typedef -----------------------------------------------------------*/
/* Private define ------------------------------------------------------------*/
/* Private macro -------------------------------------------------------------*/
/* Private variables ---------------------------------------------------------*/
/* Private function prototypes -----------------------------------------------*/

/* Private functions ---------------------------------------------------------*/

/** @addtogroup USART_Private_Functions
  * @{
  */

/**
  * @}
  */

/* Public functions ----------------------------------------------------------*/

/** @}
  * @addtogroup USART_Public_Functions
  * @{
  */

/**
 * @brief Clears the USART's pending flags.
 * @par To be checked
 * 		- Check with designer the Clearing Procedure for TC and TXE flags
 * @par Full description:
 * Clears the USART's pending flags.
 * @param[in] USARTx can be only USART
 * @param[in] USART_FLAG specifies the flag to clear
 *		This parameter can be one of the following values:
 *                       - USART_FLAG_LBD
 *                       - USART_FLAG_TXE
 *                       - USART_FLAG_TC
 *                       - USART_FLAG_RXNE
 *                       - USART_FLAG_IDLE
 *                       - USART_FLAG_ORE
 *                       - USART_FLAG_NE
 *                       - USART_FLAG_FE
 *                       - USART_FLAG_PE
 *		       - USART_FLAG_SBK
  * @retval void None
  * @par Required preconditions:
  * None
  * @par Called functions:
  * None
  * @par Example:
  * Clear the USART TC flag
  * @code
  * USART_ClearFlag(USART, USART_FLAG_TC);
  * @endcode
  */

void USART_ClearFlag(USART_TypeDef* USARTx,USART_Flag_TypeDef USART_FLAG)
{

    u8 dummy= (u8)(0xAA);
    assert(IS_USART_FLAG_VALUE_OK(USART_FLAG));

    switch (USART_FLAG)
    {
        /*< Clear the Transmit Register Empty flag    */
    case USART_FLAG_TXE:
        USARTx->DR = dummy;
        break;

        /*< Clear the Transmission Complete flag      */
    case USART_FLAG_TC:
        USARTx->SR |= USART_SR_TC; /*TBD*/
        USARTx->SR |= USART_SR_TC;

        USARTx->DR = dummy;
        break;

        /*< Clear the Receive Register Not Empty flag */
    case USART_FLAG_RXNE:
        /*< Clear the Idle Detection flag             */
    case USART_FLAG_IDLE:
        /*< Clear the Overrun Error flag              */
    case USART_FLAG_ORE:
        /*< Clear the Noise Error flag                */
    case USART_FLAG_NE:
        /*< Clear the Framing Error flag              */
    case USART_FLAG_FE:
        /*< Clear the Parity Error flag               */
    case USART_FLAG_PE:
        dummy = USARTx->SR; /*< Read Status Register */ /*TBD*/
        dummy = USARTx->SR; /*< Read Status Register */

        dummy = USARTx->DR; /*< Read Data Register   */
        break;

        /*< Clear the LIN Break Detection flag */
    case USART_FLAG_LBD:
        USARTx->CR4 &= (u8)~(USART_CR4_LBDF);
        break;

    case USART_FLAG_SBK:
        USARTx->CR2 &= (u8)~(USART_CR2_SBK);
        break;
    default:
        break;
    }
}
/**
  * @brief Enable the USART peripheral.
  * @par Full description:
  * Enable the USART peripheral.
  * @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:
  * Enable USART peripheral.
  * @code
  * USART_Cmd(USART, ENABLE);
  * @endcode
  */
void USART_Cmd(USART_TypeDef* USARTx, FunctionalState NewState)
{
    /* Test if the USART is Enabled       */
    /* if(!(USART->CR1&USART_CR1_USARTD)) */
    /*  Wait for no Transmition before modifying the USART Enable bit */
    /* while(!(USART->SR&(USART_SR_TC|USART_SR_TC)));                  */

    if (NewState)
    {
        USARTx->CR1 &= (u8)(~USART_CR1_USARTD); /**< USART Enable */
    }
    else
    {
        USARTx->CR1 |= USART_CR1_USARTD;  /**< USART Disable (for low power consumption) */
    }
}
/**
  * @brief Deinitializes the USART peripheral.
  * @par Full description:
  * Set the USART peripheral registers to their default reset values.
  * @param[in] USARTx can be only USART.
  * @retval void None
  * @par Required preconditions:
  * None
  * @par Called functions:
  * None
  * @par Example:
  * Deinitialize USART peripheral.
  * @code
  * USART_DeInit(USART);
  * @endcode
  */

void USART_DeInit(USART_TypeDef* USARTx)
{
		u8 dummy;
    /*! Wait for no Transmition before DeInit process */
    /*! while(!(USARTx->SR&(USART_SR_TC|USART_SR_TC))); */

    /*< Clear the Idle Line Detected bit in the status rerister by a read
       to the USART_SR register followed by a Read to the USART_DR register */
    dummy = USARTx->SR;
    dummy = USARTx->DR;

    USARTx->BRR2 = USART_BRR2_RESET_VALUE;  /*< Set USART_BRR2 to reset value 0x00 */
    USARTx->BRR1 = USART_BRR1_RESET_VALUE;  /*< Set USART_BRR1 to reset value 0x00 */

    USARTx->CR1 = USART_CR1_RESET_VALUE; /*< Set USART_CR1 to reset value 0x00  */
    USARTx->CR2 = USART_CR2_RESET_VALUE; /*< Set USART_CR2 to reset value 0x00  */
    USARTx->CR3 = USART_CR3_RESET_VALUE;  /*< Set USART_CR3 to reset value 0x00  */
    USARTx->CR4 = USART_CR4_RESET_VALUE;  /*< Set USART_CR4 to reset value 0x00  */
    USARTx->CR5 = USART_CR5_RESET_VALUE; /*< Set USART_CR5 to reset value 0x00  */

    USARTx->GT  = USART_GT_RESET_VALUE;
    USARTx->PSCR= USART_PSCR_RESET_VALUE;
}


/**
  * @brief Checks whether the specified USART flag is set or not.
  * @par Full description:
  * Checks whether the specified USART flag is set or not.
  * @param[in] USARTx can be only USART.
  * @param[in] USART_FLAG specifies the flag to check.
  *                    This parameter can be one of the following values:
  *                       - USART_FLAG_LBD
 *                       - USART_FLAG_TXE
 *                       - USART_FLAG_TC
 *                       - USART_FLAG_RXNE
 *                       - USART_FLAG_IDLE
 *                       - USART_FLAG_ORE
 *                       - USART_FLAG_NE
 *                       - USART_FLAG_FE
 *                       - USART_FLAG_PE
 *		       - USART_FLAG_SBK
  * @retval FlagStatus (SET or RESET)
  * @par Required preconditions:
  * None
  * @par Called functions:
  * None
  * @par Example:
  * Check the status of TC flag.
  * @code
  * FlagStatus TC_flag;
  * TC_Flag = USART_GetFlagStatus(USART, USART_FLAG_TC);
  * @endcode
  */
FlagStatus USART_GetFlagStatus(USART_TypeDef* USARTx, USART_Flag_TypeDef USART_FLAG)
{
    assert(IS_USART_FLAG_VALUE_OK(USART_FLAG));

    switch (USART_FLAG)
    {
        /*< Clear the Transmit Data Register Empty flag     */
    case USART_FLAG_TXE:
        /*< Returns the Transmission Complete flag state   */
    case USART_FLAG_TC:
        /*< Returns the Read Data Not Empty flag state     */
    case USART_FLAG_RXNE:
        /*< Returns the IDLE Detection flag state          */
    case USART_FLAG_IDLE:
        /*< Returns the Overrun Error flag state           */
    case USART_FLAG_ORE:
        /*< Returns the Noise Error flag state             */
    case USART_FLAG_NE:
        /*< Returns the Framing Error flag state           */
    case USART_FLAG_FE:
        /*< Returns the Parity Error flag state            */
    case USART_FLAG_PE:
        if (USARTx->SR&(u8)USART_FLAG)
        {
            return SET;
        }
        else
        {
            return RESET;
        }
		break;
        /*< Returns the LIN Break Detection flag state */
    case USART_FLAG_LBD:
        if (USARTx->CR4&USART_CR4_LBDF)
        {
            return SET;
        }
        else
        {
            return RESET;
        }
		break;
        /*< Returns the Send Break flag state */
    case USART_FLAG_SBK:
        if (USARTx->CR2 & USART_CR2_SBK)
        {
            return SET;
        }
        else
        {
            return RESET;
        }
		break;
    default:
			return RESET;
		break;
    }
}

/**
  * @brief Checks whether the specified USART interrupt has occurred or not.
  * @par Full description:
  * Checks whether the specified USART interrupt has occurred or not.
  * @param[in] USARTx can be only USART.
  * @param[in] USART_IT specifies the USART interrupt source to check.
  *                    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
  * @retval ITStatus - The new state of USART_IT (SET or RESET).
  * @par Required preconditions:
  * None
  * @par Called functions:
  * None
  * @par Example:
  * @code
  * IT_Status PIEN_ITStatus;
  * PIEN_ITStatus = USART_GetITStatus(USART, USART_IT_PIEN;
  * @endcode
  */
ITStatus USART_GetITStatus(USART_TypeDef* USARTx, USART_IT_TypeDef USART_IT)
{
    assert(IS_USART_IT_VALUE_OK(USART_IT));

    switch (USART_IT)
    {
        /*< Returns the Parity Interrupt Enable bit state               */
    case USART_IT_PIEN:
        if (USARTx->CR1 & USART_CR1_PIEN)
        {
            return SET;
        }
        else
        {
            return RESET;
        }
		break;

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

        /*< Returns the Transmission Complete Interrupt Enable bit state */
    case USART_IT_TCIEN:
        if (USARTx->CR2 & USART_CR2_TCIEN)
        {
            return SET;
        }
        else
        {
            return RESET;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩精品一区二区三区在线 | 欧美日本韩国一区| 中文字幕一区三区| 91视视频在线观看入口直接观看www | 欧美日韩一区二区三区在线 | 视频一区二区不卡| 欧美一区二区三区影视| 老司机免费视频一区二区| 日韩欧美国产成人一区二区| 激情综合一区二区三区| 国产亚洲一区二区三区四区 | 欧美私模裸体表演在线观看| 午夜精品久久久久久久99樱桃| 欧美伦理电影网| 韩国视频一区二区| 中文字幕亚洲电影| 欧美三级一区二区| 国产风韵犹存在线视精品| 国产精品国产三级国产aⅴ无密码 国产精品国产三级国产aⅴ原创 | 精品久久久久一区二区国产| 国产91精品一区二区| 亚洲人妖av一区二区| 欧美福利一区二区| 国产成人激情av| 亚洲成va人在线观看| 久久婷婷成人综合色| 色8久久精品久久久久久蜜| 美国十次综合导航| 国产精品免费丝袜| 91精品午夜视频| 国产电影精品久久禁18| 亚洲无人区一区| 国产日韩精品一区二区三区在线| 91久久国产综合久久| 国内一区二区在线| 亚洲国产精品自拍| 中文字幕乱码久久午夜不卡| 欧美日韩国产小视频| 国产精品自拍av| 五月激情综合色| 国产精品青草综合久久久久99| 欧美日韩一区小说| 91视频一区二区| 国模一区二区三区白浆| 亚洲一区二区三区国产| 中文字幕精品在线不卡| 9191久久久久久久久久久| av一二三不卡影片| 激情伊人五月天久久综合| 亚洲国产一区二区三区| 国产精品毛片高清在线完整版| 日韩一区国产二区欧美三区| 91看片淫黄大片一级在线观看| 国精产品一区一区三区mba桃花| 亚洲国产视频网站| 亚洲特黄一级片| 国产午夜精品一区二区三区嫩草| 91精品国模一区二区三区| 色狠狠色狠狠综合| va亚洲va日韩不卡在线观看| 国产福利一区二区三区视频在线| 日韩国产欧美三级| 亚洲一二三四在线观看| 亚洲视频1区2区| 亚洲欧洲日产国产综合网| 国产性天天综合网| 久久女同性恋中文字幕| 日韩欧美国产综合| 日韩午夜在线观看| 欧美一级高清片| 日韩一级完整毛片| 91精品国产乱| 日韩区在线观看| 欧美一区二区三区影视| 日韩一区二区在线看片| 欧美男生操女生| 91精品欧美一区二区三区综合在| 91精品国产高清一区二区三区| 欧美日韩一区小说| 在线不卡一区二区| 91精品免费在线观看| 日韩免费高清av| 欧美r级电影在线观看| 精品区一区二区| 久久精品男人天堂av| 国产精品欧美一区喷水| 国产精品黄色在线观看| 亚洲免费在线看| 婷婷开心久久网| 日本aⅴ免费视频一区二区三区| 日本不卡高清视频| 国产一区二区三区黄视频 | 国产欧美日韩视频在线观看| 欧美国产精品专区| 亚洲欧美另类小说视频| 亚洲制服丝袜av| 青青草精品视频| 国产一区二区三区不卡在线观看| 国产aⅴ综合色| 91丨porny丨国产| 制服视频三区第一页精品| 久久这里只精品最新地址| 国产精品九色蝌蚪自拍| 亚洲夂夂婷婷色拍ww47| 久久精品久久99精品久久| 国产经典欧美精品| 色综合久久六月婷婷中文字幕| 欧美性色aⅴ视频一区日韩精品| 欧美一区二区二区| 日本一区二区高清| 亚洲高清免费视频| 韩国成人在线视频| 色偷偷一区二区三区| 日韩一级免费观看| 国产精品久久久久久久岛一牛影视 | 97久久精品人人做人人爽| 欧洲视频一区二区| 久久久久久久久久看片| 亚洲综合在线观看视频| 久久国产综合精品| 色哟哟精品一区| 久久亚洲综合色| 亚洲成人精品一区| 成人午夜视频福利| 7777精品伊人久久久大香线蕉完整版| 精品国产成人在线影院| 亚洲精品国产无套在线观| 看电视剧不卡顿的网站| 91久久精品一区二区三| 久久久久国产成人精品亚洲午夜| 一区二区在线免费| 国产成人欧美日韩在线电影 | 日韩欧美你懂的| 一区二区三区四区中文字幕| 国产呦精品一区二区三区网站| 在线观看三级视频欧美| 国产精品欧美综合在线| 精久久久久久久久久久| 欧美午夜视频网站| 中文字幕综合网| 国产一区二区剧情av在线| 欧美人动与zoxxxx乱| 亚洲美女在线一区| 国产.欧美.日韩| 精品国产一区二区精华| 亚洲成人福利片| 色哟哟精品一区| 亚洲天天做日日做天天谢日日欢| 国产一区二区网址| 欧美大片一区二区| 日韩成人精品视频| 欧美自拍丝袜亚洲| 亚洲欧洲三级电影| www.久久精品| 中文字幕va一区二区三区| 国产在线视视频有精品| 日韩精品自拍偷拍| 麻豆精品一二三| 欧美一区二区精品在线| 日本中文一区二区三区| 欧美日韩国产在线播放网站| 亚洲精品乱码久久久久| 日本韩国欧美在线| 亚洲毛片av在线| 91丨九色丨国产丨porny| 国产精品高潮呻吟| 97se狠狠狠综合亚洲狠狠| 欧美国产欧美综合| av一区二区久久| 亚洲免费大片在线观看| 日本久久电影网| 一区二区三区四区乱视频| 色婷婷狠狠综合| 亚洲一区二区五区| 欧美日韩精品欧美日韩精品一综合| 亚洲精品国产精华液| 欧美性一二三区| 日本成人在线网站| 日韩精品一区二区三区中文不卡| 久久精品噜噜噜成人av农村| 久久久久久久久久久久电影| 成人免费视频一区二区| 国产精品麻豆一区二区 | 黄色日韩网站视频| 欧美激情一区二区三区不卡| 成人午夜短视频| 玉米视频成人免费看| 色综合中文字幕| 婷婷久久综合九色综合伊人色| 日韩欧美在线网站| 国产激情偷乱视频一区二区三区| 国产精品嫩草99a| 欧美日韩一区二区三区免费看| 天堂资源在线中文精品| 日韩欧美国产精品| bt欧美亚洲午夜电影天堂| 亚洲一区在线观看免费观看电影高清 | 亚洲成av人片一区二区梦乃| 日韩欧美电影一区| 成人免费高清视频在线观看|