안녕하세요? 오늘은 자꾸만 까먹어서 기록해 놓은 STM32CubeIDE에서 에서 가장 많이 사용되는 printf 함수의 uart(usart) 구현 방법을 알아보겠습니다. 코드 먼저 보도록 하겠습니다. #include printf가 사용된 곳에 위의 를 include 해줍니다. 그리고 실제 STM32CubeIDE에서 사용가능하도록 _write 함수를 구현해 주면 끝납니다. int _write(int file, char *ptr, int len) { HAL_UART_Transmit(&hlpuart1, (uint8_t *)ptr, len, HAL_MAX_DELAY); return len; } 추가로 printf에서 float 형태의 인자를 받기위해서는 아래와 같은 설정을 해주어야 합니다. 다만 주의할 점은 s..
수학시험에서 대부분 답이 0 혹은 1인 경우가 많습니다. C언어에서도 이러한 법칙은 어느정도 통용되는 것 같습니다. 코드내에 0과 1이 외의 숫자가 나타나는 경우를 최소화 해야 합니다. 더욱 엄격하게 하자면 코드에서 0 이외의 모든 숫자는 빼는 것이 좋습니다. 그러면 어떻게 숫자를 빼야 할까요? enum에 해답이 있습니다. 아래와 같이 선언하면, 0과 1의 타입의 형태에서는 false와 true만 사용하게 됩니다. typedef enum { false = 0, true = 1 }bool; 위의 typedef enum 사용할 때 주의할 점이 있습니다. 바로 아래와 같이 사용하면 안됩니다. 왜 그럴까요? if(is_exist) //true { //when true, implements } else { //w..
Enum(열거형)은 변수가 아니라 값의 정의입니다. typedef를 해서 사용하면 편리합니다. 우선 #define과 비교하자면, #define zero 0 i = zero; 여기에서 i 에는 0이 할당됩니다. zero가 0으로 치환 됩니다. 말 그대로 문자 바꾸기를 컴파일러에서 해주는 것에 불과합니다. enum과 typedef를 같이 사용해 봅시다. typedef enum { RED, GREEN, PUCE }colors_t; colors_t favorite = PUCE; C언어에는 없는 bool type을 만들 어서 다음과 같이 사용 할 수도 있습니다. typedef enum { false=0, true=1 }bool; bool isTrue = false; 위와 같이 사용하면 false는 0, true는..
내 블로그 - 관리자 홈 전환 |
Q
Q
|
---|---|
새 글 쓰기 |
W
W
|
글 수정 (권한 있는 경우) |
E
E
|
---|---|
댓글 영역으로 이동 |
C
C
|
이 페이지의 URL 복사 |
S
S
|
---|---|
맨 위로 이동 |
T
T
|
티스토리 홈 이동 |
H
H
|
단축키 안내 |
Shift + /
⇧ + /
|
* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.