久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费
標題:
關于STC15f2k60s單片機使用syn6288語音合成模塊的問題
[打印本頁]
作者:
XiaoBai_Oneday
時間:
2022-5-25 17:43
標題:
關于STC15f2k60s單片機使用syn6288語音合成模塊的問題
因為使用的這個單片機是雙串口,所以和一般的但串口的51單片機的串口收發函數不同;
所以在使用syn6288語音合成模塊的時候遇到了一些問題,在此向大佬求助;
如果有老哥有相關例程就好了,下面附上我自己修改之后的文件
單片機源程序如下:
#include "config.h"
#include "USART.h"
#include "delay.h"
#include <string.h>
#include <stdio.h>
#define uchar unsigned char
#define uint unsigned int
/************* 功能說明 **************
雙串口全雙工中斷方式收發通訊程序。
通過PC向MCU發送數據, MCU收到后通過串口把收到的數據原樣返回.
******************************************/
/************* 本地常量聲明 **************/
/************* 本地變量聲明 **************/
/************* 本地函數聲明 **************/
//SYN6288語音模塊函數
/*
VCC--5V
RXD--P1.1
TXD--P1.0
GND--GND
*/
//用串口2發送一字節數據
void UART2_SendByte(uchar DAT)
{
TX2_Buffer[COM2.TX_write] = DAT; //裝發送緩沖
if(++COM2.TX_write >= COM_TX2_Lenth) COM2.TX_write = 0;
if(COM2.B_TX_busy == 0) //空閑
{
COM2.B_TX_busy = 1; //標志忙
SET_TI2(); //觸發發送中斷
}
}
//串口2發送字符串數據
void UART2_SendString(uchar *DAT, uchar len)
{
uchar i;
for(i = 0; i < len; i++)
{
TX2_write2buff(*DAT++);
}
}
//Music: 0:無背景音樂 1~15:選擇背景音樂 語音讀字符串輸出
void SYN_FrameInfo(uchar Music, uchar *HZdata)
{
/****************需要發送的文本**********************************/
uchar Frame_Info[50];
uchar HZ_Length;
uchar ecc = 0; //定義校驗字節
uint 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;
UART2_SendString(Frame_Info, 5 + HZ_Length + 1);
}
//語音模塊設定函數
/************* 外部函數和變量聲明 *****************/
/**************語音芯片設置命令*********************/
uchar SYN_StopCom[] = {0xFD, 0X00, 0X02, 0X02, 0XFD}; //停止合成
uchar SYN_SuspendCom[] = {0XFD, 0X00, 0X02, 0X03, 0XFC}; //暫停合成
uchar SYN_RecoverCom[] = {0XFD, 0X00, 0X02, 0X04, 0XFB}; //恢復合成
uchar SYN_ChackCom[] = {0XFD, 0X00, 0X02, 0X21, 0XDE}; //狀態查詢
uchar SYN_PowerDownCom[] = {0XFD, 0X00, 0X02, 0X88, 0X77}; //進入POWER DOWN 狀態命令
void UART_config(void)
{
COMx_InitDefine COMx_InitStructure; //結構定義
COMx_InitStructure.UART_Mode = UART_8bit_BRTx; //模式, UART_ShiftRight,UART_8bit_BRTx,UART_9bit,UART_9bit_BRTx
COMx_InitStructure.UART_BRT_Use = BRT_Timer1; //使用波特率, BRT_Timer1, BRT_Timer2 (注意: 串口2固定使用BRT_Timer2)
COMx_InitStructure.UART_BaudRate = 9600ul; //波特率, 一般 110 ~ 115200
COMx_InitStructure.UART_RxEnable = ENABLE; //接收允許, ENABLE或DISABLE
COMx_InitStructure.BaudRateDouble = DISABLE; //波特率加倍, ENABLE或DISABLE
COMx_InitStructure.UART_Interrupt = ENABLE; //中斷允許, ENABLE或DISABLE
COMx_InitStructure.UART_Polity = PolityLow; //中斷優先級, PolityLow,PolityHigh
COMx_InitStructure.UART_P_SW = UART1_SW_P30_P31; //切換端口, UART1_SW_P30_P31,UART1_SW_P36_P37,UART1_SW_P16_P17(必須使用內部時鐘)
COMx_InitStructure.UART_RXD_TXD_Short = DISABLE; //內部短路RXD與TXD, 做中繼, ENABLE,DISABLE
USART_Configuration(USART1, &COMx_InitStructure); //初始化串口1 USART1,USART2
COMx_InitStructure.UART_Mode = UART_8bit_BRTx; //模式, UART_ShiftRight,UART_8bit_BRTx,UART_9bit,UART_9bit_BRTx
COMx_InitStructure.UART_BaudRate = 9600ul; //波特率, 110 ~ 115200
COMx_InitStructure.UART_RxEnable = ENABLE; //接收允許, ENABLE或DISABLE
COMx_InitStructure.UART_Interrupt = ENABLE; //中斷允許, ENABLE或DISABLE
COMx_InitStructure.UART_Polity = PolityLow; //中斷優先級, PolityLow,PolityHigh
COMx_InitStructure.UART_P_SW = UART2_SW_P10_P11; //切換端口, UART2_SW_P10_P11,UART2_SW_P46_P47
USART_Configuration(USART2, &COMx_InitStructure); //初始化串口2 USART1,USART2
}
/**********************************************/
void main(void)
{
UART_config();
while(1)
{
uchar idata weight_str[50];
int m=135;
sprintf(weight_str,"%s%d%s","[v6][t2]當前的體重為",m,"斤");
//選擇背景音樂2。(0:無背景音樂 1-15:背景音樂可選)
//m[0~16]:0背景音樂為靜音,16背景音樂音量最大
//v[0~16]:0朗讀音量為靜音,16朗讀音量最大
//t[0~5]:0朗讀語速最慢,5朗讀語速最快
//其他不常用功能請參考數據手冊
SYN_FrameInfo(0, weight_str);
/*SYN_FrameInfo(0, "[v6][t2]您的體重是");
delay(2000);
SYN_FrameInfo(0, p);
delay(2000);
SYN_FrameInfo(0, "斤");*/
//暫停合成,此時沒有用到,用于展示函數用法
//YS_SYN_Set(SYN_SuspendCom);
delay_ms(100);
}
}
復制代碼
語音程序.7z
2022-5-26 21:09 上傳
點擊文件名下載附件
42.88 KB, 下載次數: 11
這是我自己修改的程序
歡迎光臨 (http://www.zg4o1577.cn/bbs/)
Powered by Discuz! X3.1
主站蜘蛛池模板:
五月婷婷在线播放
|
国产精品免费看
|
91婷婷韩国欧美一区二区
|
欧美在线网站
|
一级毛片播放
|
天天综合国产
|
国产欧美日韩精品在线观看
|
91精品久久久久
|
日日夜夜精品免费视频
|
五月天婷婷丁香
|
免费观看一级特黄欧美大片
|
亚洲天天干
|
黄色在线免费观看
|
亚洲视频一区在线观看
|
天天曰夜夜操
|
欧美日韩在线观看一区
|
久久一区视频
|
国产一级片免费视频
|
日本黄色短片
|
亚洲性在线
|
亚洲巨乳自拍在线视频
|
波多野结衣电影一区
|
日韩一区二区三区在线
|
中文字幕啪啪
|
久久99久久99精品免视看婷婷
|
成人二区
|
婷婷精品
|
久久国产成人
|
成人av观看
|
国产精品视频一区二区三区四蜜臂
|
欧美一区二区另类
|
男女羞羞的网站
|
久热精品视频
|
久久久性色精品国产免费观看
|
欧美精品91
|
久久久www成人免费精品
|
精品一区二区三区在线观看
|
国产精品一区二区三区在线
|
秋霞精品
|
日本 欧美 国产
|
欧美自拍一区
|