프로젝트 대표이미지
프로젝트 제목 없음
하부 생성일2022. 10. 5 조회1661 좋아요0 스크랩0 댓글0
 
첨부 파일 비공개 기술 미판매 유사 개발 의뢰 미수락

퀘스트 4/7 - A7/ M4 예제 응용 데모 시현

2020. 5. 13 (수) 02:12 문범* 조회 250 좋아요 0 스크랩 0 댓글 0

1. STM32CubeMX와 STM32CubeIDE를 사용하여 작성하고 빌드된 M4 프로젝트의 디렉토리 구조

 

2. STM32CubeIDE상에서 USER1 버튼을 누를 때 Interrupt handler 또는 HAL callback에서 브레이크 포인트를 설정하여 캐치된 상태의 화면

 

처음에는 소스를

void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin) {
	if(GPIO_Pin == GPIO_PIN_14) {
		HAL_GPIO_TogglePin(GPIOA,GPIO_PIN_13);
	}
}

이렇게 작성했는데 동작을 안하더라고요

stm32f4xx_hal_gpio.h
void HAL_GPIO_EXTI_IRQHandler(uint16_t GPIO_Pin);
void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin);

stm32mp1xx_hal_gpio.h
void HAL_GPIO_EXTI_IRQHandler(uint16_t GPIO_Pin);
void HAL_GPIO_EXTI_Rising_Callback(uint16_t GPIO_Pin);
void HAL_GPIO_EXTI_Falling_Callback(uint16_t GPIO_Pin);

아예 외부인터럽트 콜백함수가 달랐습니다.

그런데 컴파일은 에러가 없었습니다.

 

3. M4 펌웨어를 linux 부팅시에 로딩되도록 포함한 뒤에 부팅 로그

 

동작과 상관은 없지만 첫줄 메세지가 깨지시는 분들은 sleep 1 으로 해결하세요.

 

 

4. DK2 target 보드를 부팅(리셋)하여 바로 USER1 버튼을 누를 때마다 LD6가 토글되는(M4 펌웨어가 동작하는 것) 영상