code에서 읽어온 데이터가 이상한게 아니라 imx28 보드에 serial로 들어오는 데이터를 print한것 뿐입니다.
serial로 들어오는 데이터를 print했을 때, 11 데이터가 0011 로 들어오는 현상입니다.
serial device driver를 수정해야할지.. 잘 모르겠습니다.ㅠㅠ
printf 에서 %04hhx 와 같이 써서 한 바이트를 출력하려 시도했다면, hh 는 컴파일러가 지원하지 않아서 %hx 로 처리하여 short 값으로 출력하는 경우가 있습니다.(Visual Studio의 경우 그랬었습니다. 리눅스 gcc에서는 hh를 지원했고) 그러면 0xAB 를 출력시켰는데 화면에는 00AB로 나왔겠죠.
code에 문제가 있어보이는데, code가 없으니 뭘
code에 문제가 있어보이는데, code가 없으니 뭘 얘기해주기가 어렵군요
code에서 읽어온 데이터가 이상한게 아니라
code에서 읽어온 데이터가 이상한게 아니라 imx28 보드에 serial로 들어오는 데이터를 print한것 뿐입니다.
serial로 들어오는 데이터를 print했을 때, 11 데이터가 0011 로 들어오는 현상입니다.
serial device driver를 수정해야할지.. 잘 모르겠습니다.ㅠㅠ
적어주신대로라면, 그러니까...
적어주신대로라면, 그러니까...
0x11 을 보냈는데 0x00 0x11 이 읽히는데다 본인 코드에 버그도 없는게 확실하다면,
imx28 보드를 써왔고 지금도 쓰는 전 지구인 중에 유일하게 그 증상을 겪고 계신게 확실합니다.
https://www.cmrr.umn.edu/~strupp/serial.html 을 참고하시고요.
양에 기가 질린다면 http://man7.org/linux/man-pages/man3/termios.3.html 의 "Raw mode" 섹션에 적혀있는 플래그들이 어떤 의미인지 찾아보는 것 부터 시작하시고요.
mx28 보드 쓰고 계신다고하셧는데, 보드 부팅할 때
mx28 보드 쓰고 계신다고하셧는데, 보드 부팅할 때 enter키를 쭉 누른후에 serial 통신 해보셨나요?
잘 되는 프로그램으로 확인해보세요.
시리얼 통신 프로그램 중에 잘되는거 하나 구해서. 해보시면. 원인 찾기가 편하실겁니다.
----------------------------------------------------------------------------
젊음'은 모든것을 가능하게 만든다.
매일 1억명이 사용하는 프로그램을 함께 만들어보고 싶습니다.
정규 근로 시간을 지키는. 야근 없는 회사와 거래합니다.
각 분야별. 좋은 책'이나 사이트' 블로그' 링크 소개 받습니다. shintx@naver.com
"보드에서 0011 0022 0033 0044
"보드에서 0011 0022 0033 0044 이런식으로 받을 때가 있습니다."
이걸 어떻게 확인하셨는지 이 코드만이라도 보여주시는 게 좋을 것 같습니다.
printf 에서 %04hhx 와 같이 써서 한 바이트를 출력하려 시도했다면, hh 는 컴파일러가 지원하지 않아서 %hx 로 처리하여 short 값으로 출력하는 경우가 있습니다.(Visual Studio의 경우 그랬었습니다. 리눅스 gcc에서는 hh를 지원했고) 그러면 0xAB 를 출력시켰는데 화면에는 00AB로 나왔겠죠.
좋은 하루 되세요!
답변감사합니다.
PC에서 보내는 데이터는 스코프로 찍어보니 PC에서는 161616 이런식으로 제대로 보내고 있습니다.
코드에서 확인한 것이 아닌 od -x 실행파일을 통해 보드로 들어오는 값을 프린트 한것 입니다.
// 정상적으로 data가 들어올 때
~$ od -x < /dev/ttyAM0
0000000 1616 1616 9887 0800 ff1f 00ff 0000 d25b
//data를 잘 못 받을 때
$ od -x < /dev/ttyAM0
0000000 0016 0016 0016 0016 0088 0084 0000 0008
댓글 달기