【オリジナル】mini 2440下com 1テスト
1946 ワード
プレート上の位置はcon 2
linux/devでttySAC 1
シリアルアシスタントは、シリアルデバッグアシスタントV 2である.2
ps:max 232+DB 9母=アダプタプレート,usb 2シリアルポート
現象:
シリアルアシスタントが送信したデータはmini 2440によって数え切れないほど送信された.
linux/devでttySAC 1
シリアルアシスタントは、シリアルデバッグアシスタントV 2である.2
ps:max 232+DB 9母=アダプタプレート,usb 2シリアルポート
現象:
シリアルアシスタントが送信したデータはmini 2440によって数え切れないほど送信された.
#include
#include
#include
#include
#include
// # include
#include
#include
#include
static void Error(const char *Msg)
{
fprintf (stderr, "%s
", Msg);
fprintf (stderr, "strerror() is %s
", strerror(errno));
exit(1);
}
static void Warning(const char *Msg)
{
fprintf (stderr, "Warning: %s
", Msg);
}
static inline void WaitFdWriteable(int Fd)
{
fd_set WriteSetFD;
FD_ZERO(&WriteSetFD);
FD_SET(Fd, &WriteSetFD);
if (select(Fd + 1, NULL, &WriteSetFD, NULL, NULL) < 0) {
Error(strerror(errno));
}
}
//int main(int argc, char **argv)
int main(void)
{
int CommFd;
struct termios TtyAttr;
// struct termios BackupTtyAttr;
int DeviceSpeed = B9600;
int ByteBits = CS8;
const char *DeviceName = "/dev/ttySAC1";
CommFd = open(DeviceName, O_RDWR, 0);
if (CommFd < 0)
Error("Unable to open device");
if (fcntl(CommFd, F_SETFL, O_NONBLOCK) < 0)
Error("Unable set to NONBLOCK mode");
memset(&TtyAttr, 0, sizeof(struct termios));
TtyAttr.c_iflag = IGNPAR;
TtyAttr.c_cflag = DeviceSpeed | HUPCL | ByteBits | CREAD | CLOCAL;
TtyAttr.c_cc[VMIN] = 1;
if (tcsetattr(CommFd, TCSANOW, &TtyAttr) < 0)
Warning("Unable to set comm port");
for (;;) {
unsigned char Char = 0;
fd_set ReadSetFD;
write(CommFd, &Char, 1);
FD_ZERO(&ReadSetFD);
FD_SET(CommFd, &ReadSetFD);
if (select(CommFd + 1, &ReadSetFD, NULL, NULL, NULL) < 0) {
Error(strerror(errno));
}
while (read(CommFd, &Char, 1) == 1) {
WaitFdWriteable(CommFd);
if (write(CommFd, &Char, 1) < 0) {
Error(strerror(errno));
}
}
}
return 0;
}