보드 리셋 혹은 전원이 켜질때 부트로더가 실행되고 버튼의 눌린경우에만 부트로더를 실행하고 그렇지 않으면 펌웨웨어를 실행하도록 한다.
프로젝트 파일
PC8을 입력으로 설정한다.
풀업 저항을 활성화 한다.
부트로더 실행 중을 알 수 있도록 LED를 추가한다.
초기값은 High로 설정
버튼이 눌리지 않은 경우에만 펌웨어를 실행하도록 추가
// 만약 버튼이 눌리지 않으면 펌웨어 실행
if (HAL_GPIO_ReadPin(GPIOC, GPIO_PIN_8) == GPIO_PIN_SET)
{
is_jump = true;
}
LED 점멸 기능 추가
static uint32_t pre_time = 0;
if (HAL_GetTick()-pre_time >= 100)
{
pre_time = HAL_GetTick();
HAL_GPIO_TogglePin(GPIOG, GPIO_PIN_3);
}
펌웨어 점프 전에 USB OFF 추가
void usbDeInit(void)
{
USBD_DeInit(&hUsbDeviceHS);
}
점프하기 전에 호출