안녕하세요. 이수민 전문가입니다.
코드부터 보면 레지스터 설정은 맞게 하셨어요. IOPENR의 1번 비트로 GPIOB 클럭을 켜고, MODER의 4~5번 비트를 지운 뒤 01로 만들어 PB2를 출력으로 설정하고, ODR 2번 비트를 올리는 흐름이라 논리적으로 문제가 없어요. 두 번째 사진처럼 설정을 while 밖으로 빼신 구조가 더 정석이고요. 시뮬레이터 타이머도 돌아가고 있으니 컴파일과 실행은 되고 있는 상태예요.
그래서 가장 유력한 범인은 LED의 극성이에요. LED는 다이오드라 전류가 한 방향으로만 흐르는데, 긴 다리인 애노드가 전원 쪽(PB2), 짧은 다리인 캐소드가 GND 쪽에 연결돼야 불이 들어와요. 지금 배선을 보면 LED 왼쪽 다리가 GND로, 오른쪽 다리가 PB2로 가 있는데, Wokwi의 LED 부품은 왼쪽이 애노드(A), 오른쪽이 캐소드(C)예요. 그러니까 거꾸로 연결된 상태라 ODR을 아무리 올려도 전류가 못 흐르는 거예요. Wokwi에서 LED 다리에 마우스를 올리면 A와 C 표시가 뜨니 확인해보시고, 두 선을 서로 바꿔 연결하면 바로 켜질 거예요.
참고로 실제 보드에서는 LED에 전류 제한 저항 220~330옴을 직렬로 꼭 넣어야 해요. 시뮬레이터는 봐주지만 실물은 LED나 핀이 상할 수 있거든요. 그리고 클럭을 켠 직후 GPIO 레지스터에 접근할 때는 실제 칩에서 한두 사이클의 여유가 필요한 경우가 있어서, IOPENR 설정 뒤에 IOPENR을 한 번 읽어주는 더미 코드를 넣는 습관을 들이면 보드가 왔을 때 겪을 미묘한 문제를 예방할 수 있어요. :)