안녕하세요~

아래에 글을 남겼던 사람입니다.

항상 좋은 답변 감사드리구요
다시 한번 시리얼에 관해서 질문 올릴게요~


원래는 전화를 드렸었는데

다시 게시판에 올려달라고 하셔서 이렇게 글을 또 올립니다.




제가 EZ-X5 보드를 사용하는데 J9 부분.. 그러니까 보드구석쪽에 있는

10핀 짜리 핀을 이용해서

블루투스 모듈과 통신을 하려 합니다.



블루투스 모듈은 115200 이라는 속도를 쓰구요, 보드에 그 속도를 요구합니다

그런데 제가알고 싶은 것은 10핀 짜리 핀은 9600 이라는 속도가 기본이구

블루투스 모듈은 115200 이라는 속도이므로

보드에서의 속도를 바꾸어 맞추고 싶은데요~



문제가 있습니다.

소스에 제공이 되는 comtest.c 라는

화일안에 보면 B9600 이라는 부분이 있구요

그 부분만

"B115200 "

으로 고쳐서 초기화를 시켜주고


그렇게 만들어진 comtest.o 라는 파일을 보드에 올려서

실행을 시키면 통신이 된다는 걸로 알고 있거든요?

그런데 문제는.............



"그 화일이 돌아가는 동안" 만 115200으로 되는 것 아닌가요?



comtest.o 를 실행시킨 후에는 다시 9600으로 돌아가는 것 아닌가요?


정작 하려는 것은 시리얼의 기본 속도를 115200 으로 default 속도로

맞춰주는 것인데요....


comtest.c 부분에 보면 시리얼의 상태를 기억을 해놓았다가

실행이 완료되면 기억되었던 상태를 다시 불러내어 예전 상태로 만들어 주는

부분이 있던데 이 부분을 "각주 처리" 해주면 되는 것인가요?




그런데 제가 위에 쓴 것은 전부 직접 해봤거든요?
근데 안되더라구요.....

9600 속도에서는 comtest도 잘 되구요...

그냥 echo hello > /dev/ttyS00 도 문제가 없었습니다.






그런데 문제는 다른 속도...



19200 속도에서도 comtest 로 받는 것은되는데
써주는것이 문제가 있습니다.

echo hello > /dev/ttyS00 가 문제가 있어요..

마찬가지로 115200에서 ............... 받는 것은 되는데
가는 것이 깨집니다.

echo dddd > /dev/ttyS00 이라고 했었구요

그러면 반대쪽에서 dddd 라고 나와야 하는데

그것이 깨져서 나옵니다.








그리고 저는 시리얼 케이블을 직접 만들었는데요

제가 만든것이 이상해서 그런가 싶어서
"비교실험" 도 해보고 그랬는데
제가만든건 이상이 없더라구요... 115200 속도를 받쳐주는데요....



혹시나 노이즈가 있어서그런가 해서


"보드 시리얼 핀" 에 제가 만든 시리얼 케이블을

직접 납땜을 해서 연결해놓기도
하고 그랬는데
그래도 안되더라구요...

그래서 하드웨어적으로 보드에 문제가 있는 것은 아닌지 궁금합니다.

아니면 제가 알고 있는 것이 틀린건가요?

comtest.c 라는 파일을 이용해서 하는 방법 말고 다른 방법은 없을까요?

제가 좀 마니... 초보라서 자세히 설명좀 해주시겠니까?