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

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

QQ登錄

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

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

stm32f103RCT6硬件I2C實(shí)現(xiàn)科大訊飛TTS語(yǔ)音合成芯片XFS5152CE的通信

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:725835 發(fā)表于 2020-4-10 10:27 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
折騰了半天,終于用stm32的硬件I2C實(shí)現(xiàn)了科大訊飛TTS語(yǔ)音合成芯片XFS5152CE的通信,XFS5152CE作為I2C接口的從設(shè)備,設(shè)備地址為: 0x80。為保證通訊的穩(wěn)定性,XFS5152CE的I2C接口通信速度要求不高于15KHZ。由于I2C的一般速度是100KHZ,高速傳輸速率400KHZ,所有I2C的速率我設(shè)為10KZH,同時(shí)還要把占空比設(shè)第點(diǎn),否則不行的。
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:328014 發(fā)表于 2020-4-10 13:26 | 只看該作者
能分享一下代碼嗎?
回復(fù)

使用道具 舉報(bào)

板凳
ID:725835 發(fā)表于 2020-4-10 14:26 | 只看該作者
  1. #include "i2c_tts.h"
  2. #include "delay.h"
  3. #include <string.h>
  4. #define I2C_Speed              10000           //快速模式10k
  5. #define I2C1_TTS_SLAVE_ADDRESS7    0x80              //從機(jī)地址
  6. //XFS5152CE作為I2C接口的從設(shè)備,設(shè)備地址為: 0x80。
  7. //為保證通訊的穩(wěn)定性,XFS5152CE的I2C接口通信速度要求不高于15KHZ。
  8. /**************************************************
  9. *函數(shù)名稱(chēng):void I2C_TTS_GPIO_Configuration(void)
  10. *
  11. *入口參數(shù):無(wú)
  12. *
  13. *出口參數(shù):無(wú)
  14. *
  15. *功能說(shuō)明:配置使用的I/ O端口引腳
  16. ***************************************************/
  17. void I2C_TTS_GPIO_Configuration(void)
  18. {
  19.     GPIO_InitTypeDef  GPIO_InitStructure;
  20.     RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE);

  21.     GPIO_InitStructure.GPIO_Pin =  GPIO_Pin_6 | GPIO_Pin_7;  //配置I2C1 PB6-SCL和PB7-SDA
  22.     GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;                   //管腳頻率為50MHZ
  23.     GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_OD;                   //模式為復(fù)用開(kāi)漏輸出,因此兩個(gè)引腳要接上拉電阻
  24.     GPIO_Init(GPIOB, &GPIO_InitStructure);
  25. }
  26. /**************************************************
  27. *函數(shù)名稱(chēng):void I2C_TTS_Configuration(void)
  28. *
  29. *入口參數(shù):無(wú)
  30. *
  31. *出口參數(shù):無(wú)
  32. *
  33. *功能說(shuō)明:I2C Configuration
  34. ***************************************************/
  35. void I2C_TTS_Configuration(void)
  36. {
  37.     I2C_InitTypeDef  I2C_InitStructure;
  38.     //定義I2C初始化結(jié)構(gòu)體I2C_InitStructure
  39.     RCC_APB1PeriphClockCmd(RCC_APB1Periph_I2C1,ENABLE);

  40.     I2C_InitStructure.I2C_Mode = I2C_Mode_I2C;                         //I2C模式
  41.     I2C_InitStructure.I2C_DutyCycle = I2C_DutyCycle_16_9;
  42.     //占空比一定要選I2C_DutyCycle_16_9,不能選I2C_DutyCycle_2,因?yàn)門(mén)TS的速率不能超過(guò)15KHZ
  43.     I2C_InitStructure.I2C_OwnAddress1 = I2C1_TTS_SLAVE_ADDRESS7;         //TTS地址(0x80)使能應(yīng)答
  44.     I2C_InitStructure.I2C_Ack = I2C_Ack_Enable;
  45.     I2C_InitStructure.I2C_AcknowledgedAddress = I2C_AcknowledgedAddress_7bit;        //應(yīng)答7位地址
  46.     I2C_InitStructure.I2C_ClockSpeed = I2C_Speed;

  47.     I2C_Init(I2C1, &I2C_InitStructure);                         //初始化I2C
  48.     I2C_Cmd(I2C1, ENABLE);                                              //使能I2C1
  49. }
  50. /**************************************************
  51. *函數(shù)名稱(chēng):void I2C_TTS_Init()
  52. *
  53. *入口參數(shù):無(wú)
  54. *
  55. *出口參數(shù):無(wú)
  56. *
  57. *功能說(shuō)明:初始化用于I2C TTS驅(qū)動(dòng)的外設(shè)
  58. ***************************************************/
  59. void I2C_TTS_Init()
  60. {
  61.     I2C_TTS_GPIO_Configuration();
  62.     I2C_TTS_Configuration();
  63. }

  64. /**************************************************
  65. *函數(shù)名稱(chēng):void I2C_TTS_Write(u8 *pBuffer, u8 NumByteToWrite)
  66. *
  67. *入口參數(shù):pBuffer指向?qū)懭氲臄?shù)據(jù)緩沖區(qū),NumByteToWrite寫(xiě)入TTS的字節(jié)數(shù)
  68. *
  69. *出口參數(shù):無(wú)
  70. *
  71. *功能說(shuō)明:寫(xiě)入多個(gè)字節(jié)的TTS。
  72. ***************************************************/
  73. void I2C_TTS_Write(u8 *pBuffer, u8 NumByteToWrite)
  74. {
  75.     I2C_GenerateSTART(I2C1, ENABLE);                                 //起始信號(hào)
  76.     while(!I2C_CheckEvent(I2C1, I2C_EVENT_MASTER_MODE_SELECT));   //  測(cè)試和清除EV5

  77.     I2C_Send7bitAddress(I2C1, I2C1_TTS_SLAVE_ADDRESS7, I2C_Direction_Transmitter);         //發(fā)送寫(xiě)TTS地址
  78.     while(!I2C_CheckEvent(I2C1, I2C_EVENT_MASTER_TRANSMITTER_MODE_SELECTED));  // 測(cè)試和清除EV6

  79.     while(NumByteToWrite--)
  80.     {
  81.         I2C_SendData(I2C1, *pBuffer);           //發(fā)送當(dāng)前字節(jié)
  82.         pBuffer++;                       //下一個(gè)被寫(xiě)入的字節(jié)
  83.         while (!I2C_CheckEvent(I2C1, I2C_EVENT_MASTER_BYTE_TRANSMITTED));         // 測(cè)試和清除EV8
  84.     }
  85.     I2C_GenerateSTOP(I2C1, ENABLE);          //停止信號(hào)
  86. }
  87. /***********************************************************
  88. * 名    稱(chēng):  XFS5051 文本合成語(yǔ)音函數(shù)
  89. * 功    能:  發(fā)送合成文本到XFS5051芯片進(jìn)行合成播放
  90. * 入口參數(shù):  *pData:文本指針變量
  91. * 出口參數(shù):  無(wú)
  92. * 說(shuō)    明: 本函數(shù)用于文本合成語(yǔ)音。                                         
  93. **********************************************************/
  94. void TTS_SendFrameInfo(u8 *pData)
  95. {
  96. /****************需要發(fā)送的文本**********************************/
  97.                  u8 Frame_Info[45];
  98.          u8 dataLength = strlen((const char *)pData);        //需要發(fā)送文本的長(zhǎng)度
  99.                  
  100. /*****************幀固定配置信息**************************************/           
  101.                  Frame_Info[0] = 0xFD ;                         //構(gòu)造幀頭FD
  102.                  Frame_Info[1] = 0x00 ;                         //構(gòu)造數(shù)據(jù)區(qū)長(zhǎng)度的高字節(jié)
  103.                  Frame_Info[2] = dataLength+2;                 //構(gòu)造數(shù)據(jù)區(qū)長(zhǎng)度的低字節(jié)
  104.                  Frame_Info[3] = 0x01 ;                         //構(gòu)造命令字:合成播放命令                                  
  105.                  Frame_Info[4] = 0x01;              //文本編碼格式:GBK

  106. /*******************發(fā)送幀信息***************************************/                  
  107.          memcpy(&Frame_Info[5], pData, dataLength);
  108.                  I2C_TTS_Write(Frame_Info,5+dataLength); //發(fā)送幀配置
  109.                
  110. }
