[STM32]CubeIDE USE_HAL_UART_REGISTER_CALLBACK 설정 법
2023. 5. 17. 20:33ㆍ개발로그/STM32
반응형
개요
USART6를 DMA로 설정하고 Rx/TX Callback을 등록하려고 하는데, Callback 함수를 등록하기 위한 TxCpltCallback, RxEventCallback 멤버가 없다는 에러가 발생했다.
void MX_USART6_UART_Init(void)
{
/* USER CODE BEGIN USART6_Init 0 */
/* USER CODE END USART6_Init 0 */
/* USER CODE BEGIN USART6_Init 1 */
/* USER CODE END USART6_Init 1 */
huart6.Instance = USART6;
huart6.Init.BaudRate = 9600;
huart6.Init.WordLength = UART_WORDLENGTH_8B;
huart6.Init.StopBits = UART_STOPBITS_1;
huart6.Init.Parity = UART_PARITY_NONE;
huart6.Init.Mode = UART_MODE_TX_RX;
huart6.Init.HwFlowCtl = UART_HWCONTROL_NONE;
huart6.Init.OverSampling = UART_OVERSAMPLING_16;
if (HAL_UART_Init(&huart6) != HAL_OK)
{
Error_Handler();
}
/* USER CODE BEGIN USART6_Init 2 */
HAL_UARTEx_ReceiveToIdle_DMA(&huart6, UART6_DMA_RX_BUFF, DEFAULT_UART_DMA_RX_BUFFER_SIZE);
__HAL_UART_ENABLE_IT(&huart6, UART_IT_IDLE);
huart6.TxCpltCallback = HAL_UART6_TxCpltCallback;
huart6.RxEventCallback = HAL_UART6_RxEventCallback;//register uart1 rx event callback.
/* USER CODE END USART6_Init 2 */
}
error: 'UART_HandleTypeDef' {aka 'struct __UART_HandleTypeDef'} has no member named 'TxCpltCallback'
error: 'UART_HandleTypeDef' {aka 'struct __UART_HandleTypeDef'} has no member named 'RxEventCallback'
해결 방법
아래 그림과 같이 Advanced Settings - Project Manager - Register CallBack - UART and USART를 Enable로 변경하면 된다.
반응형
'개발로그 > STM32' 카테고리의 다른 글
[STM32] UART DMA 이슈 (0) | 2023.05.23 |
---|---|
[STM32] UART Baudrate Change 기능 구현 (0) | 2023.05.16 |
[STM32] HAL과 LL 라이브러리 차이 (0) | 2023.05.15 |