EXTI는 CallBack 을 써야함
Driver/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c
502~514 잘라내기 후
main문 타이머 밑에 슈웃
잘 되는지 확인용
interrupt 설정
==> 정상 작동
포토커플러에 인식될 때 스텝모터 정지시키기
stepmotor.c에 선언
void stepmotor_main()
{
switch(stepmotor_state)
{
case IDLE:
stepmotor_drive(stepmotor_state);
set_rpm(0);
if (get_button(BUTTON0_GPIO_Port, BUTTON0_Pin, BUTTON0) == BUTTON_PRESS)
{
stepmotor_state = FORWARD;
}
break;
case FORWARD:
stepmotor_drive(stepmotor_state);
set_rpm(10); //rpm 속도 조절
if (get_button(BUTTON0_GPIO_Port, BUTTON0_Pin, BUTTON0) == BUTTON_PRESS)
{
stepmotor_state = BACKWARD;
}
if (get_button(BUTTON1_GPIO_Port, BUTTON1_Pin, BUTTON1) == BUTTON_PRESS)
{
stepmotor_state = IDLE;
}
if(ext_int_no != -1)
{
ext_int_no = -1;
stepmotor_state = IDLE;
}
break;
case BACKWARD:
stepmotor_drive(stepmotor_state);
set_rpm(10);
if (get_button(BUTTON0_GPIO_Port, BUTTON0_Pin, BUTTON0) == BUTTON_PRESS)
{
stepmotor_state = FORWARD;
}
if (get_button(BUTTON1_GPIO_Port, BUTTON1_Pin, BUTTON1) == BUTTON_PRESS)
{
stepmotor_state = IDLE;
}
if(ext_int_no != -1)
{
ext_int_no = -1;
stepmotor_state = IDLE;
}
break;
}
}
정상작동 확인
DOTMATRIX
PE2~PE9 (행연결)
PD0~PD7 (열연결)
ioc 모두 GPIO_OUTPUT으로 설정
PE2~PE9 까지 COL1 ~COL8
PD0~PD7 까지 ROW1~ROW8 이름 변경
'STM32' 카테고리의 다른 글
STM32 DHT11 온습도센서 (0) | 2023.07.10 |
---|---|
STM32 I2C (0) | 2023.07.06 |
STM32 RTC (0) | 2023.07.06 |
STM32 LED 제어 (0) | 2023.07.05 |
STM32 LED 버튼 제어, flower 동작 (0) | 2023.06.07 |