久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 1471|回復(fù): 0
打印 上一主題 下一主題
收起左側(cè)

關(guān)于STC15f2k60s單片機(jī)使用syn6288語(yǔ)音合成模塊的問(wèn)題

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:1029608 發(fā)表于 2022-5-25 17:43 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
因?yàn)槭褂玫倪@個(gè)單片機(jī)是雙串口,所以和一般的但串口的51單片機(jī)的串口收發(fā)函數(shù)不同;
所以在使用syn6288語(yǔ)音合成模塊的時(shí)候遇到了一些問(wèn)題,在此向大佬求助;
如果有老哥有相關(guān)例程就好了,下面附上我自己修改之后的文件

單片機(jī)源程序如下:
  1. #include        "config.h"
  2. #include        "USART.h"
  3. #include        "delay.h"
  4. #include <string.h>
  5. #include <stdio.h>


  6. #define uchar unsigned char
  7. #define uint unsigned int

  8. /*************        功能說(shuō)明        **************

  9. 雙串口全雙工中斷方式收發(fā)通訊程序。

  10. 通過(guò)PC向MCU發(fā)送數(shù)據(jù), MCU收到后通過(guò)串口把收到的數(shù)據(jù)原樣返回.

  11. ******************************************/

  12. /*************        本地常量聲明        **************/


  13. /*************        本地變量聲明        **************/


  14. /*************        本地函數(shù)聲明        **************/
  15. //SYN6288語(yǔ)音模塊函數(shù)
  16. /*       
  17.     VCC--5V
  18.                 RXD--P1.1
  19.                 TXD--P1.0
  20.                 GND--GND
  21. */
  22. //用串口2發(fā)送一字節(jié)數(shù)據(jù)
  23. void UART2_SendByte(uchar DAT)
  24. {

  25.         TX2_Buffer[COM2.TX_write] = DAT;        //裝發(fā)送緩沖
  26.         if(++COM2.TX_write >= COM_TX2_Lenth)        COM2.TX_write = 0;

  27.         if(COM2.B_TX_busy == 0)                //空閑
  28.         {  
  29.                 COM2.B_TX_busy = 1;                //標(biāo)志忙
  30.                 SET_TI2();                                //觸發(fā)發(fā)送中斷
  31.         }
  32.        
  33. }
  34. //串口2發(fā)送字符串?dāng)?shù)據(jù)
  35. void UART2_SendString(uchar *DAT, uchar len)
  36. {
  37.         uchar i;
  38.         for(i = 0; i < len; i++)
  39.         {
  40.                 TX2_write2buff(*DAT++);
  41.         }
  42. }
  43. //Music:  0:無(wú)背景音樂(lè)  1~15:選擇背景音樂(lè) 語(yǔ)音讀字符串輸出
  44. void SYN_FrameInfo(uchar Music, uchar *HZdata)
  45. {
  46.         /****************需要發(fā)送的文本**********************************/
  47.         uchar  Frame_Info[50];
  48.         uchar  HZ_Length;
  49.         uchar  ecc  = 0;                          //定義校驗(yàn)字節(jié)
  50.         uint i = 0;
  51.         HZ_Length = strlen((char*)HZdata);                         //需要發(fā)送文本的長(zhǎng)度

  52.         /*****************幀固定配置信息**************************************/
  53.         Frame_Info[0] = 0xFD ;                         //構(gòu)造幀頭FD
  54.         Frame_Info[1] = 0x00 ;                         //構(gòu)造數(shù)據(jù)區(qū)長(zhǎng)度的高字節(jié)
  55.         Frame_Info[2] = HZ_Length + 3;                 //構(gòu)造數(shù)據(jù)區(qū)長(zhǎng)度的低字節(jié)
  56.         Frame_Info[3] = 0x01 ;                         //構(gòu)造命令字:合成播放命令
  57.         Frame_Info[4] = 0x01 | Music << 4 ; //構(gòu)造命令參數(shù):背景音樂(lè)設(shè)定

  58.         /*******************校驗(yàn)碼計(jì)算***************************************/
  59.         for(i = 0; i < 5; i++)                                   //依次發(fā)送構(gòu)造好的5個(gè)幀頭字節(jié)
  60.         {
  61.                 ecc = ecc ^ (Frame_Info[i]);                //對(duì)發(fā)送的字節(jié)進(jìn)行異或校驗(yàn)
  62.         }

  63.         for(i = 0; i < HZ_Length; i++)                   //依次發(fā)送待合成的文本數(shù)據(jù)
  64.         {
  65.                 ecc = ecc ^ (HZdata[i]);                                 //對(duì)發(fā)送的字節(jié)進(jìn)行異或校驗(yàn)
  66.         }
  67.         /*******************發(fā)送幀信息***************************************/
  68.         memcpy(&Frame_Info[5], HZdata, HZ_Length);
  69.         Frame_Info[5 + HZ_Length] = ecc;
  70.         UART2_SendString(Frame_Info, 5 + HZ_Length + 1);
  71. }
  72. //語(yǔ)音模塊設(shè)定函數(shù)


  73. /*************  外部函數(shù)和變量聲明 *****************/


  74. /**************語(yǔ)音芯片設(shè)置命令*********************/
  75. uchar SYN_StopCom[] = {0xFD, 0X00, 0X02, 0X02, 0XFD}; //停止合成
  76. uchar SYN_SuspendCom[] = {0XFD, 0X00, 0X02, 0X03, 0XFC}; //暫停合成
  77. uchar SYN_RecoverCom[] = {0XFD, 0X00, 0X02, 0X04, 0XFB}; //恢復(fù)合成
  78. uchar SYN_ChackCom[] = {0XFD, 0X00, 0X02, 0X21, 0XDE}; //狀態(tài)查詢
  79. uchar SYN_PowerDownCom[] = {0XFD, 0X00, 0X02, 0X88, 0X77}; //進(jìn)入POWER DOWN 狀態(tài)命令

  80. void        UART_config(void)
  81. {
  82.         COMx_InitDefine                COMx_InitStructure;                                        //結(jié)構(gòu)定義
  83.         COMx_InitStructure.UART_Mode      = UART_8bit_BRTx;                //模式,       UART_ShiftRight,UART_8bit_BRTx,UART_9bit,UART_9bit_BRTx
  84.         COMx_InitStructure.UART_BRT_Use   = BRT_Timer1;                        //使用波特率,   BRT_Timer1, BRT_Timer2 (注意: 串口2固定使用BRT_Timer2)
  85.         COMx_InitStructure.UART_BaudRate  = 9600ul;                        //波特率, 一般 110 ~ 115200
  86.         COMx_InitStructure.UART_RxEnable  = ENABLE;                                //接收允許,   ENABLE或DISABLE
  87.         COMx_InitStructure.BaudRateDouble = DISABLE;                        //波特率加倍, ENABLE或DISABLE
  88.         COMx_InitStructure.UART_Interrupt = ENABLE;                                //中斷允許,   ENABLE或DISABLE
  89.         COMx_InitStructure.UART_Polity    = PolityLow;                        //中斷優(yōu)先級(jí), PolityLow,PolityHigh
  90.         COMx_InitStructure.UART_P_SW      = UART1_SW_P30_P31;        //切換端口,   UART1_SW_P30_P31,UART1_SW_P36_P37,UART1_SW_P16_P17(必須使用內(nèi)部時(shí)鐘)
  91.         COMx_InitStructure.UART_RXD_TXD_Short = DISABLE;                //內(nèi)部短路RXD與TXD, 做中繼, ENABLE,DISABLE
  92.         USART_Configuration(USART1, &COMx_InitStructure);                //初始化串口1 USART1,USART2

  93.         COMx_InitStructure.UART_Mode      = UART_8bit_BRTx;                //模式,       UART_ShiftRight,UART_8bit_BRTx,UART_9bit,UART_9bit_BRTx
  94.         COMx_InitStructure.UART_BaudRate  = 9600ul;                        //波特率,     110 ~ 115200
  95.         COMx_InitStructure.UART_RxEnable  = ENABLE;                                //接收允許,   ENABLE或DISABLE
  96.         COMx_InitStructure.UART_Interrupt = ENABLE;                                //中斷允許,   ENABLE或DISABLE
  97.         COMx_InitStructure.UART_Polity    = PolityLow;                        //中斷優(yōu)先級(jí), PolityLow,PolityHigh
  98.         COMx_InitStructure.UART_P_SW      = UART2_SW_P10_P11;        //切換端口,   UART2_SW_P10_P11,UART2_SW_P46_P47
  99.         USART_Configuration(USART2, &COMx_InitStructure);                //初始化串口2 USART1,USART2
  100.        
  101. }


  102. /**********************************************/
  103. void  main(void)
  104. {
  105.         UART_config();
  106.         while(1)
  107.         {
  108.                 uchar idata weight_str[50];
  109.                 int m=135;
  110.                 sprintf(weight_str,"%s%d%s","[v6][t2]當(dāng)前的體重為",m,"斤");
  111.                 //選擇背景音樂(lè)2。(0:無(wú)背景音樂(lè)  1-15:背景音樂(lè)可選)
  112.                 //m[0~16]:0背景音樂(lè)為靜音,16背景音樂(lè)音量最大
  113.                 //v[0~16]:0朗讀音量為靜音,16朗讀音量最大
  114.                 //t[0~5]:0朗讀語(yǔ)速最慢,5朗讀語(yǔ)速最快
  115.                 //其他不常用功能請(qǐng)參考數(shù)據(jù)手冊(cè)
  116.                 SYN_FrameInfo(0, weight_str);
  117.                 /*SYN_FrameInfo(0, "[v6][t2]您的體重是");
  118.                 delay(2000);
  119.                 SYN_FrameInfo(0, p);
  120.                 delay(2000);
  121.                 SYN_FrameInfo(0, "斤");*/
  122.                
  123.                 //暫停合成,此時(shí)沒(méi)有用到,用于展示函數(shù)用法
  124.                 //YS_SYN_Set(SYN_SuspendCom);
  125.                 delay_ms(100);
  126.         }

  127. }
