⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 uart_rx_tx.txt

📁 luminary 615试验程序 串口通信 能任意字节接受都和发送数据
💻 TXT
字号:
#include "hw_ints.h"
#include "hw_memmap.h"
#include "hw_types.h"
#include "gpio.h"
#include "interrupt.h"
#include "sysctl.h"
#include "uart.h"

#define LED3  GPIO_PIN_6
#define LED4  GPIO_PIN_4
#define UART0_PIN GPIO_PIN_0 | GPIO_PIN_1
#define JTAG  GPIO_PIN_1
int i=0,k=0;
long recbuff[100];
void UART0_ISR(void)								                    // UART0中断服务函数
{
    unsigned long ulStatus;
    ulStatus = UARTIntStatus(UART0_BASE, true);   				        // 获得中断状态。
    UARTIntClear(UART0_BASE, ulStatus);         				        // 清除等待响应的中断。
    if(ulStatus &(UART_INT_RX|UART_INT_RT))                  			            // 检查是否有未响应的传输中断。
    {
    		while(UARTCharsAvail(UART0_BASE)) 	            // 处理传输中断。
    		{
        	    recbuff[i]=UARTCharGetNonBlocking(UART0_BASE);
                    i++;
    		}
    }
}

void Go2JTAG(void)
{
  SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOB);
  GPIODirModeSet(GPIO_PORTB_BASE,JTAG,GPIO_DIR_MODE_IN);
  if(GPIOPinRead(GPIO_PORTB_BASE,JTAG)==0)
  {
    while(1);
  }
}
int main(void)
{
    Go2JTAG();
    SysCtlClockSet(SYSCTL_SYSDIV_1 | SYSCTL_USE_OSC | SYSCTL_OSC_MAIN |
                   SYSCTL_XTAL_6MHZ);                                   // 设置晶振为时钟源。

    SysCtlPeripheralEnable(SYSCTL_PERIPH_UART0);
    SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOA);
    SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOC);

    IntMasterEnable();
    GPIODirModeSet(GPIO_PORTA_BASE, UART0_PIN, GPIO_DIR_MODE_HW);
                                                                        // 设置GPIO的A0和A1为UART引脚。
                                                                        // (A0->RXD,A1->TXD)
    GPIODirModeSet(  GPIO_PORTC_BASE, LED3|LED4,GPIO_DIR_MODE_OUT);  
    GPIOPinWrite(GPIO_PORTC_BASE, LED3|LED4, ~LED4);                          // 初始化IO口。

    UARTConfigSet(UART0_BASE, 9600, (UART_CONFIG_WLEN_8 |
                                     UART_CONFIG_STOP_ONE |
                                     UART_CONFIG_PAR_NONE));
                                                                        // 配置UART 为 9600波特率, 8-N-1模式发送数据。

    UARTIntEnable(UART0_BASE, UART_INT_RX|UART_INT_RT);
    UARTFIFOLevelSet(UART0_BASE,UART_FIFO_TX1_8,UART_FIFO_RX7_8);
    IntEnable(INT_UART0);
    while(1)
    {
      while(UARTSpaceAvail(UART0_BASE)&&(i>0))
      {
          
          UARTCharPutNonBlocking(UART0_BASE,recbuff[k++]);
          i--;if(i==0) k=0;
      }
    }
 
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -