中文字幕 另类精品,亚洲欧美一区二区蜜桃,日本在线精品视频免费,孩交精品乱子片免费

<sup id="3hn2b"></sup>

    1. <sub id="3hn2b"><ol id="3hn2b"></ol></sub><legend id="3hn2b"></legend>

      1. <xmp id="3hn2b"></xmp>

      2. 新聞中心

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

        單片機(jī)通用模擬串口C程序

        作者: 時(shí)間:2013-03-15 來源:網(wǎng)絡(luò) 收藏

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

          // 函數(shù)名稱: idle

          // 功能說明: 等待定時(shí)器中斷時(shí)的執(zhí)行程序,與具體應(yīng)用有關(guān)

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

          void idle()

          {

          }

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

          // 函數(shù)名稱: timer_isr

          // 功能說明: 中斷處理函數(shù),與硬件無關(guān),通用函數(shù)

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

          void timer_isr(void) /*中斷服務(wù)程序*/

          {

          char mask, start_bit, flag_in;

          //發(fā)送程序

          if ( flag_tx_ready )

          {

          if ( --timer_tx_ctr=0 )

          {

          mask = internal_tx_buffer1;

          internal_tx_buffer >>= 1;

          if ( mask )

          {

          set_tx_pin_high();

          }

          else

          {

          set_tx_pin_low();

          }

          timer_tx_ctr = 3;

          if ( --bits_left_in_tx=0 )

          {

          flag_tx_ready = FALSE;

          }

          }

          }

          // 接收程序

          if ( flag_rx_off==FALSE )

          {

          if ( flag_rx_waiting_for_stop_bit )

          {

          if ( --timer_rx_ctr=0 )

          {

          flag_rx_waiting_for_stop_bit = FALSE;

          flag_rx_ready = FALSE;

          internal_rx_buffer = 0xFF;

          if ( internal_rx_buffer!=0xC2 )

          {

          inbuf[qin] = internal_rx_buffer;

          if ( ++qin>=IN_BUF_SIZE )

          {

          qin = 0;

          }

          }

          }

          }

          else // rx_test_busy接收忙

          {

          if ( flag_rx_ready==FALSE )

          {

          start_bit = get_rx_pin_status();

          // 判斷起始位

          if ( start_bit==0 )

          {

          flag_rx_ready = TRUE;

          internal_rx_buffer = 0;

          timer_rx_ctr = 4;

          bits_left_in_rx =

          rx_num_of_bits;

          rx_mask = 1;

          }

          }

          else

          {

          if ( --timer_rx_ctr=0 )

          {

          timer_rx_ctr = 3;

          flag_in =

          get_rx_pin_status();

          if ( flag_in )

          {

          internal_rx_buffer |= rx_mask;

          }

          rx_mask = 1;

          if ( --bits_left_in_rx=0 )

          {

          flag_rx_waiting_for_stop_bit = TRUE;

          }

          }

          }

          }

          }

          }



        關(guān)鍵詞: 單片機(jī) 模擬串口 C程序

        評論


        相關(guān)推薦

        技術(shù)專區(qū)

        關(guān)閉