swh267 发表于 2014-7-20 19:46:05

TM4C123的串口中断问题

今天看TM4C123的串口,时钟有个地方没懂,因此来求大家解决。
我们在用 UARTIntEnable (unsigned long ulBase, unsigned long ulIntFlags)使能中断时,
比如 UARTIntEnable(UART6_BASE, UART_INT_RX | UART_INT_TX);使能指示的 UART中断源后
在去uint32_t UARTIntStatus(uint32_t ui32Base,bool bMasked)函数来获取中断被屏蔽的撞断状态
那当UART_INT_RX触发中断时,和 UART_INT_TX触发中断时UARTIntStatus返回值,有区别么?
如何区别这两者的中断触发返回值?

admin 发表于 2014-7-20 20:26:11

由于所有中断事件在发送到中断控制器之前会一起进行“或运算”操作,所以任意时刻
UART 只能向中断产生一个中断请求。通过查询中断状态函数 UARTIntStatus( ),软件可以
在同一个中断服务函数里处理多个中断事件.
原型
void UARTIntEnable(unsigned long ulBase, unsigned long ulIntFlags)
参数
ulBase:UART 端口的基址,取值 UART0_BASE、UART1_BASE 或 UART2_BASE
ulIntFlags:指定的中断源,应当取下列值之一或者它们之间的任意“或运算”组合形式:
UART_INT_OE
// FIFO 溢出错误中断
UART_INT_BE
// BREAK 错误中断
UART_INT_PE
// 奇偶校验错误中断
UART_INT_FE
// 帧错误中断
UART_INT_RT
// 接收超时中断
UART_INT_TX
// 发送中断
UART_INT_RX
// 接收中断
注:接收中断和接收超时中断通常要配合使用,即 UART_INT_RX | UART_INT_RT

admin 发表于 2014-7-20 20:27:00

unsigned long UARTIntStatus(unsigned long ulBase, tBoolean bMasked)
参数
ulBase:UART 端口的基址,取值 UART0_BASE、UART1_BASE 或 UART2_BASE
bMasked:如果需要获取原始的中断状态,则取值 false
如果需要获取屏蔽的中断状态,则取值 true
返回
原始的或屏蔽的中断状态

swh267 发表于 2014-7-20 21:04:25

恩恩,理解了,要判断是UART_INT_TX中断和UART_INT_RX中断,用 UARTIntStatus的返回值和其中一个相与,非零的话说明该中断触发了

admin 发表于 2014-7-20 21:11:31

swh267 发表于 2014-7-20 21:04
恩恩,理解了,要判断是UART_INT_TX中断和UART_INT_RX中断,用 UARTIntStatus的返回值和其中一个相与,非零 ...
你们是搞电赛的么?

swh267 发表于 2014-7-22 08:07:09

admin 发表于 2014-7-20 21:11
你们是搞电赛的么?

是的,还得向坛主请教多多

我家女王是逗比i 发表于 2014-8-8 12:42:23

我最近也来玩这芯片,这个中断入口是怎么样的呢?

xckhmf 发表于 2014-8-10 00:35:54

正需要,学习了。谢谢青风大哥。
页: [1]
查看完整版本: TM4C123的串口中断问题