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

? 歡迎來(lái)到蟲(chóng)蟲(chóng)下載站! | ?? 資源下載 ?? 資源專(zhuān)輯 ?? 關(guān)于我們
? 蟲(chóng)蟲(chóng)下載站

?? uart.h

?? ds18b20原版程序!!已經(jīng)調(diào)試通過(guò)了!!!
?? H
字號(hào):
#ifndef UART_H
#define UART_H
/************************************************************************
Title:     Interrupt UART library with receive/transmit circular buffers
Author:    Peter Fleury <pfleury@gmx.ch>   http://jump.to/fleury
File:      not valid see "Extension" 
           ($Id: uart.h,v 1.7.2.1 2003/12/27 20:39:14 peter Exp $)
Software:  AVR-GCC 3.3/3.4
Hardware:  any AVR with built-in UART, tested on AT90S8515 at 4 Mhz and
           ATmega16 at 1.8, 3.6, 4 and 8 MHz
Usage:     see Doxygen manual
Extension: uart_puti, uart_puthex_nibble, uart_puthex_byte 
           by M.Thomas 9/2004
************************************************************************/

/** 
 *  @defgroup pfleury_uart UART Library
 *  @code #include <uart.h> @endcode
 * 
 *  @brief Interrupt UART library using the built-in UART with transmit and receive circular buffers. 
 *
 *  This library can be used to transmit and receive data through the built in UART. 
 *
 *  An interrupt is generated when the UART has finished transmitting or
 *  receiving a byte. The interrupt handling routines use circular buffers
 *  for buffering received and transmitted data.
 *
 *  The UART_RX_BUFFER_SIZE and UART_TX_BUFFER_SIZE constants define
 *  the size of the circular buffers in bytes. Note that these constants must be a power of 2.
 *  You may need to adapt this size to your target and your application.
 *
 *  @note Based on Atmel Application Note AVR306
 *  @author Peter Fleury pfleury@gmx.ch  http://jump.to/fleury
 */
 
/*@{*/

#if (__GNUC__ * 100 + __GNUC_MINOR__) < 303
#error "This library requires AVR-GCC 3.3 or later, update to newer AVR-GCC compiler !"
#endif


/*
** constants and macros
*/

/** @brief  UART Baudrate Expression
 *  @param  xtalcpu  system clock in Mhz           
 *  @param  baudrate baudrate in bps, e.g. 1200, 2400, 9600     
 */
#define UART_BAUD_SELECT(baudRate,xtalCpu) ((xtalCpu)/((baudRate)*16l)-1)


/** Size of the circular receive buffer, must be power of 2 */
#define UART_RX_BUFFER_SIZE 32
/** Size of the circular transmit buffer, must be power of 2 */
#define UART_TX_BUFFER_SIZE 32


#ifndef P
#define P(s) ({static const char c[] __attribute__ ((progmem)) = s;c;})
#endif


/* 
** high byte error return code of uart_getc()
*/
#define UART_FRAME_ERROR      0x0800              /* Framing Error by UART       */
#define UART_OVERRUN_ERROR    0x0400              /* Overrun condition by UART   */
#define UART_BUFFER_OVERFLOW  0x0200              /* receive ringbuffer overflow */
#define UART_NO_DATA          0x0100              /* no receive data available   */


/*
** function prototypes
*/

/**
   @brief   Initialize UART and set baudrate 
   @param   baudrate Specify baudrate using macro UART_BAUD_SELECT()
   @return  none
*/
extern void uart_init(unsigned int baudrate);


/**
 *  @brief   Get received byte from ringbuffer
 *
 * Returns in the lower byte the received character and in the 
 * higher byte the last receive error.
 * UART_NO_DATA is returned when no data is available.
 *
 *  @param   void
 *  @return  lower byte:  received byte from ringbuffer
 *  @return  higher byte: last receive status
 *           - \b 0 successfully received data from UART
 *           - \b UART_NO_DATA           
 *             <br>no receive data available
 *           - \b UART_BUFFER_OVERFLOW   
 *             <br>Receive ringbuffer overflow.
 *             We are not reading the receive buffer fast enough, 
 *             one or more received character have been dropped 
 *           - \b UART_OVERRUN_ERROR     
 *             <br>Overrun condition by UART.
 *             A character already present in the UART UDR register was 
 *             not read by the interrupt handler before the next character arrived,
 *             one or more received characters have been dropped.
 *           - \b UART_FRAME_ERROR       
 *             <br>Framing Error by UART
 */
extern unsigned int uart_getc(void);


