您当前的位置:五五电子网电子知识单片机-工控设备AVR单片机avr单片机USART串口通讯初始化配置说明 正文
avr单片机USART串口通讯初始化配置说明

avr单片机USART串口通讯初始化配置说明

点击数:7982 次   录入时间:03-04 11:59:12   整理:http://www.55dianzi.com   AVR单片机
      }
      /*
      USART数据寄存器空标志UDRE及传输结束标志TXC,两个标志位都可以产生中断。
      */
      void UDR_empty()
      //使能要求:全局中断使能,数据寄存器空中断使能位 UDRIE置位。 UDRE 被置位(自动)。
      //对寄存器 UDR 执行写操作将清零 UDRE
      {unsigned char data;
      UDR = data;
      //add your code here
                                  
      }
      void TXC_END()
      {UDR =UASART_DATA;

      //add your code here
      }
      void RXC_END()
      {
      UASART_DATA=UDR;
      //add your code here
      }
      void USART_Transmit5_8( unsigned char data )//对 UDRE
标志采用轮询方式发送数据(发送5-8位数据)
      { /* 等待发送缓冲器为空 */
      while ( !( UCSRA & (1<<UDRE)) ) ;
      /* 将数据放入缓冲器,发送数据 */
      UDR = data;
      }
      void USART_Transmit_9( unsigned int data )//用查询法发送9位数据的数据帧
      { /* 等待发送缓冲器为空 */
      while ( !( UCSRA & (1<<UDRE))) ;
      /* 将第 9 位复制到 TXB8 */
      UCSRB &= ~(1<<TXB8);
      if ( data & 0x0100 )
      UCSRB |= (1<<TXB8);
      /* 将数据放入缓冲器,发送数据 */
      UDR = data;
      }
      unsigned char USART_Receive5_8( void )//用查询RXC接受5-8位的数据
      {
      /*等待接收数据*/
      while ( !(UCSRA & (1<<RXC)) );
      /* 从缓冲器获得数据并返回数据*/
      return UDR;
      }
      unsigned int USART_Receive_9( void )//接受9位的数据帧
      {
      unsigned char status, resh, resl;
      /*等待接收数据 */
      while ( !(UCSRA & (1<<RXC)) );
      /*从缓冲器获得状态及其第九位数据*/
      /* from buffer */
      status = UCSRA;
      resh = UCSRB;
      resl = UDR;
      /* 如果出错返回*/
      if ( status & (1<<FE)|(1<<DOR)|(1<<PE) )
      return 255;
      /* 过滤第九位数据然后返回*/
      resh = (resh >> 1) & 0x01;
      return ((resh << 8) | resl);
      }
      /*
      禁止接收器时缓冲器 FIFO 被刷新,缓冲器被清空。导致未读出的数据丢失。如果由于出错而必须在正常操作下刷新缓冲器?
      则需要一直读取 UDR 直到 RXC 标志清零。
      */
      void USART_Flush( void )
      {
      unsigned char dummy;
      while ( UCSRA & (1<<RXC) ) dummy = UDR;
      }



上一页  [1] [2] [3] [4] [5] 


本文关键字:单片机  AVR单片机单片机-工控设备 - AVR单片机