锐单电子商城 , 一站式电子元器件采购平台!
  • 电话:400-990-0325

dsPIC33F串口接收到的数据立即返送-UART

时间:2022-08-19 21:30:01 ds30p1传感器ds30nb传感器ds30c1光电传感器

/* ****************************************************************  ** 功能描述: 串行通信程序,立即返回接收到的数据  *************************************************************** */  #include "p30f6014.h"   //ds30f6014头文件  unsigned int recdata;   // 接收数据寄存器  /* ****************************************************************  ** 函 数 名: Uart_Initial()  ** 功能描述: 232串行通信初始化子程序,设置低优先级中断接收,使能232收和发  *************************************************************** */  void Uart_Initial()  {   IFS0bits.U1TXIF=0;         ///中断标志位置复位发送   IFS0bits.U1RXIF=0;         ///复位接收中断标志     IPC2bits.U1RXIP=1;         //收中断优先级:1级     IPC2bits.U1TXIP=1;    U1MODE=0x8000;   //UART使能,8位数据,无奇偶验证     U1STA=0x0000;  //当一个字符被传输到发送移位寄存器(发送缓冲器中至少有一个  ///字符)产生中断,当接收到字符时,中断标志的位置   U1BRG=0X34;  //U1BRG=Fcy/(16*波特率)-1,波特率9600  }  /* ****************************************************************  ** 函 数 名: __attribute__((__interrupt__)) _U1RXInterrupt()  ** 功能描述: 中断子程序:232接收中断子程序  *************************************************************** */  void __attribute__((__interrupt__)) _U1TXInterrupt()  {   while(U1STAbits.TRMT==0);   //当0时,表示移位寄存器没有空   IFS0bits.U1TXIF=0;     }  /* ****************************************************************  ** 函 数  名: __attribute__((__interrupt__)) _U1TXInterrupt()  ** 功能描述: 中断子程序:232发送中断子程序  *************************************************************** */  void __attribute__((__interrupt__)) _U1RXInterrupt()  {   while(U1STAbits.URXDA==1)   {    recdata=U1RXREG; // 接收并存储数据    U1TXREG=recdata; // 返回接收到的数据   }   IFS0bits.U1RXIF=0;  // 接收中断标志  }  main()  {   Uart_Initial();  // 串行通信初始化子程序   IEC0bits.U1RXIE=1;  //UART1收使能   IEC0bits.U1TXIE=1;U1STAbits.UTXEN=1;   while(1){ ;  // 等待中断,也可以编写其他应用程序   }  }

锐单商城拥有海量元器件数据手册IC替代型号,打造电子元器件IC百科大全!

相关文章