void send_port(uint8_t X, uint8_t port) { send(X); send(port); HAL_GPIO_WritePin(FND_RCLK_GPIO_Port, FND_RCLK_Pin, LOW); HAL_GPIO_WritePin(FND_RCLK_GPIO_Port, FND_RCLK_Pin, HIGH); } 이렇게 코드를 보면 X, port 를 send하고 RCK 라이징 엣지를 만들어서 최종적으로 출력 하는구나 를 알 수 있는데 만약 이런 코드 없이 데이터시트를 보고 코드를 만든다고 할 때 X와 port를 함께 send하는것, X, port 순으로 send 해야 한다는 것, 위치(port)는 0b0001, 0b0010, 0b0100, 0b1000 으로 설정한다는 것 들은 어떻게 알 수 있나요? 데이터시트를 통해서 이런 정보까지는 얻을 수 없는 것 같아서요..
하드웨어 구성 상 7-segment 의 네자릿수가 동시에 다른 숫자를 나타나게 하는 것은 불가능 하다고 설명해 주셨는데요. SPI 통신을 사용할 때는 이 문제가 해결된 것처럼 보입니다. GPIO 통신을 사용할 때는 각 자릿수를 빠르게 켜서 마치 동시에 켜진 것처럼 보이는 방식을 사용하는데, SPI 통신을 사용할 때도 7-segment의 각 자릿수가 동시에 켜진 것처럼(실제로는 동시가 아니지만) 보이는 것일까요??
개발환경을 세팅하려고 하는데 아래와 같은 창이 떠서 위 화면의 register를 했는데 이상하게 비밀번호를 쓰는 칸이 없기에 Forgot password?를 눌러서 위와같은 이메일을 받아서 "Create a myST account" 버튼을 클릭했는데 그냥 하얀 화면이 나오는데 왜 이러는지 혹시 아시나요,,,혼자 20분정도 해매고 있는 것 같네요,,
MX_GPIO_Init(); 를 들어가면 HAL_GPIO_WritePin(GPIO_LED_GPIO_Port, GPIO_LED_Pin, GPIO_PIN_SET); 가 나오고 , 이코드는 `if (PinState != GPIO_PIN_RESET) { GPIOx->BSRR = GPIO_Pin; } else { GPIOx->BSRR = (uint32_t)GPIO_Pin << 16u; } 즉, 핀 상태에 따라 led불을 온오프 시키는 역할을 하는것으로 이해하고 있습니다! 그렇다면 main문에서 MX_GPIO_Init() 을 사용할때는 while문 안에 /*HAL_GPIO_WritePin(GPIO_LED_GPIO_Port, GPIO_LED_Pin, 1); HAL_Delay(100); HAL_GPIO_WritePin(GPIO_LED_GPIO_Port, GPIO_LED_Pin, 0); HAL_Delay(100);*/ 이 코드가 없어도 동작해야하는 것이 아닌가 라고 생각했습니다. 그래서 실제로 while문 내부를 다 지우고 MX_GPIO_Init() 만 쓰니까 동작이 안 되더라구요. 제가 잘 못 이해하고 있는 부분이 무엇인지를 확실시를 못해서 질문드립니다! 감사합니다.
HAL_GPIO_WritePin(GPIO_LED_GPIO_Port, GPIO_LED_Pin, GPIO_PIN_SET); 1.켠다 *(0x40011000) = (8192); *reg2= 0x2000; 2.끈다 *(0x40011000)= (8192<<16); *reg2= (0x2000 << 16); 이라고 해석이 되었는데 , 실제 디버깅 시에는 *(0x40011000) 가 아니라 *(0x40011010) 일때 동작하는 이유가 무엇인가요?
전부 합체 완전체 보드~~~ 과정 중에 if(g_f_sw_fix){ printf("push_sw_fix\r\n"); g_f_sw_fix = 0; HAL_GPIO_TogglePin(PB5_RELAY_ON_OFF_CTRL_GPIO_Port, PB5_RELAY_ON_OFF_CTRL_Pin); } 위와 같이 버튼 interrupt 발생하여 relay 컨트롤에 반전 신호를 주면 Live Expression 또는 UART로 확인했을 때 sw_fix 및 relay 컨트롤뿐만 아니라 sw_up, sw_down, sw_on 에도 인터럽트가 발생해 값이 1로 변했다가 0으로 떨어집니다. 릴레이 컨트롤 부분을 주석처리하고 버튼 동작만 했을 땐 sw_fix만 프린트되고 값이 변하는 것을 확인했고, 회로도 구성상 잘못 연결한 부분은 없는데 어떤 게 문제일까요??? ++ 최초 코드 실행 or 디버그 동작 초기에 sw_up, sw_down, sw_fix, sw_on 이 전부 1로 찍혔다가 0으로 내려가는 것으로 보아, 초기 실행시 모든 GPIO 인터럽트가 발생하는 것 같은데,, 강사님의 강의 영상을 보면 초기 실행시에 아무런 인터럽트가 발생하지 않는 것 같은데 뭐가 문제일까요?
사진처럼 노트북에 연결을 했는데 불이 들어오지 않고 ST-LINK 인식이 되지 않습니다. 최초 연결할 때 금속냄새가 났고, 빨간 동그라미 부분에 발열반응이 났습니다. MCU는 발열반응이 없고 금속냄새가 나지 않습니다. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.