F๐Ÿ’ปW/๊ทธ ์™ธ

DMA - Dynamic Memory Access (MSP Init)

์ฒœ์ˆญ์ด 2023. 6. 30. 14:14

๋ฉ”๋ชจ๋ฆฌ์— ์ง์ ‘ ์ ‘๊ทผํ•˜๋Š” ๊ธฐ์ˆ 

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_InitStruct = {0};
  if(huart->Instance==USART1)
  {
  /* USER CODE BEGIN USART1_MspInit 0 */

  /* USER CODE END USART1_MspInit 0 */
    /* Peripheral clock enable */
    __HAL_RCC_USART1_CLK_ENABLE();

    __HAL_RCC_GPIOA_CLK_ENABLE();
    /**USART1 GPIO Configuration
    PA9     ------> USART1_TX
    PA10     ------> USART1_RX
    */
    GPIO_InitStruct.Pin = GPIO_PIN_9;
    GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
    GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
    HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);

    GPIO_InitStruct.Pin = GPIO_PIN_10;
    GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
    GPIO_InitStruct.Pull = GPIO_NOPULL;
    HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);

  /* USER CODE BEGIN USART1_MspInit 1 */
    __HAL_UART_ENABLE_IT(&huart1, UART_IT_RXNE); 
  /* USER CODE END USART1_MspInit 1 */
  }

}