직렬 포트에서 문자를 받고 Matlab의 명령 창에 인쇄하려고합니다.Matlab의 직렬 포트에서받은 문자 값을 인쇄 할 수 없습니다.
serialOne=serial('COM6', 'BaudRate', 19200);
fopen(serialOne);
while 1>0
recv = fread(serialOne, 1 ,'uint8');
recv
end
fclose(serialOne);
실제로 teraterm에서 일부 데이터를 전송하고 MATLAB에서 제대로받을하려고이 응용 프로그램을 테스트하려면 : -이를 위해 나는이 코드를 작성합니다.
그리고 내 출력은 이것이다 : - 내가 matlab에에 문자를 '1'을 받아야한다 Teraterm에서 문자를 '1'전송에
하지만 - Teraterm에서 문자를 '2'전송에
recv =
49
내가 matlab에에서 숯불 '2'를받을 만합니다 - 내가 터미널에서 보내고 모든 문자에 대해 내가 (십진수) ASCII를 수신하고 관찰
recv =
50
. 그래서 내 질문에 어떻게 10 진수 ASCII 값 대신 문자 직접 가져올합니까?
uint8을 char로 바꾸면 아무런 차이가 없지만 ans가 있습니다. 이 함수는 char로 변환해야합니다 : - char (recv) –
좋아요, 주석 주셔서 감사합니다. 나는 그것이 작동 할 것이라고 생각했지만 그것을 테스트 할 수 없었다. 그에 따라 내 대답을 바꿀 것입니다. – hbaderts