最初,读取串口数据这样处理:
while (1)
{
data = ReceiveByte();
switch(data)
{
case 'a':
function1()...
break;
case 'b':
...
break;
case 'c':
...
break;
default:
break;
}
}
这样写只能读取一次,随后再怎么写给串口数据,也读取不到了。
一旦进入显示状态,就陷入无限循环无法跳出。查阅LPC1114手册,寻找串口相关信息。
UART接收数据时,可以使用查询方式接收,也可以使用中断方式接收。
表4-1 接收数据工作方式
查询方式
|
通过查询寄存器U0LSR中的位U0LSR[0]实现。只要接收到数据,U0LSR[0]位就会置位
|
中断方式
|
1、设置UART中断使能寄存器(U0IER),使U0IER[0] = 1
2、开放系统中断
如果接收FIFO中的数据达到U0LSR中设置的触发点时,便会触发中断——RDA。
若接收了数据,但接收个数小于触发点,过一段时间后即发生字符超时中断——CTI
|
使用中断方式接收数据时,如果发生RDA中断,则循环从U0RBR中读取数据即可。如果发生了字符超时中断——CTI,可以通过U0LSR[0]来判断FIFO中是否含有有效数据。
解决方案:改用中断方式读取数据,就可以实现多次读串口操作。
分享到:
相关推荐
LPC1114 按键模块,串口模块的基本功能实现
LPC1114-I2C,I2C库函数及基本使用方法,软件及硬件模式
LPC1114的键盘驱动程序,对认识LPC1114的初步学习很有帮助,加强对驱动程序的编写能力
LPC1114 NRF24L01 无线模块 数据收发 无线传输 已经测试通过
lpc1114 学习资料及例程源代码
LPC1114单片机的ADC功能C语言程序
update了LPC1114原来的代码,供新手参考
lpc1114源代码,此文档对于LPC1114初学者非常有用,可以参照文档的说明,一步步实现你想实现的功能,文档中对于每个代码的说明很清楚,会使你对LPC1114在最短的时间内,最快的了解并使用。开发板原理图 LPC1114 ...
LPC1114原理图 精炼 可以直接开发做板
LPC1114单片机的UART功能C语言程序
由于LPC1114的ssp时序和nRF24L01要求的不一样,在用1114做无线通讯的时候不能直接用ssp模块。这里提供的是1114模拟spi的测试程序。
ARM芯片,LPC1114中英文详细介绍,IO口,管脚定义扥·
LPC1114 教学开发板,很好用的
lpc1114 pwm.zip
内附详细的LPC1114开发程序包,包括LPC1114设计到的硬件的全部接口程序,完全满足初学者的需求!
LPC1114 实现ADC中断数据采集,并由串口发送出至PC机显示
lpc1114datasheet pdf
在LPC1114上通过ucos II 进行LED跑马灯实验
m0lpc1114的中断测试程序,适合初学者
介绍M0开发板的使用方法,介绍了lpc1114的优势