# RA8P1 Titan Board 开发板 GPT 使用说明 **中文** | [**English**](./README_EN.md) ## 简介 在我们具体的应用场合中往往都离不开 timer 的使用,本例程主要介绍了如何在 Titan Board 上使用 GPT 设备。 ## FSP配置说明 FSP 配置使能 GPT7 为 PWM 模式: ![image-20250730145155124](figures/image-20250730145155124.png) 并配置 Pins 使能 GPT7: ![image-20250730145234806](figures/image-20250730145234806.png) ### RT-Thread Settings配置 在配置中打开 PWM7 使能: ![image-20250730145310691](figures/image-20250730145310691.png) ### 示例工程说明 本例程的源码位于`/projects/Titan_basic_buzzer/src/buzzer.c`: ```c #include #include #define PWM_DEV_NAME "pwm7" /* PWM设备名称 */ #define PWM_DEV_CHANNEL 0 /* PWM通道 */ struct rt_device_pwm *pwm_dev; typedef struct { uint16_t freq; // 频率Hz uint16_t duration; // 持续时间ms } note_t; note_t song[] = { {262,400}, {294,400}, {330,400}, {262,400}, // 1 2 3 1 {262,400}, {294,400}, {330,400}, {262,400}, // 1 2 3 1 {330,400}, {349,400}, {392,800}, // 3 4 5 {330,400}, {349,400}, {392,800}, // 3 4 5 {392,200}, {440,200}, {392,200}, {349,200}, {330,400}, {262,400}, // 5 6 5 4 3 1 {392,200}, {440,200}, {392,200}, {349,200}, {330,400}, {262,400}, // 5 6 5 4 3 1 {262,400}, {196,400}, {262,400}, {0,400}, // 1(低) 7(低) 1 高 休止 {262,400}, {196,400}, {262,400}, {0,400}, // 1 7 1 休止 }; static int buzzer_test(void) { pwm_dev = (struct rt_device_pwm *)rt_device_find(PWM_DEV_NAME); if (!pwm_dev) { rt_kprintf("Cannot find PWM device %s\n", PWM_DEV_NAME); return -1; } for (size_t i = 0; i < sizeof(song)/sizeof(song[0]); i++) { if (song[i].freq == 0) { rt_pwm_disable(pwm_dev, PWM_DEV_CHANNEL); } else { uint32_t period_ns = 1000000000 / song[i].freq; // ns uint32_t pulse_ns = period_ns / 2; // 50% rt_pwm_set(pwm_dev, PWM_DEV_CHANNEL, period_ns, pulse_ns); rt_pwm_enable(pwm_dev, PWM_DEV_CHANNEL); } rt_thread_mdelay(song[i].duration); } rt_pwm_disable(pwm_dev, PWM_DEV_CHANNEL); return 0; } MSH_CMD_EXPORT(buzzer_test, Play song on buzzer); ``` ## 编译&下载 * RT-Thread Studio:在 RT-Thread Studio 的包管理器中下载 Titan Board 资源包,然后创建新工程,执行编译。 编译完成后,将开发板的 Jlink 接口与 PC 机连接,然后将固件下载至开发板。 ## 运行效果 在串口终端输入 buzzer_sample 查看具体效果,蜂鸣器会发出一段旋律。