STM32F1, STMCubeMX, GPIO, PWM, Digital Buzzer
0. 참고 자료
해당 모듈은 기본적으로 On/Off 기능만 있지만 PWM 기능을 이용해도 동작하는지 테스트를 진행하였습니다.
PWM을 사용하면 duty 100%가 아니면 부저의 음질이 좋지 않은 것으로 확인되었습니다.
1. 모듈
2. HW 구성
스펙상으로는 5V이지만 3V3에서도 동작하네요.
3. Timer Enable & GPIO Enable
Timer를 이용하여 PWM 방식으로 제어할 것인지
아니면 GPIO 방식으로 제어할 것인지 애매해서 2가지 방법으로 테스트하였습니다.
4. RCC > HSE > Crystal/Ceramic Resonator
5. Clock Configuration > 72MHz
6. Configuration > TIM
7. Parameter Settings
- Prescaler : 72-1
- Counter Period : 100-1
8. SW 구성
HAL_GPIO_WritePin(BUZZER_GPIO_Port, BUZZER_Pin, GPIO_PIN_SET); HAL_GPIO_WritePin(BUZZER_GPIO_Port, BUZZER_Pin, GPIO_PIN_RESET); or HAL_TIM_PWM_Start(&htim3, TIM_CHANNEL_1); HAL_Delay(1000); HAL_TIM_PWM_Stop(&htim3, TIM_CHANNEL_1); |
9. 소스
10. 결과
PWM 방식으로 100% duty 에서 정상 동작하기 때문에
그냥 GPIO 방식으로 하는 것이 적절한 거 같네요.
'STM32F1' 카테고리의 다른 글
STM32F1, STMCubeMX, PWM, 9g micro servo (0) | 2018.08.06 |
---|---|
STM32F1, STMCubeMX, PWM, Digital piranha LED (0) | 2018.08.06 |
STM32F1, STMCubeMX, I2C, PCF8563 (0) | 2018.08.03 |
STM32F1, STMCubeMX, ADC, Internal Temperature Sensor (0) | 2018.08.03 |
STM32F1, STMCubeMX, SPI, LCD22 (0) | 2018.08.03 |