EPM240-EPM570-EPM1270逻辑器件解密网


首页 -- ALTERA解密-- EPM240解密-- EPM570解密-- EPM1270解密 --关于我们
 

cortex mo lpc1114 uart串口中断收发数据

[导读]中断方式串口接收数据新建一个工程,结构如下图所示:在main.c文件中,输入以下代码:#include “lpc11xx.h”#include “uart.h”uint8_t rec_buf;void UART_IRQHandler(void){ uint32_t IRQ_ID; // 定义读取中断ID

中断方式串口接收数据

新建一个工程,结构如下图所示:

在main.c文件中,输入以下代码:

#include “lpc11xx.h”

#include “uart.h”

uint8_t rec_buf;

void UART_IRQHandler(void)

{

uint32_t IRQ_ID; // 定义读取中断ID号变量

uint8_t rec_buf; // 定义接收数据变量数组

IRQ_ID = LPC_UART->IIR; // 读中断ID号

IRQ_ID =((IRQ_ID>>1)&0x7);// 检测bit3:bit1

if(IRQ_ID == 0x02 ) // 检测是不是接收数据引起的中断

{

rec_buf = LPC_UART->RBR;

UART_send_byte(rec_buf); // 把接收到的字节发回串口

}

}

int main()

{

UART_init(115200); // 把串口波特率配置为9600

LPC_UART->IER = 0x01; // 开启接收中断

NVIC_EnableIRQ(UART_IRQn); // 开串口中断

while(1)

{

;

}

}

与上一节相比,在main函数中,增加了第19、20行,负责开启串口接收中断。

第19行,给中断允许寄存器IER bit0写1,开启接收中断。

第4~15行是中断服务函数。

第8行,读取中断识别寄存器IIR的值。

第9行,获取IIR寄存器bit1~bit3的值,先右移一位,再把bit4以上的值清0,得到bit1~bit3的值。

第10行,检测是否是接收到数据引起的中断。

打开串口调试助手,波特率调成9600,用串口调试助手给单片机发送数据,单片机将会把接收到的数据发送回串口调试助手。



返回顶部


2013-2015 EPM240-EPM570-EPM1270逻辑器件解密网 All Rights Reserved.
如有任何问题和建议请联系:498187676@qq.com

深圳市星光芯电子有限公司 版权所有
地址:深圳市龙岗区南湾街道平吉大道1号建昇大厦B栋1618(李朗软件园对面) 电话:0755-88820678 手机:13713820066


站点地图

粤ICP备12084176号