復(fù)制代碼
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 国产精品久久久久久久久久妞妞 | 国产精品123区 | 欧美一级黄 | 日韩一区二区在线播放 | 国产区一区二区三区 | 久久久人成影片免费观看 | 亚洲第1页 | 久久久爽爽爽美女图片 | av网址在线播放 | 夜夜爽99久久国产综合精品女不卡 | 天天艹日日干 | 午夜久久久久久久久久一区二区 | 欧美成人精品一区二区三区 | 一级在线观看 | 欧美成人猛片aaaaaaa | 亚洲欧美中文日韩在线v日本 | 美女激情av | 欧美不卡一区二区三区 | 国产亚洲精品美女久久久久久久久久 | 福利视频网址 | 99国产精品99久久久久久 | 久久久91精品国产一区二区三区 | 亭亭五月激情 | 国产区在线视频 | 午夜在线小视频 | 久久一起草 | 亚洲国产一区二区三区 | 青春草在线 | 午夜久久久久久久久久一区二区 | 午夜小视频在线播放 | 久久久区| 一区二区三区av | 亚洲 精品 综合 精品 自拍 | 久久久久国产一区二区三区四区 | 成人在线网| 精品国产乱码久久久久久影片 | 亚洲精品国产a久久久久久 午夜影院网站 | 午夜激情视频在线 | 亚洲精品色 | 国产精品视频在线观看 | 婷婷激情五月网 |