[아두이노(Arduino)] hex(byte array) print api example
반응형
[아두이노(Arduino)] hex(byte array) print api
아두이노 print api를 사용하는 경우 hex를 표시하기 위하여 아래 기본 api를 사용하면 아래와 같은 것을 사용합니다.
Basic API
1 2 3 4 5 6 | // encode된 데이터 바이트 값 출력. for (int i = 0; i < encodeSize; i++) { Serial.print(buffer[i], 16); Serial.print(" "); } Serial.println(""); | cs |
하지만 이녀석은 0x01 의 값을 1로만 출력합니다.
EX) byte aaa[3] = {0x11, 0x22, 0x01};
을 출력하는 경우 -> 11 22 1
출력된 array Hex string을 그래도 특정 covert web site에 넣고 싶을 때 수작업이 필요합니다.
하여 아래의 api를 사용하였습니다.
이렇게하면 아래와 같이 출력됨.
EX) byte aaa[3] = {0x11, 0x22, 0x01};
을 출력하는 경우 -> 11 22 01
Custom API
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | #include "Arduino.h" char *hexChar(char *destBuf, unsigned char srcData); constexpr char hexmap[] = {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F'}; void printHex(unsigned char * data, int len){ char tempByte[3] = {0,0,0}; for (int i = 0; i < len; i++) { // Serial.print(tempByte); Serial.print((char*)hexChar(tempByte, data[i])); Serial.print(" "); } Serial.println(""); } char *hexChar(char *destBuf, unsigned char srcData){ destBuf[0] = hexmap[(srcData & 0xF0) >> 4]; destBuf[1] = hexmap[srcData & 0x0F]; return destBuf; } | cs |
사용방법
1 2 3 4 5 6 | void loop() { byte aaa[4] = {0x11, 0xF0, 0xAA, 0x33}; printHex(aaa, 4); } | cs |
반응형
'IT > C, C++' 카테고리의 다른 글
[Nanopb] Array Sub message - Decode example code (0) | 2020.01.30 |
---|---|
[Nanopb] Array Sub message - Encode example code (0) | 2020.01.30 |
[Nanopb] Array Sub message - Example proto file (0) | 2020.01.30 |
[Nanopb] Sub message - Decode example code (0) | 2020.01.30 |
[Nanopb for Google protobuf] Sub message - Encode example code (0) | 2020.01.30 |