STM32_Tutorial_06 - 8BitsCoding/RobotMentor GitHub Wiki
์ฝ๋ ์์ฑํ๊ธฐ
CubeMX์ Configuration -> USART2 ํด๋ฆญ
NVIC Settings -> Enabled ํด๋ฆญ
๋ค์ CubeMX์ Configuration -> NVIC ํด๋ฆญ
NVIC Configuration -> Code generation -> USART2 global interrupt ํด๋ฆญ
Project -> Generate Code
์ฝ๋์ค๋ช
/* Initialize interrupts */
MX_NVIC_Init();
NVIC ๊ด๋ จ Init์ด ๋จ์ ํ์ธ ๊ฐ๋ฅํ๋ค.
์ธํฐ๋ฝํธ ์ฝ๋๋ฅผ ์์ฑํ๋ ๋ฐฉ๋ฒ์
static void MX_NVIC_Init(void)
{
/* USART2_IRQn interrupt configuration */
HAL_NVIC_SetPriority(USART2_IRQn, 0, 0);
HAL_NVIC_EnableIRQ(USART2_IRQn);
}
/* USER CODE BEGIN 4 */
/* USER CODE END 4 */
MX_NVIC_Init
์ ์ ์๋๋ถ๋ถ์ ์ฝ๋๋ฅผ ๋ค์๊ณผ ๊ฐ์ด ์ถ๊ฐํ๋ฉด๋๋ค.
uint8_t rx2_data;
void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart)
{
if(huart->Instance == USART2)
{
HAL_UART_Receive_IT(&huart2, &rx2_data, 1);
// UART2์ rx2_data์ 1๋ฐ์ดํธ ์ฝ์ด๋ผ
}
}
์ ๋ฆฌํ์๋ฉด ์ธ๋ถ์์ UART๋ฉ์์ง๊ฐ ๋ค์ด์ค๋ฉด
HAL_UART_RxCpltCallback
๊ฐ ํธ์ถ์ด ๋์ดHAL_UART_Receive_IT
ํธ์ถ๋ง์ง๋ง์ผ๋ก ์ธํฐ๋ฝํธ๋ฅผ ์ฌ์ฉํ๊ฒ ๋ค๊ณ ์ ์ธ์ ํด์ค์ผํ๋ค.
// main
HAL_UART_Receive_IT(&huart2, &rx2_data, 1);
// ์ ์ ์ธ์ ์ฒ์ํ๋ฉด ์ธํฐ๋ฝํธ๋ก ์ฐ๊ฒ ๋ค๊ณ ์ ์ธํ๋ ๋ถ๋ถ์.
while(1)
{
// ...
}
UART๋ฅผ ๋ฐ์์ ๋ฐฐ์ด๋ก ๋ฐ๊ณ ์ถ๋ค๋ฉด??
uint8_t rx2_data[10];
void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart)
{
if(huart->Instance == USART2)
{
HAL_UART_Receive_IT(&huart2, &rx2_data, 10);
// UART2์ rx2_data์ 1๋ฐ์ดํธ ์ฝ์ด๋ผ
}
}