UEIPAC 600 1-G 상자에 vxworks가 설치되어 있습니다. 직렬 포트에서 데이터를 읽으려고합니다. 이것은 내 코드입니다. 내가 키보드 입력을 칠 때까지 그것은 단지 시간 실행 vxworks 직렬 포트 읽기 시간 초과
void read_serial(int n){
/* store number of bytes read = int n*/
int num=0;
/* hold the file descriptor */
int fd = 0;
/* dev name from iosDevShow output */
char dev_name[] = "/tyCo/0";
/* buffer to receive read */
char re[n];
/* length of string to read */
int re_len = n;
/* open the device for reading. */
fd = open("/tyCo/0", O_RDWR, 0);
num = read(fd, re, re_len); /* read */
close(fd); /* close */
printf("number of bytes read %d\n",num); /* display bytes read*/
printf("displaying the bytes read: %s\n",re);
}
는 내가 제대로 직렬 포트에서 읽을이 문제를 해결하려면 어떻게 그렇게
number of bytes read 1
displaying the bytes read:
Pp
처럼 출력합니다.
'fd = open (...) '에서 어떤 값이 반환 되었습니까? 당신은 * 이것을 확인하고, 맹목적으로 수행하지 않아야합니다. 나는 또한'char dev_name [] = "/ tyCo/0"의 요점은 무엇인지 궁금하다. '네가 열어도 사용하지 않으면. 그리고'printf'에 보내기 전에're'의 끝에'nul' 터미네이터를 넣었습니까? 팁을위한 –