目录

前言

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库使用相关推荐

  1. STM32系列——手把手教你蓝牙模块HC05、HC06的使用,重在“用起来”(HAL库)

    前言 不论是HC05还是HC06,我们用到的都是蓝牙模块的透传功能,只需要用到4个引脚:RXD.TXD.VCC(5V).GND. HC-05的使用 1.HC-05有6个引脚,但是我们只用到4个. 2. ...

  2. 论STM32标准库程序修改为HAL库

    标准库占绝大多数,自己买的板子跟的资料也一般是标准库,HAL库很少,不过要是使用STM32CubeMx配置,那么就是使用的HAL库了,而参考资料是标准库的,就没有办法用. 注意: 1.标准库与HAL库 ...

  3. stm32舵机控制程序_免费开源基于STM32的lt;智能垃圾桶gt;之语音播报

    大家好,我是『芯知识学堂』的SingleYork,前面给大家简单介绍了和,今天笔者将要给大家介绍我们这个DIY智能垃圾桶套件中"语音播报模块"的详细使用. 这个"语音播报 ...

  4. 51单总线控制SV-5W语音播报模块

    单总线控制SV-5W语音播报模块 SV-5W语音播报模块 SV-5W语音播报模块简介 工作模式说明 模块配置 接线 驱动 部分代码 效果展示 SV-5W语音播报模块 SV-5W语音播报模块简介 DY- ...

  5. 手把手教你学Python之Pandas(一文掌握数据分析与处理库-Pandas)

    目录 基本结构之Series Series对象的创建 Index对象介绍 Series中数据的访问 Series中常用方法 基本结构之DataFrame DataFrame的创建 ​DataFrame ...

  6. 手把手教你学Python之Matplotlib绘图(一文掌握数据可视化库-Matplotlib)

    目录 Matplotlib介绍 线形图(折线图) 直方图 条形图 饼状图 散点图 Matplotlib介绍        matplotlib是一个Python 的2D绘图库,提供了一套表示和操作图以 ...

  7. QGC地面站手把手教你改——如何添加qmldir模块文件

    QGC中手把手教你添加qmldir模块 1. 新建qmldir文件 2. 新建QML文件 3. qrc中添加qmldir和QML文件 4. 修改qmldir和QML文件 5. 如何使用 6. pro文 ...

  8. STM32从零到一,从标准库移植到HAL库,UART串口1以DMA模式收发不定长数据代码详解+常见问题 一文解析

    前言 本文的参考资料 感谢提供标准库版本的CSDN同学:这两篇文章至少是我看过的最详细的标准库配置DMA版本.而且代码实测稳定能用. STM32 | DMA配置和使用如此简单(超详细)_...| .. ...

  9. 2×3卡方检验prism_SPSS系列|手把手教你做卡方检验

    在统计学分析里,最重要的元素是数据,数据的属性和用途决定了用什么样的统计分析方法来比较数据.而数据分析工作常需借助统计软件,常见的统计软件有SPSS,SAS,S-plus,Minitab,Excel等 ...

最新文章

  1. 让手机站点像原生应用的四大途径
  2. 【关于重载OnBackPressed无效的解决方案】
  3. stand-alone android sdk tools,android make-standalone-toolchain.sh 使用说明
  4. SQL Server 创建定时任务JOB
  5. sql having是什么意思_sql之汇总查询
  6. linux 网卡绑定updelay,Linux 配置双网卡绑定实现负载均衡
  7. URL编码 URLEncoder 示例
  8. cv::cornerSubPix()亚像素角点检测
  9. 维护建议--数据库备份
  10. DB破解(暗黑破坏神辅助)使用方法
  11. 201万年薪,华为天才少年路径可以复制吗
  12. 简单的下拉导航条代码
  13. java 计算间隔天数,java 计算间隔的天数
  14. 主流的移动机器人视觉系统,主要分为哪几种?
  15. ACM素数打表(模版)
  16. 如何理解statsmodels.ols的输出结果?ols计算的线性回归结果以及手动计算的结果的对比
  17. NLP(自然语言处理)
  18. 微信公众号点歌台php,【php】微信公众平台接口开发--点歌
  19. 【兑吧360】温暖冬日团圆年,贴心好礼迎新春
  20. netsh - Windows自带的端口转发/端口映射工具

热门文章

  1. 在 Metaverse 中拥抱零售业的未来:你需要知道的一切
  2. 中国移动清退3G进行时 1
  3. 基于SOA架构的开发策略详解
  4. git学习之:如何将远程代码强制拉取同步(覆盖)到本地文件夹
  5. [HNOI 2012]永无乡
  6. Note of Numerical Optimization Ch.3
  7. 信号反射原理及其典型应用
  8. Facebook广告如何精准投放呢?Facebook广告投放方案
  9. 90后天搜人图鉴:有梦想的人运气都不会太差
  10. 树的应用:Tree Traversals Again