STM32 cubemx 에서 무원 버저 출력 PWM 웨이브 를 설정하고 음악 코드 를 두 마리 호랑이
2935 단어 STM32
} tone_t;
#define DEF_DELAY 350 static tone_t tiger_notation[]= { {DO, DEF_DELAY}, {RE, DEF_DELAY}, {MI, DEF_DELAY}, {DO, DEF_DELAY*2},
{DO, DEF_DELAY},
{RE, DEF_DELAY},
{MI, DEF_DELAY},
{DO, DEF_DELAY*2},
{MI, DEF_DELAY},
{FA, DEF_DELAY},
{SO, DEF_DELAY*2},
{MI, DEF_DELAY},
{FA, DEF_DELAY},
{SO, DEF_DELAY*2},
{SO, DEF_DELAY},
{LA, DEF_DELAY},
{SO, DEF_DELAY},
{FA, DEF_DELAY},
{MI, DEF_DELAY},
{DO, DEF_DELAY*2},
{SO, DEF_DELAY},
{LA, DEF_DELAY},
{SO, DEF_DELAY},
{FA, DEF_DELAY},
{MI, DEF_DELAY},
{DO, DEF_DELAY*2},
{RE, DEF_DELAY},
{SO, DEF_DELAY},
{DO, DEF_DELAY*2},
{RE, DEF_DELAY},
{SO, DEF_DELAY},
{DO, DEF_DELAY*2},
}; #define ARRAY_SIZE(x) (sizeof(x)/sizeof(x[0])) int turn_passive_beep(int cmd, int freq) { int range; if(OFF == cmd) { HAL_TIM_PWM_Stop(&htim2, TIM_CHANNEL_2) ; } else { if(freq<1000 || freq>5000) { printf(“Beep set invalid PWM frequency[%d]!”, freq); return -1; }
/* Set PWM clock: 80MHz/169=500KHz */
htim2.Init.Prescaler = 160-1;
/* Set PWM frequency */
range=500000/freq;
htim2.Init.Period = range;
if (HAL_TIM_PWM_Init(&htim2) != HAL_OK)
{
Error_Handler();
}
/* Set PWM duty 50% */
TIM_OC_InitTypeDef sConfigOC;
sConfigOC.OCMode = TIM_OCMODE_PWM1;
sConfigOC.Pulse = (htim2.Init.Period/3);
sConfigOC.OCPolarity = TIM_OCPOLARITY_HIGH;
sConfigOC.OCFastMode = TIM_OCFAST_DISABLE;
if (HAL_TIM_PWM_ConfigChannel(&htim2, &sConfigOC, TIM_CHANNEL_2) != HAL_OK)
{
Error_Handler();
}
HAL_TIM_MspPostInit(&htim2);
HAL_TIM_PWM_Start(&htim2, TIM_CHANNEL_2);
}
return 0;
} static inline void play_tone(int tone, int delay) { if(toneRI1) return ;
turn_passive_beep(ON, tone_freq[tone]);
Delay_ms(delay);
turn_passive_beep(OFF, 0);
} void play_tiger(void) { int i;
for(i=0; i
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
STM32CubeIDE를 사용해 보자 How To STM32CubeIDE 일본어판 (11) I2C를 사용해 보자 4 Si7020+ssd1306편STM32CubeIDE를 사용해 보자 How To STM32CubeIDE 일본어판 (10) I2C를 사용해 보자 3 ssd1306편의 계속입니다. Nucleo 보드와 Si7020, SSD1306을 연결합니다. 이번에...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.