/**
 *  @brief   Put byte to ringbuffer for transmitting via UART
 *  @param   data byte to be transmitted
 *  @return  none
 */
extern void uart_putc(unsigned char data);


/**
 *  @brief   Put string to ringbuffer for transmitting via UART
 *
 *  The string is buffered by the uart library in a circular buffer
 *  and one character at a time is transmitted to the UART using interrupts.
 *  Blocks if it can not write the whole string into the circular buffer.
 * 
 *  @param   s string to be transmitted
 *  @return  none
 */
extern void uart_puts(const char *s );


/**
 * @brief    Put string from program memory to ringbuffer for transmitting via UART.
 *
 * The string is buffered by the uart library in a circular buffer
 * and one character at a time is transmitted to the UART using interrupts.
 * Blocks if it can not write the whole string into the circular buffer.
 *
 * @param    s program memory string to be transmitted
 * @return   none
 * @see      uart_puts_P
 */
extern void uart_puts_p(const char *s );

/**
 * @brief    Macro to automatically put a string constant into program memory
 */
#define uart_puts_P(__s)       uart_puts_p(P(__s))

/**
 * @brief    Put integer to ringbuffer for transmitting via UART.
 *
 * The integer is converted to a string which is buffered by the uart 
 * library in a circular buffer and one character at a time is transmitted 
 * to the UART using interrupts.
 *
 * @param    value to transfer
 * @return   none
 * @see      uart_puts_p
 */
extern void uart_puti( int i );

/**
 * @brief    Put nibble as hex to ringbuffer for transmit via UART.
 *
 * The lower nibble of the parameter is convertet to correspondig
 * hex-char and put in a circular buffer and one character at a time 
 * is transmitted to the UART using interrupts.
 *
 * @param    value to transfer (byte, only lower nibble converted)
 * @return   none
 * @see      uart_putc
 */
extern void uart_puthex_nibble(const unsigned char b);

/**
 * @brief    Put byte as hex to ringbuffer for transmit via UART.
 *
 * The upper and lower nibble of the parameter are convertet to 
 * correspondig hex-chars and put in a circular buffer and one 
 * character at a time is transmitted to the UART using interrupts.
 *
 * @param    value to transfer
 * @return   none
 * @see      uart_puthex_nibble
 */
extern void uart_puthex_byte(const unsigned char b);

