F💻W/그 외 7

STM32 Clock Configuration System Clock 설정

((stm32f103CBTx 기준 작성 )) ARM Cortex-M3 시스템 프로그래밍 완전 정복 1 - p.181 에서,, USB를 위한 48 MHz Clock은 main PLL에서 생성되는데 이를 위한 clock source는 반드시 HSE crystal oscillator를 사용해야만 한다. HSE : 외부 클럭 HSI : 내부 클럭 ((위 그림에서 HSI가 들어가면 안될텐데 왜 들어간거지,,,)) 내부 클럭도 사용할 수 있긴 하지만 정확도가 떨어진다

F💻W/그 외 2023.06.30

DMA - Dynamic Memory Access (MSP Init)

메모리에 직접 접근하는 기술 CPU의 개입 없이 I/O 장치와 메모리 간의 데이터 전송을 허용하는 기술 CPU가 다른 작업을 수행하는 동안에도 I/O 장치에서 데이터를 전송할 수 있으므로 시스템 성능 향상됨 timers, ADC, SPIs. I2Cs, USARTs 에서 사용된다. 따라서 위 기능들을 사용할 때는 MSP Init을 해줘야 함. 아래 예시코드를 보면 UART_MSPInit 함수를 사용한다. (주의할 점은 하단의 __HAL_UART_ENABLE_IT(&huart1, UART_IT_RXNE); 가 안써져 있다. 써줘야 UART의 동작이 정상적으로 구현된다) void HAL_UART_MspInit(UART_HandleTypeDef* huart) { GPIO_InitTypeDef GPIO_InitS..

F💻W/그 외 2023.06.30

GPIO MODE의 종류와 설명

gpioModeInputPull GPIO 핀을 입력으로 설정하고 풀업 저항을 활성화 gpioModeInputPullFilter GPIO 핀을 입력으로 설정하고 풀업 저항을 활성화하며, 핀의 전압이 변할 때 임계값을 설정하여 노이즈를 제거 gpioModePushPull GPIO 핀을 출력으로 설정하고, 핀의 전압을 HIGH 또는 LOW로 설정할 수 있음. GPIO 핀의 출력 드라이버의 전압 강도(drive strength)를 설정할 수 있음. gpioModePushPullDrive GPIO 핀을 출력으로 설정하고, 핀의 전압을 HIGH 또는 LOW로 설정할 수 있음 gpioModeWiredAnd Open-drain output gpioModeWiredOr GPIO 핀을 출력으로 설정하고, 핀의 전압을 HI..

F💻W/그 외 2023.06.26

동기 / 비동기 / UART / I2C / I2S / SPI

# 동기 / 비동기 위 그림처럼, 동기 방식은 응답이 돌아와야 다음 동작이 수행 가능. 응답 올 때까지 대기해야함 하나의 기준 클럭 비동기 방식은 응답과 상관없이 다음 동작 수행 가능. 동기 방식 Synchronous RX/TX 라인 별도로 존재해야함(full-duplex) clock line 존재. 기준 클럭으로 동기 신호에 맞춰 동작 블록단위로 데이터 전송 비동기 방식 Asynchronous 클럭에 상관없이 데이터를 전송 string 단위로 데이터 전송 7~8비트의 문자가 모여야 전송하는데, 이때 앞 뒤로 시작비트와 정지비트로 구성됨 # 통신 방식 UART 고전적인 시리얼 통신 방식 RX/TX 라인이 별도로 존재하는 양방향 통신 **Baud rate 필수적으로 맞춰야 함 clock line 필요 없음..

F💻W/그 외 2022.10.06