stm32F103C8xx 크거나 작은 엔디안?

stm32F103C8xx가 빅 엔디안이되고 리틀 엔디안으로 변경할 수있는 이유가 있습니까?

16 비트 지향 내가 유선을 통해 보내야하는 주소 지정 체계와 다른 쪽은 MSB를 먼저 예상합니다. 다른 질문이 있으신가요?

내가 어떻게하고 있는지 대답하기위한 방법은 다음과 같습니다 ( “물론 질문에는 대답하지 않음).

typedef union ___address{ uint16_t address; uint8_t addr_byte[2] ; } my_addr; 

역순으로 2 x 8 비트, my_addr.addr_byte [1], my_addr.addr_byte [0]를 차례로 사용하십시오.

댓글

  • 전송하기 전에 바이트 스왑을하지 않는 이유는 무엇입니까?
  • 이미 수행했지만 '가 가능한지 알고 싶었습니다.
  • SETEND LE 가 제대로 작동하는 것 같습니다.
  • 비트를 어떻게 보내나요?

Answer

STM32F103은 30 페이지의 프로그래밍 매뉴얼 .”내 PC (물론 리틀 엔디안 머신)와 숫자를 교환 할 때 바이트를 전환 할 필요가 없었기 때문에 이것은 내 경험이기도합니다. p>

또한 Cortex M의 ARM 지식 페이지 에 설명되어 있습니다. 3은 동적 엔디안 전환을 지원하지 않으므로 제조업체가 옳다고 생각하는 모든 것에 갇혀 있습니다.

100 % 확실하게 AIRCR.ENDIANNESS 비트를 확인할 수 있습니다. 0이면 “리틀 엔디안 메모리이고”1이면 빅 엔디안을 사용합니다.

바이트 스와핑으로 인해 성능 문제가 발생하는 경우 이러한 문제를 해결할 수 있습니다. REV, REV16 및 REVSH 어셈블러 명령어 사용 (컴파일러가이 작업을 이미 자체적으로 수행하는지 여부는 알 수 없음)

설명

  • + 인용 된 페이지로 직접 연결하는 경우 1입니다. ' 당신이 그렇게 할 수 있는지 몰랐습니다.

답변

모든 STM32 MCU (실제로 대부분의 ARM Cortex-M MCU는 일반적으로)는 리틀 엔디안입니다.

답글 남기기

이메일 주소를 발행하지 않을 것입니다. 필수 항목은 *(으)로 표시합니다