復(fù)制代碼

語(yǔ)音程序.7z

42.88 KB, 下載次數(shù): 11

這是我自己修改的程序

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 亚洲精品久久久一区二区三区 | 亚洲 中文 欧美 日韩 在线观看 | 日本高清不卡视频 | av网站在线免费观看 | julia中文字幕久久一区二区 | 福利社午夜影院 | 国产成人网 | 日韩欧美手机在线 | 91九色porny首页最多播放 | 日本人做爰大片免费观看一老师 | 成人在线视频免费观看 | 国产精品一区二区电影 | 一区二区三区日 | 免费超碰| 日韩 国产 在线 | 国产精品免费av | 成人国产免费视频 | 久久精彩| 久久尤物免费一区二区三区 | 综合网伊人 | 色综合99 | 精品福利在线视频 | 亚洲日韩中文字幕一区 | 成人天堂噜噜噜 | 韩日一区二区三区 | 美女二区 | 国产视频一区二区 | 色视频网站免费 | 啪啪毛片 | 国产91亚洲精品一区二区三区 | 亚洲 精品 综合 精品 自拍 | 另类专区成人 | 日本久久久一区二区三区 | 免费观看羞羞视频网站 | 欧美精品久久久久久久久老牛影院 | 欧美一区二区三区四区在线 | 国产精品一区在线观看 | 女女百合av大片一区二区三区九县 | 欧美9999 | 久久人人爽人人爽 | 午夜成人免费视频 |