디버깅 혹은 출력을 보기 위해 stm에서 printf가 필요할 때가 엄~~~청 많은 것 같다.
Uart가 있다면 HAL_UART_Transmit을 통해 아주 쉽게 printf와 비슷한 효과를 낼 수 있다.
어떻게 ?
바로 그냥 문자열을 HAL_UART_Transmit을 이용하여 전송하면 된다.
void print_str(char *str) {
HAL_UART_Transmit(&huart1, str, strlen(str), 500);
}
int main(){
...
print_str("START\r\n")
...
}
만약 문자열이 아니라 변수의 값을 출력해보고 싶다면?
itoa 함수를 이용하면 출력할 수 있다.
void print_val(char *strtemp, int val) {
static char temp[128];
char *ptr;
ptr = temp;
memset(temp, 0x00, 128);
strcpy(temp, strtemp);
ptr += strlen(temp);
itoa(val, ptr, 10);
HAL_UART_Transmit(&huart1, temp, strlen(temp), 500);
}
int main(){
...
a=10;
print_val("state : ",a);
...
}
간단한 출력할 때 유용하게 사용하는 중..
반응형
'지식저장소 > C' 카테고리의 다른 글
[C] Ring Buffer / 링버퍼 구현 (0) | 2022.03.29 |
---|---|
[C/BOJ] 9012 괄호 - Stack이용 (0) | 2022.02.16 |
[C]구조체를 이용한 Stack 구현 (0) | 2022.02.16 |
[C] Hex Convert to HexString And HexString Convert to Hex (0) | 2021.10.26 |
[C] ARIA 128 암호화 (2) | 2021.09.03 |