在StartApplication函数中打开串口端口:
UInt gSerialRefNum;
char gSerialBuffer[900]; // should be more
than enough for one second of
// data--10 lines @ 80 chars per line
static Boolean StartApplication(void)
{
Err err;
err = SysLibFind("Serial Library", &gSerialRefNum);
ErrNonFatalDisplayIf(err != 0, "Can't find serial
library");
err = SerOpen(gSerialRefNum, 0, 9600);
if (err != 0) {
if (err == serErrAlreadyOpen) {
FrmAlert(SerialInUseAlert);
SerClose(gSerialRefNum);
} else
FrmAlert(CantopenserialAlert);
return true;
}
err = SerSetReceiveBuffer(gSerialRefNum, gSerialBuffer,
sizeof(gSerialBuffer));
return false;
}
我们自己设计自己的接受缓冲区,这样我们就能收到完整的数据。我们并不想在接收数据时发生数据丢失,所以我们要设置充分够的空间。
在StopApplication函数中,我们关闭端口(在把缓冲区重设为默认值之后)
static void StopApplication(void)
{
// restore the default buffer before closing the serial port
SerSetReceiveBuffer(gSerialRefNum, NULL, 0);
SerClose(gSerialRefNum);
}
ed and displayed:
|