LM3S9B96 的UART以中断方式收发数据

发布者:NanoScribe最新更新时间:2016-07-30 来源: eefocus关键字:LM3S9B96  UART  中断方式  收发数据 手机看文章 扫描二维码
随时随地手机看文章
lm3s9b96的uart发送和接收都可以进入用户编写的中断处理函数。

uart的配置无非是设置:波特率、数据位、停止位、奇偶校验位等。
 
下面是用uart1为例,配置成中断方式收发数据

#include "inc/lm3s9b96.h"
#include "inc/hw_memmap.h"
#include "inc/hw_types.h"
#include "inc/hw_ints.h"
#include "driverlib/interrupt.h"
#include "driverlib/gpio.h"
#include "driverlib/uart.h"
#include "driverlib/sysctl.h"

//*****************************************************************************
//
// 延时函数
//
//*****************************************************************************
void Delay(volatile signed long nCount)
{
for(; nCount != 0; nCount--);
}

//*****************************************************************************
//
// Send a string to the UART.
//
//*****************************************************************************
void UARTSend(const unsigned char *pucBuffer, unsigned long ulCount)
{
// Loop while there are more characters to send.
while (ulCount--)
{
// Write the next character to the UART.
UARTCharPutNonBlocking(UART1_BASE, *pucBuffer++);
}
}

//*****************************************************************************
//
// UART1初始化函数
//
//*****************************************************************************
void UART1_Init(void)
{
// 使能UART1外设
SysCtlPeripheralEnable(SYSCTL_PERIPH_UART1);
SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOB);

// Set GPIO B0 and B1 as UART pins
GPIOPinTypeUART(GPIO_PORTB_BASE, GPIO_PIN_0 | GPIO_PIN_1);
GPIOPinConfigure(GPIO_PB0_U1RX);
GPIOPinConfigure(GPIO_PB1_U1TX);

// Configure the UART1 for 115200, 8-N-1 operation
UARTConfigSetExpClk(UART1_BASE, SysCtlClockGet(), 115200, (UART_CONFIG_WLEN_8 | UART_CONFIG_STOP_ONE | UART_CONFIG_PAR_NONE));

// Enable the UART interrupt
IntEnable(INT_UART1);
UARTIntEnable(UART1_BASE, UART_INT_RX | UART_INT_RT);

// Prompt for text to be entered
//UARTSend((unsigned char *)"hello world", 11);
}


//*****************************************************************************
//
// 主函数
//
//*****************************************************************************
int main(void)
{
// Set the clocking to run directly from the crystal.
SysCtlClockSet(SYSCTL_SYSDIV_1 | SYSCTL_USE_OSC | SYSCTL_OSC_MAIN | SYSCTL_XTAL_16MHZ);

UART1_Init();
IntMasterEnable(); // 开总中断

while (1)
{
}
}

//*****************************************************************************
//
// The UART1 interrupt handler.
//
//*****************************************************************************
void UART1IntHandler(void)
{
unsigned long ulStatus;

// Get the interrrupt status.
ulStatus = UARTIntStatus(UART1_BASE, true);

// Clear the asserted interrupts.
UARTIntClear(UART1_BASE, ulStatus);

// Loop while there are characters in the receive FIFO.
while (UARTCharsAvail(UART1_BASE))
{
// Read the next character from the UART and write it back to the UART.
UARTCharPutNonBlocking(UART1_BASE, UARTCharGetNonBlocking(UART1_BASE));
}
}

如果想发送数据时,也进入中断处理函数,则将:
          UARTIntEnable(UART1_BASE, UART_INT_RX  |  UART_INT_RT);
改为
UARTIntEnable(UART1_BASE, UART_INT_TX |  UART_INT_RX  |  UART_INT_RT );
 
按照前面讲的中断映射表的配置,将startup_ewarm.c文件中添加两处代码。编译、运行即可。
关键字:LM3S9B96  UART  中断方式  收发数据 引用地址:LM3S9B96 的UART以中断方式收发数据

上一篇:LM3S9B96 的看门狗定时器
下一篇:LM3S9B96 定时器的配置

推荐阅读最新更新时间:2024-03-16 15:02

