Stm32 에 대해 방송에서 u8 과 u 16 은 무슨 뜻인가요?
U8, u 16 및 u32 는 각각 8 비트, 16 비트 및 32 비트 데이터 유형을 나타내는 c 언어 데이터 유형입니다. 1 바이트는 8 비트이므로 u8 은 1 바이트, u 16 은 2 바이트, u32 는 4 바이트입니다.
Stm32 라이브러리의 헤더 파일에서 데이터 유형 선언을 찾을 수 있습니다.
Stdint.h 에서 다음을 수행합니다.
Typedef 부호 없는 문자 uint8 _ t;
Typedef 부호 없는 짧은 정수 uint16 _ t;
Typedef 부호 없는 long uint32 _ t;
Stm32f 10x.h 에서:
Typedef uint32 _ t u32
Typedefuint16 _ t u16;
Typedef uint8 _ t u8
확장 데이터
CPU 는 정보를 처리하는 글자 길이에 따라 8 비트 마이크로프로세서, 16 비트 마이크로프로세서, 32 비트 마이크로프로세서 및 64 비트 마이크로프로세서로 나눌 수 있습니다. 글자와 반자는 프로세서의 특성에 따라 결정되고 바이트는 8 비트이다.
Stm32 는 32 비트 프로세서이므로 그 글자는 32 비트 (각 처리 길이가 4 바이트인 데이터) 이고 반글자는 당연히 16bit(2 바이트) 입니다. 반자 데이터를 저장하는 레지스터는 u 16 유형 변수에 의해 액세스되지만 u8 유형 변수가 데이터의 낮은 8 비트에만 액세스할 수 있는 경우 u32 유형 변수로 읽는 데 문제가 없습니다. 컴파일러에 따라 쓰기 시 편차가 발생합니다.
Stm32 의 가장 큰 장점은 정렬이 필요 없고 세 가지 유형의 데이터를 메모리에 원활하게 저장할 수 있다는 것입니다. 그러나 기존의 ARM7 또는 ARM9 는 주소별로 정렬되어 있습니다. 즉, 8 비트 또는 16 비트 데이터는 4 바이트의 공간을 차지하므로 메모리 낭비가 발생할 수 있습니다.
Stdint.h-C++ 참조
헤더 파일: stm32f10x.h.