chore: 导入 Simba-OmniInfantry 基线(云台/底盘双工程)
- 云台(ROBOT_TYPE_GIMBAL)与底盘(ROBOT_TYPE_CHASSIS)完整固件源码 - 新增根级 .gitignore,排除 Keil MDK-ARM 构建产物(.o/.d/.crf/.axf/.lnp/.map/.htm/.sct/.dep/.iex/.lst 等) 与 *.uvguix.* / DebugConfig/(与机器绑定的 UI 布局) - core.autocrlf=false,避免固件源码在检出时被改动换行符
This commit is contained in:
@@ -0,0 +1,44 @@
|
||||
/* =============================================================================
|
||||
* buzzer.c - C 板无源蜂鸣器(TIM4_CH3, PD14)
|
||||
* 说明: 音调表与 legacy 完全一致(ARR 固定 10 分频,改 PSC 变调,
|
||||
* 装载用 HAL_TIM_GenerateEvent 立即生效);buzzer_init 必须在
|
||||
* CAN_Task 中调用一次启动 PWM 输出,否则所有报警/音效无声
|
||||
* ========================================================================== */
|
||||
#include "buzzer.h"
|
||||
#include "tim.h"
|
||||
|
||||
extern TIM_HandleTypeDef htim4;
|
||||
|
||||
/* 蜂鸣器音调频率表(ARR 固定 10 分频下的 PSC 值,与 legacy 一致) */
|
||||
static const uint16_t buzzer_tone_freq[37] = {
|
||||
0,
|
||||
32107, 30305, 28604, 26999, 25483, 24053, 22703, 21429, 20226, 19091, 18019, 17008,
|
||||
16053, 15152, 14302, 13499, 12742, 12026, 11352, 10714, 10113, 9545, 9010, 8504,
|
||||
8027, 7576, 7151, 6750, 6371, 6013, 5676, 5357, 5056, 4773, 4505, 4252,
|
||||
};
|
||||
|
||||
void buzzer_init(void)
|
||||
{
|
||||
/* 与 legacy 相同:ARR=10 分频,CubeMX 的 ARR=65535 改为 9 */
|
||||
__HAL_TIM_SET_AUTORELOAD(&htim4, 10 - 1);
|
||||
__HAL_TIM_SET_PRESCALER(&htim4, 19091);
|
||||
__HAL_TIM_SET_COMPARE(&htim4, TIM_CHANNEL_3, 0);
|
||||
HAL_TIM_PWM_Start(&htim4, TIM_CHANNEL_3);
|
||||
}
|
||||
|
||||
void buzzer_on(buzzer_tone_e tone)
|
||||
{
|
||||
if (tone != BUZZER_P)
|
||||
{
|
||||
__HAL_TIM_SET_PRESCALER(&htim4, buzzer_tone_freq[tone]);
|
||||
HAL_TIM_GenerateEvent(&htim4, TIM_EVENTSOURCE_UPDATE); // 立即装载 PSC
|
||||
__HAL_TIM_SET_COMPARE(&htim4, TIM_CHANNEL_3, 5); // 占空比 50%
|
||||
}
|
||||
else
|
||||
__HAL_TIM_SET_COMPARE(&htim4, TIM_CHANNEL_3, 0);
|
||||
}
|
||||
|
||||
void buzzer_off(void)
|
||||
{
|
||||
__HAL_TIM_SET_COMPARE(&htim4, TIM_CHANNEL_3, 0);
|
||||
}
|
||||
Reference in New Issue
Block a user