赞
踩
本篇文章来自极术社区与兆易创新组织的GD32F427开发板评测活动,更多开发板试用活动请关注极术社区网站。作者:卢阿涛
SYN6288是一款语音播报芯片,可以将文字转化为语音并通过喇叭播放。
模块如下:
模块引脚如下:可见通信方式为串口
模块引脚定义如下:
BN0和BP0:接喇叭
BUSY:忙信号检测,可不接
TX:接单片机RX
RX:接单片机TX
本例程通过串口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); }
/** * @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); // 串口发送 }
直接看视频,上电会播放语音。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。