STM327 [PWM] preload register Preload registerPWM에서 ARR를 컨트롤 할때, ARR 변경 시 , 변경 시 결정하는 레지스터 1. enable일 때- ARR 값이 변경 시 즉시 변경되지 않음. preload register에 저장 -> 카운터 overflow 발생시 ARR 값 업데이트 2. disable일 때- ARR 값 변경 시 , 즉시 변경 preload 레지스터 disable 시 문제 발생 상황 ARR 변경 시 , 카운터 > 변경 ARR 값 현상 발생 시그러나 ARM에서 카운터는 ARR값과 같아질 때 overflow가 발생하도록 디자인돼있기 때문에 이런 경우에는overflow가 발생하지 않는다. 기존 ARR 값 적용 후 다음 주기부터 설정한 ARR 값 적용예시) ARR이 1000이고 내가 500으로 조정했는데 .. 2024. 12. 27. [HAL Driver] 내부 플래시 메모리 읽고 쓰기 Nucleo STM32f411re 보드 내부 플래시 메모리 지우고 쓰고 읽기 포스팅을 정리하고자 한다.STM32 CHIP 플래시 메모리 구조 Main memory : 주요 플래시 메모리 공간으로 사용된다.System memory : CPU가 부팅할 때 사용하는 메모리 공간으로 Boot mode에 따라 사용 유무가 결정되는 공간으로 Main memory에 펌웨어 다운로드, Boot mode 중 펌웨어 업데이트, UART1을 통해 Flash loader 툴 사용이 가능함OTP(One Time Programmable) 공간 : 한번 쓸 수 있는 사용자 메모리 공간으로 사용(mac주소 등)Option bytes : Watchdog 설정, Read/Write 보호와 같은 시스템관련 설정을 담당하는 저장소필독1.쓰.. 2024. 12. 18. Timer[4] Input capture ※ 해당 글은 개인 공부 기록을 남겨놓는 것이 목적임으로 오류가 발생할수 있습니다. 오류 또는 업데이트된 사항이 있다면 댓글로 알려주시면 감사하겠습니다.STM32 input captureMCU의 펄스 및 주어진 입력 신호의 주파수 및 펄스 폭등을 측정하고자 할 때 사용 CC1S 비트가 모두 0이면 output compare 기능이 동작(NOR gate)CC1S 비트가 하나라도 1 이면 Input capture 기능이 동작(OR gate)기본 타이머 설정1. 우선 CNT의 값을 결정하기 위해서는 우선 PSC(프리스케일)값을 정하고2. ARR(Auto-reload register)값으로 CNT의 증가 속도를 정해 줍니다. 여기까지는 기본 타이머 내용입니다.3. capture 모드로 사용할지 com.. 2024. 7. 14. HAL 라이브러리 SPI 함수 정리 해당 글은 개인 공부 정리를 위해 작성되었습니다.STM32 HAL 라이브러리 SPI 관련 함수들과 해당 함수 매개변수들에 대해 정리하고 한다. SPI 관련 함수들은 cpp.hotexample\ 발췌하였습니다.Blocking(Polling) , 인터럽트, DMA 모드 각각 존재한다. ※ Blocking ModePolling Mode1. 데이터 송신 HAL_StatusTypeDef HAL_SPI_Transmit(SPI_HandleTypeDef *hspi, uint8_t *pData, uint16_t Size, uint32_t Timeout)hspi 포인터 : SPI_HandleTypeDef를 가리키는 hspi 포인터 pData : 데이터 버퍼를 가리키는 포인터Size : 보낸 데이터 크기Timeou.. 2024. 7. 7. 이전 1 2 다음