/*@}*/
#endif // UART_H 

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美午夜电影网| 91麻豆精品国产自产在线观看一区| 一区二区视频在线看| 4438x亚洲最大成人网| 春色校园综合激情亚洲| 亚洲va欧美va人人爽| 国产精品精品国产色婷婷| 在线播放国产精品二区一二区四区 | 综合在线观看色| 日韩精品最新网址| 欧美在线999| 成人网在线播放| 奇米精品一区二区三区在线观看 | 欧美军同video69gay| av动漫一区二区| 国产精品一线二线三线| 人人超碰91尤物精品国产| 亚洲一区免费在线观看| 欧美国产一区在线| 久久色视频免费观看| 欧美一区二区三区人| 欧美性感一类影片在线播放| 99久久99久久免费精品蜜臀| 国产成人精品三级麻豆| 国产在线观看一区二区| 免费成人你懂的| 日韩av网站免费在线| 性做久久久久久| 亚洲国产精品天堂| 亚洲最大的成人av| 樱桃视频在线观看一区| 最新热久久免费视频| 国产精品久久久久久久久动漫| 国产亚洲精品免费| 久久精品一区二区三区不卡牛牛| 日韩精品一区二区在线观看| 日韩一区二区在线免费观看| 欧美二区乱c少妇| 欧美高清你懂得| 9191国产精品| 日韩视频在线永久播放| 欧美一级艳片视频免费观看| 在线不卡一区二区| 日韩一级片在线播放| 日韩色视频在线观看| 日韩免费观看高清完整版| 日韩欧美久久久| 欧美成人伊人久久综合网| 欧美v国产在线一区二区三区| 日韩精品一区二区三区在线观看 | 日韩精品一区二区三区在线| 日韩一区二区三免费高清| 日韩视频一区二区在线观看| 欧美大片在线观看一区二区| 久久精品免费在线观看| 国产女人aaa级久久久级 | 欧美性生交片4| 91麻豆精品国产91| 精品三级在线观看| 国产日韩欧美精品一区| 自拍偷自拍亚洲精品播放| 一区二区视频在线| 成人一区在线观看| 色一情一乱一乱一91av| 欧美日韩不卡一区二区| 日韩欧美综合一区| 中文字幕不卡三区| 亚洲午夜精品17c| 美女性感视频久久| av一区二区三区在线| 欧美日韩中字一区| 2020国产成人综合网| 亚洲青青青在线视频| 日日骚欧美日韩| 国产精品一级黄| 91国产丝袜在线播放| 日韩一级欧美一级| 国产精品理伦片| 天涯成人国产亚洲精品一区av| 黄色日韩网站视频| 色婷婷久久综合| 欧美成人猛片aaaaaaa| 1000部国产精品成人观看| 五月综合激情日本mⅴ| 国产精品一区二区在线观看网站| 色综合天天综合网天天看片| 日韩三级视频在线观看| 亚洲三级理论片| 韩国精品一区二区| 91国产福利在线| 国产校园另类小说区| 午夜精品久久久| 不卡一二三区首页| 欧美成人女星排名| 亚洲高清免费视频| 成人视屏免费看| 日韩精品一区在线| 亚洲国产视频a| 99久久精品免费| 精品伦理精品一区| 午夜视频一区二区| 99视频精品在线| 久久久无码精品亚洲日韩按摩| 亚洲午夜精品一区二区三区他趣| 成人毛片视频在线观看| 日韩欧美一区在线观看| 亚洲一区在线视频观看| av一区二区三区四区| 国产欧美在线观看一区| 麻豆成人免费电影| 欧美日韩免费高清一区色橹橹 | 99综合影院在线| 久久色成人在线| 老司机午夜精品99久久| 欧美日韩高清不卡| 亚洲自拍偷拍网站| 99精品国产热久久91蜜凸| 久久久亚洲精品一区二区三区| 日韩在线卡一卡二| 欧美日韩免费观看一区二区三区| 亚洲美女少妇撒尿| 97久久人人超碰| 国产精品欧美久久久久无广告| 国产一区福利在线| 日韩丝袜美女视频| 狂野欧美性猛交blacked| 欧美绝品在线观看成人午夜影视| 最新中文字幕一区二区三区| 成人av中文字幕| 国产精品三级在线观看| 成人性生交大片免费看中文| 国产日韩欧美高清在线| 国产成人在线电影| 久久精品水蜜桃av综合天堂| 精品亚洲国内自在自线福利| 欧美xxxx老人做受| 黄色精品一二区| 国产欧美日韩中文久久| 国v精品久久久网| 中文字幕欧美三区| www.久久久久久久久| 综合久久久久久| 色天天综合色天天久久| 亚洲国产日韩a在线播放性色| 欧美日韩中文字幕精品| 日韩和欧美一区二区| 久久久久久久久久美女| 国产一区二区三区免费在线观看| 久久综合色之久久综合| 国产成人在线视频免费播放| 国产精品国产三级国产普通话蜜臀| 成人av在线资源| 亚洲欧洲中文日韩久久av乱码| 一本久久a久久精品亚洲| 亚洲一区在线电影| 日韩一区二区精品| 国产美女精品在线| 中文字幕一区二区三区在线观看| 91小视频在线免费看| 香港成人在线视频| 精品动漫一区二区三区在线观看| 国产福利一区二区三区视频| 中文字幕一区二区三区不卡在线| 欧美中文字幕一区二区三区亚洲| 视频一区二区三区入口| 久久综合九色综合97_久久久| 丁香婷婷综合激情五月色| 亚洲美女偷拍久久| 91精品国产入口| 国产a视频精品免费观看| 亚洲精品视频在线观看网站| 91精品黄色片免费大全| 国产裸体歌舞团一区二区| 亚洲欧洲精品成人久久奇米网| 欧美日韩国产一二三| 国产一区二区看久久| 国产精品不卡一区| 日韩一区二区中文字幕| 成人黄动漫网站免费app| 婷婷综合另类小说色区| 国产女同互慰高潮91漫画| 欧美午夜精品久久久久久超碰| 韩国一区二区视频| 玉米视频成人免费看| 精品国精品自拍自在线| 色婷婷国产精品| 经典三级视频一区| 亚洲一区二区视频| 欧美精品一区二区精品网| 一本色道久久综合亚洲91| 精品亚洲成a人| 亚洲电影你懂得| 国产女主播在线一区二区| 日韩一区二区在线观看视频播放| www..com久久爱| 美脚の诱脚舐め脚责91| 一级精品视频在线观看宜春院 | 91麻豆精品国产91久久久久久 | 91婷婷韩国欧美一区二区| 精品在线一区二区三区|