MB89P475的UART/SIO结构与应用
摘要:MB89P475是富士通公司生产的八位单片机。该单片机具有丰富的软、硬件资源和良好的EMC性能,可广泛应用于家电控制等产品中。该器件内含两路UART/SIO接口,非常适用于计算机集中控制和管理的多级通信控制系统中。文中介绍了该单片机的特点和UART/SIO结构,给出了MB89P475在LSP300型中央空调的计算机集控系统中的设计应用方法。 关键词:MB89P475;单片机;中央空调;计算机集控系统 MB89P475是富士通公司生产的F2MC-8L MB89470单片机系列产品。该产品具有丰富的软、硬件资源和良好的EMC性能, 而且其程序空间(16k%26;#215;8bits PROM)和数据空间(512%26;
[单片机]
uart dma实现方式分析
在做uart DMA驱动期间,前后加起来也有1个月左右的时间,总的来说比较全面的了解了uart,DMA的工作原理。 在调试中,遇到了最大问题就是关于DMA操作这快的不熟悉,导致浪费了很多的时间和精力。对UART,DMA的工作原理可以看LDD3,或者设备驱动一书中也有 详细介绍,uart-dma驱动的移植可以参好drivers/serial/bfin_5xx.c UART-DMA总体思路如下: 1.本UART-DMA采用的是,DMA+POLLING(轮询)的方式,其中轮询采用的是定时器。 2.在驱动中发送DMA需要用户层主动发起; 接收DMA:在UART open操作时enable_dma(rx),等待接收数据,当到达DMA
[单片机]
串口UART学习笔记
一、谈谈对串口UART的理解 1.交代计算机中常见的几种硬件(CPU和外设)通信方式:GPIO/UART/IIC/SPI/1-WIRE。 2.UART的定义:通用串行异步收发器。 串行和并行的对比:距离 速度 抗干扰性 2.1 异步:CPU的速度要远远快于外设,势必要考虑数据同步(发玩还要确保接收正确) 数据同步方法:异步和同步 同步:“低放高取”。不仅仅需要数据线,还需要一根时钟控制信号线。利用时钟控制信号线来实现双方的数据同步。 IIC总线和SPI总线就是采用同步方式。 3.UART串口的三种工作方式:单工、半双工、全双工。 二、如何利用异步实现UART的数据同步 答案在UART的数据传
[单片机]
MSP430F249 IIC write and Uart send
//******************************************************************************/ #include msp430.h //注意:两次发送间隔必须要有延时,否则不能再次发送,串口发送格式: unsigned char PTxData ; // Pointer to TX data unsigned char pHead; unsigned char pTail; unsigned char TXByteCtr; const unsigned char TxData = // Table of data to tra
[单片机]
MSP430F169(三) ---- 使用UART实现PC与单片机的数据收发并在1602 液晶显示
本代码需要注意的细节 每次字符串的发送时间至少间隔三秒,发送的字符的数量最好在32个以内,防止数据接收不全。 本代码波特率的设置为1200.如果波特率设置过高,会出现数据接收不全的问题。我试过9600的波特率,会出现问题。读者可以自行修改代码,实现更高的传输速率。 有关的细节会在代码中说明 代码实现 主函数 #include msp430f169.h #include Config.h #include LCD.h #include Init.h #include UART.h //#include stdlib.h 本来想用全局指针来存储接收的数据 // 结果发现自己用不来....
[单片机]
MSP430F169(二)——UART中断(论下)
1. UART中断工作的机制 UART只有一个发送中断向量和一个接收中断向量,通过判断中断向量的标志来控制数据的收发 1.1 发送机制 当用户想发送数据时,UxIFG产生一个中断,表明UxTXBUF已经准备好接收数据。当UxTXBUF接收字符后或中断被执行,URXIFG将会复位。 SWRST = 1或PUC会置位UxIFG (SWRST: 系统复位) SWRST = 1或PUC会复位UxIE 1.2接收机制 UxRXBUF每次接收一个字符并加载时,URXIFGx会产生一个中断标记 UxRXBUF被读取时或中断被执行时,URXIFG被自动复位 当PUC或SWRST = 1时UxRXIE 复位 建议接收中断函数的代码要精简,执
[单片机]
浅谈 STM32 硬件I2C的使用 (中断方式 无DMA 无最高优先级)
引子 STM32的硬件I2C很多人都对它望而却步。因为很多电工都说,STM32 硬件 I2C有BUG、不稳定、死机等等……最后都使用GPIO模拟I2C。 的确,模拟I2C好用。但是在我看来在一个72M的Cortex-M3的MCU上这样做非常不妥。一般来说I2C是一种慢速总线,就算工作在400kHz的快速模式上,I2C传送每个字节仍需要至少23us——还没有计算地址、起始信号和结束信号的发送。如果使用GPIO模拟的I2C,这23us的CPU时间都在空转中浪费了,而这23us已经可以做不少的事情了,所以在STM32上I2C还是使用硬件为佳——虽然它多多少少有点缺陷。 这篇文章不是给完全没有接触过STM32 硬件I2C的新手看的,看这篇
[单片机]
浅谈 STM32 硬件I2C的使用 (<font color='red'>中断</font><font color='red'>方式</font> 无DMA 无最高优先级)
UART需要使用DMA发送吗?
DMA一种在嵌入式实时任务处理中常用的功能。 而UART发送数据包,使用DMA方式能大量减轻CPU处理的时间,使其CPU资源不被大量浪费,尤其在UART收发大量数据包(如高频率收发指令)时具有明显优势。 Ⅰ简述DMA DMA:Direct Memory Access,直接内存存取/访问。简单来说就是内存RAM直接和其他设备(外设)进行数据交互,而不需要CPU参与的一种控制器。 DMA它允许不同速度的硬件装置来沟通,而不需要依赖于 CPU 的大量中断负载。否则,CPU 需要从来源把每一片段的数据复制到暂存器,然后把它们再次写回到新的地方。在这个时间中,CPU 对于其他的工作来说就无法使用。 ⅡDMA优点 DMA在系统
[单片机]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved