#include <iostream>
#include <sys/types.h>
#include <sys/stat.h>
#include <termios.h>
#include <stdio.h>
#include <unistd.h>
#include <fcntl.h>
using namespace std;
int main()
{
int fd;
char c;
struct termios oldtio,newtio;
fd = open("/dev/ttyS0", O_RDWR | O_NOCTTY);
tcgetattr(fd,&oldtio);
newtio.c_cflag = B9600 | CRTSCTS | CS8 | CLOCAL | CREAD;//|IGNPAR | IGNBRK;
newtio.c_cc[VMIN]=1;
newtio.c_cc[VTIME]=0;
tcsetattr(fd,TCSANOW,&newtio);
//init
unsigned char buf[3]={ 16, 49, 32 };
write(fd,&buf[0],1);
write(fd,&buf[1],1);
write(fd,&buf[2],1);
int m=0;
int l=0;
while (l==0)
{
read(fd,&c,1);
if (c==0x01) l=1;
if (c==0x06) printf("DOWN\n");
if (c==0x04) printf("SELECT\n");
if (c==0x03) printf("BACK\n");
if (c==0x05) printf("UP\n");
}
//off
unsigned char buf1[3]={ 16, 0, 32 };
write(fd,&buf1[0],1);
write(fd,&buf1[1],1);
write(fd,&buf1[2],1);
tcsetattr(fd,TCSANOW,&oldtio); /* restore old modem setings */
close(fd);
return 0;
}
Первый запуск программы отрабатывается идеально. Но на втором запуске write не работает - либо не дает ожидаемого результата(первый), либо подвисает(второй). Что это может быть или что я забыл? О_о
После второго запуска программы wi
Ответ на:
комментарий
от fghj
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.
Похожие темы
- Форум Работа с com портом (2007)
- Форум Как узнать сколько байт пришло на /dev/ttyS0 ? (2003)
- Форум Com-port настройка (2023)
- Форум tcsetattr повторный вызов (2011)
- Форум RS232 (2004)
- Форум Serial port programming (2008)
- Форум Чтение запись COM порта (2018)
- Форум Протокол обмена Linux -> датчик (2017)
- Форум Не получается читать с порта (2013)
- Форум non canonical com port read (2004)