[STM32의HAL 라이브러리 개발] 큐브MX의HAL 라이브러리 설정, 직렬 인터페이스에 들어가지 않는 문제
[STM32의 HAL 라이브러리 개발] 직렬 인터럽트
개발 환경
cubemx V5.5.0 + MDK Keil V5.29.0.0 + STM32F429NIH
이메일c 코드 추가(1/2)
main 함수에서uart를 초기화한 후 실행==__HAL_UART_ENABLE_IT(&huart1,UART_IT_RXNE);==
끊을 수 있도록 쓰다.전제는 cube에uart1의 직렬 수신 중단을 설정한 것입니다.이 정도만 하면 USART1에 들어갈 수 있어요.IRQHandler()는 중단됐지만 한 번만 들어갈 수 있습니다.debug에서 외부 장치를 보았을 때 중단된 표지 위치 제거 문제가 발견되었습니다.
stm32f4xxit.c 코드 추가(2/2)
USART1IRQHandler() 인터럽트 함수 마지막 두 행에 코드 추가__HAL_UART_ENABLE_IT(&huart1,UART_IT_ERR);
__HAL_UART_ENABLE_IT(&huart1,UART_IT_RXNE);
USART1에 바이트 단위로 들어갈 수 있음IRQHandler ()가 중단되었습니다.
주의
이 방법은hal 라이브러리의 불필요한 중단 처리와 리셋 함수를 사용하지 않았기 때문에 직렬 수신 함수와 관련된 다른 부분, 예를 들어HALUART_IRQHandler(&huart1); 사귀다상기 세 줄 코드만 추가하면 직렬 수신이 중단되어 라이브러리 함수 시대로 돌아갈 수 있다.
부코드
/**
* @brief This function handles USART1 global interrupt.
*/
void USART1_IRQHandler(void)
{
/* USER CODE BEGIN USART1_IRQn 0 */
uint8_t temp;
if(USART1->SR & 0x00000020){
temp = USART1->DR;
RX_BUFF[RX_CNT++] = temp;
if(temp==0x0d)console_setflag();
}
/* USER CODE END USART1_IRQn 0 */
HAL_UART_IRQHandler(&huart1);
/* USER CODE BEGIN USART1_IRQn 1 */
__HAL_UART_ENABLE_IT(&huart1,UART_IT_ERR);
__HAL_UART_ENABLE_IT(&huart1,UART_IT_RXNE);
/* USER CODE END USART1_IRQn 1 */
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSON
JSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다.
그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다.
저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.
==__HAL_UART_ENABLE_IT(&huart1,UART_IT_RXNE);==
__HAL_UART_ENABLE_IT(&huart1,UART_IT_ERR);
__HAL_UART_ENABLE_IT(&huart1,UART_IT_RXNE);
/**
* @brief This function handles USART1 global interrupt.
*/
void USART1_IRQHandler(void)
{
/* USER CODE BEGIN USART1_IRQn 0 */
uint8_t temp;
if(USART1->SR & 0x00000020){
temp = USART1->DR;
RX_BUFF[RX_CNT++] = temp;
if(temp==0x0d)console_setflag();
}
/* USER CODE END USART1_IRQn 0 */
HAL_UART_IRQHandler(&huart1);
/* USER CODE BEGIN USART1_IRQn 1 */
__HAL_UART_ENABLE_IT(&huart1,UART_IT_ERR);
__HAL_UART_ENABLE_IT(&huart1,UART_IT_RXNE);
/* USER CODE END USART1_IRQn 1 */
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.