当前位置:   article > 正文

【GD32F427开发板试用】SYN6288语音播报_语音模块syn6288引脚说明

语音模块syn6288引脚说明

本篇文章来自极术社区与兆易创新组织的GD32F427开发板评测活动,更多开发板试用活动请关注极术社区网站。作者:卢阿涛

一、硬件介绍

SYN6288是一款语音播报芯片,可以将文字转化为语音并通过喇叭播放。
模块如下:

二、引脚连接

模块引脚如下:可见通信方式为串口

模块引脚定义如下:
BN0和BP0:接喇叭
BUSY:忙信号检测,可不接
TX:接单片机RX
RX:接单片机TX

三、软件实现

1. 串口配置

本例程通过串口2进行测试。

/**
 * @name: 
 * @function: 引脚配置
 * @return {*}
 * @author: lengyuefeng
 * @Date: 2022-11-25 20:33:41
 */
void bsp_usart3_gpioConfig(void)
{
    /* enable GPIO clock */
    rcu_periph_clock_enable(BSP_USART3_GPIO_RCU);

    /* configure the USART0 TX pin and USART0 RX pin */
    gpio_af_set(BSP_USART3_TX_PORT, GPIO_AF_7, BSP_USART3_TX_PIN);
    gpio_af_set(BSP_USART3_RX_PORT, GPIO_AF_7, BSP_USART3_RX_PIN);

     /* configure USART0 TX as alternate function push-pull */
    gpio_mode_set(BSP_USART3_TX_PORT, GPIO_MODE_AF, GPIO_PUPD_PULLUP, BSP_USART3_TX_PIN);
    gpio_output_options_set(BSP_USART3_TX_PORT, GPIO_OTYPE_PP, GPIO_OSPEED_50MHZ, BSP_USART3_TX_PIN);

    /* configure USART0 RX as alternate function push-pull */
    gpio_mode_set(BSP_USART3_RX_PORT, GPIO_MODE_AF, GPIO_PUPD_PULLUP, BSP_USART3_RX_PIN);
    gpio_output_options_set(BSP_USART3_RX_PORT, GPIO_OTYPE_PP, GPIO_OSPEED_50MHZ, BSP_USART3_RX_PIN);

}
/**
 * @name: 
 * @function: 串口配置
 * @param {uint32_t} bound:波特率
 * @return {*}
 * @author: lengyuefeng
 * @Date: 2022-11-25 20:36:50
 */
void bsp_usart3_usartConfig(uint32_t bound)
{
    /* enable USART clock */
    rcu_periph_clock_enable(BSP_USART3_RCU);

    /* USART configure */
    usart_deinit(BSP_USART3_USART);
    usart_baudrate_set(BSP_USART3_USART, bound);
    usart_receive_config(BSP_USART3_USART, USART_RECEIVE_ENABLE);
    usart_transmit_config(BSP_USART3_USART, USART_TRANSMIT_ENABLE);
    usart_enable(BSP_USART3_USART);                 
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45

2. SYN6288播放函数

/**
 * @name: 
 * @function: 发送文本信息
 * @param {uint8_t} backSound: 背景音乐
 *                     0:无背景音乐
 *                     1~15:选择背景音乐
 * @param {uint8_t} *text:要发送的文本
 * @return {*}
 * @author: lengyuefeng
 * @Date: 2022-11-24 17:22:01
 */
static uint8_t dri_syn6288_sendText(uint8_t backSound,uint8_t *text)
{
    uint8_t tempBuf[DRI_SYN6288_BUFFER_LENGTH],i,crc = 0;
    uint16_t textLength; // 文本长度

    textLength = strlen((uint8_t*)text);
    /* 帧固定配置信息 */
    tempBuf[0] = 0xFD;    // 帧头
    // tempBuf[1] = textLength >> 8;    // 数据长度高字节
    tempBuf[1] = 0x00;    // 数据长度高字节
    tempBuf[2] = (textLength & 0xff) + 3;    // 数据长度低字节
    tempBuf[3] = 0x01;    // 构造命令字:合成播放命令
    /* 字节高5位表示背景音乐,低3位表示编码格式 0是GB2312编码 */
    tempBuf[4] = 0x01|(backSound << 4);    // 构造命令参数:背景音乐设定
    /* 校验码计算 */
    for(i = 0; i < 5; i++)
    {
        crc = crc ^ tempBuf[i];     // 对发送的字节进行异或校验
    }

    for(i = 0; i < textLength; i++)
    {
        crc = crc ^ text[i];         //对发送的字节进行异或校验
    }
    /* 发送数据 */
    memcpy(&tempBuf[5], text, textLength);
    tempBuf[5 + textLength] = crc;
    DRI_SYN6288_SEND_BUFFER(tempBuf,5 + textLength + 1); // 串口发送
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40

四、效果

直接看视频,上电会播放语音。

【GD32F427开发板试用】SYN6288语音播报 - 极术社区 - 连接开发者与智能计算生态

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/你好赵伟/article/detail/587897
推荐阅读
相关标签
  

闽ICP备14008679号