新闻中心

EEPW首页>嵌入式系统>设计应用> 单片机通用模拟串口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,接收数据

  // 功能说明: 接收一个字节,与硬件无关,通用函数

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

  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

  // 功能说明: 接收一个字节,与硬件无关,通用函数

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

  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

  // 功能说明:初始化缓冲区,与硬件无关,通用函数

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

  void flush_input_buffer( void )

  {

  qin = 0;

  qout = 0;

  }

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

  // 函数名称: kbhit

  // 功能说明: 判断接收指针与发送指针是否相等,与硬件无关,通用函数

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

  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 下一页

评论


相关推荐

技术专区

关闭