[求助][LPC938的串口是否可以以全双工的模式工作]
如题,小弟最近在用菲利普的LPC938单片机做项目,在其中发现当我在使用串口发送数据时无法接收串口的数据接受中断,但我已将串口发送中断响应屏蔽掉了,串口接收中断与串口接收使能都是开着的,但是单片机就是无法接受数据从而产生中断。还望各位大虾指点一二。
我的程序如下:
#include "REG938.h"
#define U8 unsigned char;
void init();
void UART_init();
void DataRev(void);
U8 FrameReg[8]; //串口数据缓冲区,长度为8个字节
U8 FrameRegPtr; //缓冲区偏移地址
void main(void)
{
init();
UART_init();
while(FrameRegPtr <= 7) {};
FrameRegPtr = 0;
do{
TI = 0;
SBUF = 0x5a;
while(!TI) {};
TI = 0;
while(FrameRegPtr == 8) {};
}while(1);
}
void init(void)
{
P1M1 = 0x00; //push pull except RX
P1M2 = 0xFD;
P2M1 = 0x00; // push pull
P2M2 = 0xFF;
ESR = 1; // enable UART interrupt
EST = 0;
EA = 1;
}
void UART_init()
{
//PCON |= 0x00;
SCON = 0x50; // select BRG as UART Baud Rate Gen
SSTAT = 0x40; // separate Rx / Tx interrupts
//BRGCON = 0x02;
BRGR0 = 0x70; // setup BRG for 19200 baud @ 7.373
BRGR1 = 0x01;
BRGCON = 0x03; // enable BRG
}
void DataRev(void) interrupt 4
{
RI = 0;
FrameReg[FrameRegPtr] = SBUF;
if(FrameRegPtr <= 7)
FrameRegPtr++;
}
串口不停发送数据,即使我发送再多数据也停不下来。
发表时间:2007年8月30日16:17:47