STM32系列——手把手教你将SYN6288语音播报模块的标准库程序转为hal库使用
目录
前言
1. 原理
2. Cubmx配置
3. keil5编写代码
3.1 main.c
3.2 syn6288.c
3.3 syn6288.h
前言
本教程基于stm32f103c8t6最小系统板,hal库开发。
操作简单,讲解直接清楚,旨在让大家少走弯路。
1. 原理
SYN6288就是用到一个串口资源即可,用STM32开发起来不难。
2. Cubmx配置
配置串口3为异步通信模式 ,注意波特率必须是9600。试过了,115200是不行滴。
不用开启串口中断。
3. keil5编写代码
3.1 main.c
/* USER CODE BEGIN 0 *//**************芯片设置命令*********************/
uint8_t SYN_StopCom[] = {0xFD, 0X00, 0X02, 0X02, 0XFD}; //停止合成
uint8_t SYN_SuspendCom[] = {0XFD, 0X00, 0X02, 0X03, 0XFC}; //暂停合成
uint8_t SYN_RecoverCom[] = {0XFD, 0X00, 0X02, 0X04, 0XFB}; //恢复合成
uint8_t SYN_ChackCom[] = {0XFD, 0X00, 0X02, 0X21, 0XDE}; //状态查询
uint8_t SYN_PowerDownCom[] = {0XFD, 0X00, 0X02, 0X88, 0X77}; //进入POWER DOWN 状态命令
/* USER CODE END 0 */
/* USER CODE BEGIN 3 */ //选择背景音乐2。(0:无背景音乐 1-15:背景音乐可选)//m[0~16]:0背景音乐为静音,16背景音乐音量最大//v[0~16]:0朗读音量为静音,16朗读音量最大//t[0~5]:0朗读语速最慢,5朗读语速最快//其他不常用功能请参考数据手册SYN_FrameInfo(2, "[v7][m1][t5]欢迎使用");HAL_Delay(1000);HAL_Delay(1000);}/* USER CODE END 3 */
3.2 syn6288.c
#include "syn6288.h"
#include "usart.h"
#include "string.h"//Music:选择背景音乐。0:无背景音乐,1~15:选择背景音乐
void SYN_FrameInfo(uint8_t Music, uint8_t *HZdata)
{/****************需要发送的文本**********************************/unsigned char Frame_Info[50];unsigned char HZ_Length;unsigned char ecc = 0; //定义校验字节unsigned int i = 0;HZ_Length = strlen((char*)HZdata); //需要发送文本的长度/*****************帧固定配置信息**************************************/Frame_Info[0] = 0xFD ; //构造帧头FDFrame_Info[1] = 0x00 ; //构造数据区长度的高字节Frame_Info[2] = HZ_Length + 3; //构造数据区长度的低字节Frame_Info[3] = 0x01 ; //构造命令字:合成播放命令Frame_Info[4] = 0x01 | Music << 4 ; //构造命令参数:背景音乐设定/*******************校验码计算***************************************/for(i = 0; i < 5; i++) //依次发送构造好的5个帧头字节{ecc = ecc ^ (Frame_Info[i]); //对发送的字节进行异或校验}for(i = 0; i < HZ_Length; i++) //依次发送待合成的文本数据{ecc = ecc ^ (HZdata[i]); //对发送的字节进行异或校验}/*******************发送帧信息***************************************/memcpy(&Frame_Info[5], HZdata, HZ_Length);Frame_Info[5 + HZ_Length] = ecc;HAL_UART_Transmit(&huart3,Frame_Info,5 + HZ_Length + 1,10000);//USART3_SendString(Frame_Info, 5 + HZ_Length + 1);
}/***********************************************************
* 名 称: YS_SYN_Set(u8 *Info_data)
* 功 能: 主函数 程序入口
* 入口参数: *Info_data:固定的配置信息变量
* 出口参数:
* 说 明:本函数用于配置,停止合成、暂停合成等设置 ,默认波特率9600bps。
* 调用方法:通过调用已经定义的相关数组进行配置。
**********************************************************/
void YS_SYN_Set(uint8_t *Info_data)
{uint8_t Com_Len;Com_Len = strlen((char*)Info_data);HAL_UART_Transmit(&huart3,Info_data,Com_Len,10000);// USART3_SendString(Info_data, Com_Len);
}
3.3 syn6288.h
#ifndef __SYN6288_H
#define __SYN6288_H#include "stm32f1xx_hal.h"
void SYN_FrameInfo(uint8_t Music, uint8_t *HZdata);
void YS_SYN_Set(uint8_t *Info_data);#endif
以上就是STM32驱动syn6288的HAL库版本的代码,全部按我这个操作100%一次驱动syn6288。
码字不易,希望喜欢的小伙伴别忘了点赞+收藏+关注,你们的肯定就是我创作的动力。
欢迎大家积极交流,本文未经允许谢绝转载!!!
STM32系列——手把手教你将SYN6288语音播报模块的标准库程序转为hal库使用相关推荐
- STM32系列——手把手教你蓝牙模块HC05、HC06的使用,重在“用起来”(HAL库)
前言 不论是HC05还是HC06,我们用到的都是蓝牙模块的透传功能,只需要用到4个引脚:RXD.TXD.VCC(5V).GND. HC-05的使用 1.HC-05有6个引脚,但是我们只用到4个. 2. ...
- 论STM32标准库程序修改为HAL库
标准库占绝大多数,自己买的板子跟的资料也一般是标准库,HAL库很少,不过要是使用STM32CubeMx配置,那么就是使用的HAL库了,而参考资料是标准库的,就没有办法用. 注意: 1.标准库与HAL库 ...
- stm32舵机控制程序_免费开源基于STM32的lt;智能垃圾桶gt;之语音播报
大家好,我是『芯知识学堂』的SingleYork,前面给大家简单介绍了和,今天笔者将要给大家介绍我们这个DIY智能垃圾桶套件中"语音播报模块"的详细使用. 这个"语音播报 ...
- 51单总线控制SV-5W语音播报模块
单总线控制SV-5W语音播报模块 SV-5W语音播报模块 SV-5W语音播报模块简介 工作模式说明 模块配置 接线 驱动 部分代码 效果展示 SV-5W语音播报模块 SV-5W语音播报模块简介 DY- ...
- 手把手教你学Python之Pandas(一文掌握数据分析与处理库-Pandas)
目录 基本结构之Series Series对象的创建 Index对象介绍 Series中数据的访问 Series中常用方法 基本结构之DataFrame DataFrame的创建 DataFrame ...
- 手把手教你学Python之Matplotlib绘图(一文掌握数据可视化库-Matplotlib)
目录 Matplotlib介绍 线形图(折线图) 直方图 条形图 饼状图 散点图 Matplotlib介绍 matplotlib是一个Python 的2D绘图库,提供了一套表示和操作图以 ...
- QGC地面站手把手教你改——如何添加qmldir模块文件
QGC中手把手教你添加qmldir模块 1. 新建qmldir文件 2. 新建QML文件 3. qrc中添加qmldir和QML文件 4. 修改qmldir和QML文件 5. 如何使用 6. pro文 ...
- STM32从零到一,从标准库移植到HAL库,UART串口1以DMA模式收发不定长数据代码详解+常见问题 一文解析
前言 本文的参考资料 感谢提供标准库版本的CSDN同学:这两篇文章至少是我看过的最详细的标准库配置DMA版本.而且代码实测稳定能用. STM32 | DMA配置和使用如此简单(超详细)_...| .. ...
- 2×3卡方检验prism_SPSS系列|手把手教你做卡方检验
在统计学分析里,最重要的元素是数据,数据的属性和用途决定了用什么样的统计分析方法来比较数据.而数据分析工作常需借助统计软件,常见的统计软件有SPSS,SAS,S-plus,Minitab,Excel等 ...
最新文章
- 让手机站点像原生应用的四大途径
- 【关于重载OnBackPressed无效的解决方案】
- stand-alone android sdk tools,android make-standalone-toolchain.sh 使用说明
- SQL Server 创建定时任务JOB
- sql having是什么意思_sql之汇总查询
- linux 网卡绑定updelay,Linux 配置双网卡绑定实现负载均衡
- URL编码 URLEncoder 示例
- cv::cornerSubPix()亚像素角点检测
- 维护建议--数据库备份
- DB破解(暗黑破坏神辅助)使用方法
- 201万年薪,华为天才少年路径可以复制吗
- 简单的下拉导航条代码
- java 计算间隔天数,java 计算间隔的天数
- 主流的移动机器人视觉系统,主要分为哪几种?
- ACM素数打表(模版)
- 如何理解statsmodels.ols的输出结果?ols计算的线性回归结果以及手动计算的结果的对比
- NLP(自然语言处理)
- 微信公众号点歌台php,【php】微信公众平台接口开发--点歌
- 【兑吧360】温暖冬日团圆年,贴心好礼迎新春
- netsh - Windows自带的端口转发/端口映射工具