2016-10-15 12 views
0

임베디드 C를 사용하여 특정 이스케이프 시퀀스를 보내는 데 도움이 필요합니다. 이것은 stackoverflow에서 가장 처음 생각한 주제입니다!Embedded C 코드를 사용하여 UART를 통해 이스케이프 시퀀스를 보내는 방법

내가 UART를 통해 명령을 기입하기 위해이 함수를 사용

void UART_Write(UARTChannel* channel, uint8_t* data, uint32_t length) 

의 입력 채널, 데이터 길이는 UART 채널에 대응하는 명령 각각 보내고 명령의 길이가된다. 이것은 일반적으로 훌륭하게 작동합니다! 이스케이프 문자 (0x1b), R0되는

EscR0,1,2,7; 

Esc :

그러나, 나는 내가 UART_Write 기능을 사용하여 다음 이스케이프 시퀀스를 작성해야 C. 올바른 이스케이프 시퀀스를 생성하는 몇 가지 어려움이 캐릭터 커맨드 지정자인 문맥 특정 파라미터 인 1,2,7 및 종료 표시 인 이다.

함수 "UART_Write"에 대한 입력 "데이터"를 이스케이프 시퀀스 EscR0,1,2,7과 동일하게 만들려면 어떻게해야합니까? 임베디드 C에서?

여러 가지 방법으로 수행 할 수 있다고 가정합니다. 그러나 어떤 제안이라도 할 수 있습니다.

답변

0

'esc'를 보내시겠습니까, 아니면 '1b'를 16 진수 값으로 보내시겠습니까?

그냥 당신처럼 문자를 보내 다른 모든 문자열 예에 대한 예를 들어

: EscR0,1,2,7;는 :

char buffer[20] = {'\0'}; 
buffer[0] = 0x1b; 
strcat(buffer, "R0,1,2,6;"); 
.... 
+0

그것은 작동 - 감사합니다! –