生活随笔
收集整理的這篇文章主要介紹了
                                
TTS语音播报
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.                        
 
                                
                            
                            
                            基本上也是屬于一個串口開發,其基本的指令如下
 
 參考代碼:
 
//合成語音播報距離distance
void TTS_Vodeodistance(float distance)
{UART3_Init();        //初始化TTS播放u16 num,dpnum;//  printf("<G>現在開始測試\n");delay_ms(10);        //一定要加延時,確保程序正常進行num = distance;dpnum = (distance-num)*10; delay_ms(10);    //一定要加延時,確保TTS語音正常進行printf("<G>前方有障礙,\n");printf("距離障礙\n");printf("%d \n",num);printf(".\n");printf("%d \n",dpnum);printf("厘米\n");delay_ms(10);printf("<G>向左轉\n");
}/****************************************************************/
//初始化函數UART3_Init(),無形參和返回值
/****************************************************************/
void UART3_Init(void)
{//1.設定通信數據位數,此處設定為8位數據位,無校驗位UART3_CR1 = 0x00;//**************************************************//展開UART3_CR1賦值二進制數值為:0000 0000 //含義:R8=0;    接收數據位不存在第9位//      T8=0;    發送數據位不存在第9位//      UARTD=0; 使能UART功能//      M=0;     一個起始位,8個數據位,n個停止位//                n取決于UART3_CR1中的STOP[1:0]位//      WAKE=0;   UART被空閑總線喚醒//      PCEN=0: (UART模式)奇偶校驗控制被禁止//      PS=0;    偶校驗(校驗功能未啟用)//      PIEN=0;  校驗中斷被禁止//*************************************************//2.設定通信停止位位數,此處設定為1位停止位UART3_CR3 = 0x00;//**************************************************//展開UART3_CR1賦值二進制數值為:0000 0000 //含義:保留位=0;必須保持清零//      LINEN=0;LIN模式被禁止//      STOP=00;配置為“00”,1個停止位//      CLKEN、CPOL、CPHA、LBCL這幾位在UART3上不存在//*************************************************//3.配置通信波特率參數,此處配置為9600bps(16MHz頻率下)UART3_BRR2 = 0x03;UART3_BRR1 = 0x68;//4.使能發送和接收功能UART3_CR2 = 0x0C;//**************************************************//展開UART3_CR2賦值二進制數值為:0000 1100 //含義:TIEN=0;發送中斷被禁止//     TCIEN=0;發送中斷完成被禁止//      RIEN=0;接收中斷被禁止//      ILIEN=0;IDLE中斷被禁止//      TEN=1;發送功能使能//      REN=1;接收功能使能//      RWU=0;(UART模式)正常工作模式//      PIEN=0;未發送斷開字符//*************************************************
}/****************************************************************/
//發送單字符函數UART3_SendByte(),有形參data,無返回值
/****************************************************************/
void UART3_SendByte(u8 data)
{UART3_SR&=0xBF;//清零發送完成標志位TCUART3_DR=data;//發送數據到UART3數據寄存器//while (!(UART3_SR & 0x80));//【舊版語句,有瑕疵】等待發送完畢//原來的語句是&上了0x80,其實是判斷了TXE位,這種方法不嚴謹,因為//發送數據寄存器空不一定說明發送已經完成了,應該判斷TC位才正確while (!(UART3_SR & 0x40));//【新版語句,推薦】等待發送完畢UART3_SR&=0xBF;//清零發送完成標志位TC
}/****************************************************************/
//發送字符重定向函數putchar(),有形參ch,有返回值
/****************************************************************/
int putchar(int ch) 
{  UART3_SendByte((u8)ch);// UART1_SendByte((u8)ch);//將Printf內容發往串口return (ch); 
}
                            
總結
                            
                                以上是生活随笔為你收集整理的TTS语音播报的全部內容,希望文章能夠幫你解決所遇到的問題。
                            
                            
                                如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。