yincheng.zhong
2024-05-07 36667ff9eed83df5f6460d596220908afc9b9a11
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
46
47
48
49
50
51
52
53
54
55
56
57
#include "syn6288.h"
#include "usart.h"
#include "string.h"
extern UART_HandleTypeDef huart5;
//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 ;             //构造帧头FD
  Frame_Info[1] = 0x00 ;             //构造数据区长度的高字节
  Frame_Info[2] = HZ_Length + 3;         //构造数据区长度的低字节
  Frame_Info[3] = 0x01 ;             //构造命令字:合成播放命令
  Frame_Info[4] = 0x01  ; //构造命令参数:背景音乐设定
 
  /*******************校验码计算***************************************/
  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;
  delay_ms(800);
  HAL_UART_Transmit(&huart5,Frame_Info,5 + HZ_Length + 1,3000);
//  delay_ms(1000);
  //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(&huart6,Info_data,Com_Len,10000);
// // USART3_SendString(Info_data, Com_Len);
//}