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);
|
||||
}
|
||||
@@ -0,0 +1,19 @@
|
||||
#ifndef BUZZER_H
|
||||
#define BUZZER_H
|
||||
|
||||
#include <stdint.h>
|
||||
|
||||
/* C 板无源蜂鸣器(TIM4_CH3, PD14),音调表与 legacy 完全一致 */
|
||||
|
||||
typedef enum
|
||||
{
|
||||
BUZZER_P = 0, // 空拍
|
||||
BUZZER_L1, BUZZER_L1_, BUZZER_L2, BUZZER_L2_, BUZZER_L3, BUZZER_L4, BUZZER_L4_, BUZZER_L5, BUZZER_L5_, BUZZER_L6, BUZZER_L6_, BUZZER_L7, // 低音
|
||||
BUZZER_M1, BUZZER_M1_, BUZZER_M2, BUZZER_M2_, BUZZER_M3, BUZZER_M4, BUZZER_M4_, BUZZER_M5, BUZZER_M5_, BUZZER_M6, BUZZER_M6_, BUZZER_M7, // 中音
|
||||
BUZZER_H1, BUZZER_H1_, BUZZER_H2, BUZZER_H2_, BUZZER_H3, BUZZER_H4, BUZZER_H4_, BUZZER_H5, BUZZER_H5_, BUZZER_H6, BUZZER_H6_, BUZZER_H7, // 高音
|
||||
} buzzer_tone_e;
|
||||
|
||||
extern void buzzer_init(void);
|
||||
extern void buzzer_on(buzzer_tone_e tone);
|
||||
extern void buzzer_off(void);
|
||||
#endif
|
||||
Reference in New Issue
Block a user