<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 單片機通用模擬串口C程序

          單片機通用模擬串口C程序

          作者: 時間:2013-03-15 來源:網絡 收藏

            //-------------------------------------------------------------------------------------------------------

            // 函數名稱: init_uart

            // 功能說明: 初始化異步串口,與硬件無關,通用函數

            //--------------------------------------------------------------------------------------------------------

            void init_uart( void )

            {

            flag_tx_ready = FALSE;

            flag_rx_ready = FALSE;

            flag_rx_waiting_for_stop_bit = FALSE;

            flag_rx_off = FALSE;

            rx_num_of_bits = 10;

            tx_num_of_bits = 10;

            set_tx_pin_low();

            timer_set();

            set_timer_interrupt(); // 使能計時器中斷

            }

            //-------------------------------------------------------------------------------------------------------

            // 函數名稱: get_char

            // 輸入參數: 無

            // 輸出參數: ch,接收數據

            // 功能說明: 接收一個字節(jié),與硬件無關,通用函數

            //--------------------------------------------------------------------------------------------------------

            char get_char( void )

            {

            char ch;

            do

            {

            while ( qout==qin )

            {

            idle();

            }

            ch = inbuf[qout] 0xFF;

            if ( ++qout>=IN_BUF_SIZE )

            {

            qout = 0;

            }

            }

            while ( ch==0x0A || ch==0xC2 );

            return( ch );

            }

            //-----------------------------------------------------------------------------------------

            // 函數名稱: put_char

            // 功能說明: 接收一個字節(jié),與硬件無關,通用函數

            //-----------------------------------------------------------------------------------------

            void put_char( char ch )

            {

            while ( flag_tx_ready );

            user_tx_buffer = ch;

            // 喚醒串口

            timer_tx_ctr = 3;

            bits_left_in_tx = tx_num_of_bits;

            internal_tx_buffer = (user_tx_buffer1) | 0x200;

            flag_tx_ready = TRUE;

            }

            //-------------------------------------------------------------------------------------------------------

            // 函數名稱: flush_input_buffer

            // 功能說明:初始化緩沖區(qū),與硬件無關,通用函數

            //--------------------------------------------------------------------------------------------------------

            void flush_input_buffer( void )

            {

            qin = 0;

            qout = 0;

            }

            //-----------------------------------------------------------------------------------------

            // 函數名稱: kbhit

            // 功能說明: 判斷接收指針與發(fā)送指針是否相等,與硬件無關,通用函數

            //-----------------------------------------------------------------------------------------

            char kbhit( void )

            {

            return( qin!=qout );

            }

            //-----------------------------------------------------------------------------------------

            // 函數名稱: turn_rx_on

            // 功能說明: 開始接收,與硬件無關,通用函數

            //-----------------------------------------------------------------------------------------

            void turn_rx_on( void )

            {

            flag_rx_off = FALSE;

            }

            //-----------------------------------------------------------------------------------------

            // 函數名稱: turn_rx_off

            // 功能說明: 停止接收,與硬件無關,通用函數

            //-----------------------------------------------------------------------------------------

            void turn_rx_off( void )

            {

            flag_rx_off = TRUE;

            }

            ;************************************************************


          上一頁 1 2 3 下一頁

          評論


          相關推薦

          技術專區(qū)

          關閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();