From f97607d36673a17d6c94f4cdee5eda73c109b5e3 Mon Sep 17 00:00:00 2001 From: regg qu <825918830@qq.com> Date: Thu, 18 Jul 2024 08:41:45 +0800 Subject: [PATCH] =?UTF-8?q?=E8=AF=AD=E8=A8=80=E6=A8=A1=E5=9D=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- MDK-ARM/CAR.uvoptx | 56 ++++++++++++++++++++++++++++------------ MDK-ARM/CAR.uvprojx | 22 +++++++++++----- Peripheral/Inc/syn6288.h | 8 ++++++ Peripheral/Src/syn6288.c | 52 +++++++++++++++++++++++++++++++++++++ 4 files changed, 116 insertions(+), 22 deletions(-) create mode 100644 Peripheral/Inc/syn6288.h create mode 100644 Peripheral/Src/syn6288.c diff --git a/MDK-ARM/CAR.uvoptx b/MDK-ARM/CAR.uvoptx index 9521874..b9bf31f 100644 --- a/MDK-ARM/CAR.uvoptx +++ b/MDK-ARM/CAR.uvoptx @@ -580,6 +580,30 @@ 0 0 + + 4 + 21 + 1 + 0 + 0 + 0 + ..\Peripheral\Src\syn6288.c + syn6288.c + 0 + 0 + + + 4 + 22 + 1 + 0 + 0 + 0 + ..\Peripheral\Src\path_plan.c + path_plan.c + 0 + 0 + @@ -590,7 +614,7 @@ 0 5 - 21 + 23 1 0 0 @@ -602,7 +626,7 @@ 5 - 22 + 24 1 0 0 @@ -614,7 +638,7 @@ 5 - 23 + 25 1 0 0 @@ -626,7 +650,7 @@ 5 - 24 + 26 1 0 0 @@ -638,7 +662,7 @@ 5 - 25 + 27 1 0 0 @@ -650,7 +674,7 @@ 5 - 26 + 28 1 0 0 @@ -662,7 +686,7 @@ 5 - 27 + 29 1 0 0 @@ -674,7 +698,7 @@ 5 - 28 + 30 1 0 0 @@ -686,7 +710,7 @@ 5 - 29 + 31 1 0 0 @@ -698,7 +722,7 @@ 5 - 30 + 32 1 0 0 @@ -710,7 +734,7 @@ 5 - 31 + 33 1 0 0 @@ -722,7 +746,7 @@ 5 - 32 + 34 1 0 0 @@ -734,7 +758,7 @@ 5 - 33 + 35 1 0 0 @@ -746,7 +770,7 @@ 5 - 34 + 36 1 0 0 @@ -758,7 +782,7 @@ 5 - 35 + 37 1 0 0 @@ -778,7 +802,7 @@ 0 6 - 36 + 38 1 0 0 diff --git a/MDK-ARM/CAR.uvprojx b/MDK-ARM/CAR.uvprojx index 78067dd..3220bd2 100644 --- a/MDK-ARM/CAR.uvprojx +++ b/MDK-ARM/CAR.uvprojx @@ -11,7 +11,7 @@ 0x4 ARM-ADS 5060960::V5.06 update 7 (build 960)::.\ARMCC - 0 + 1 STM32F103C8 @@ -313,7 +313,7 @@ 1 - 4 + 2 0 0 1 @@ -322,13 +322,13 @@ 0 0 0 - 2 + 3 0 0 1 0 0 - 5 + 3 3 1 1 @@ -498,6 +498,16 @@ 1 ..\Peripheral\Src\servo.c + + syn6288.c + 1 + ..\Peripheral\Src\syn6288.c + + + path_plan.c + 1 + ..\Peripheral\Src\path_plan.c + @@ -600,8 +610,8 @@ - - + + diff --git a/Peripheral/Inc/syn6288.h b/Peripheral/Inc/syn6288.h new file mode 100644 index 0000000..3047d58 --- /dev/null +++ b/Peripheral/Inc/syn6288.h @@ -0,0 +1,8 @@ +#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 \ No newline at end of file diff --git a/Peripheral/Src/syn6288.c b/Peripheral/Src/syn6288.c new file mode 100644 index 0000000..8221b94 --- /dev/null +++ b/Peripheral/Src/syn6288.c @@ -0,0 +1,52 @@ +#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 ; //构造帧头FD + Frame_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(&huart2,Frame_Info,5 + HZ_Length + 1,10000); +} + + +/*********************************************************** +* 名 称: 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(&huart2,Info_data,Com_Len,10000); +} \ No newline at end of file