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

QQ登錄

只需一步,快速開始

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

語音芯片驅(qū)動(dòng)程序

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:386219 發(fā)表于 2018-12-21 14:50 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
#include "sys.h"
#include "usart.h"
#include "string.h"
#include "stdio.h"
#include "SysTick.h"
#include "yuyin.h"

#define LEN_OFFSET    2  //長度字節(jié)的偏移量(本例中長度不超過255字節(jié),因此只使用1字節(jié)長度)

//數(shù)據(jù)包頭(0xFD + 2字節(jié)長度 + 1字節(jié)命令字 + 1字節(jié)命令參數(shù))
unsigned char head[] = {0xfd,0x00,0x00,0x01,0x00};
    /****/         
u8 text1[]={"今日特價(jià)"};
u8 text2[]={"[v15]白菜九毛8一斤,長豆角兩塊九毛八一斤,土豆一塊九毛八一斤"};
u8 text3[]={"[v15]豬肉十三塊8毛一斤 胡蘿卜一塊九毛八一斤,芹菜一塊九毛八一斤"};
void TTS_Init(void)
{

        GPIO_InitTypeDef  GPIO_InitStructure;
                                       
        RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);      
                                       
        GPIO_InitStructure.GPIO_Pin =GPIO_Pin_0;                           
        GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU; //設(shè)置成上拉輸入
        GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;              
        GPIO_Init(GPIOD, &GPIO_InitStructure);         //根據(jù)設(shè)定參數(shù)初始化GPIOB.0               

}
void Speech(char *buf)
{
        unsigned char i = 0;          //循環(huán)計(jì)數(shù)變量
        unsigned char xor = 0x00;     //校驗(yàn)碼初始化
        unsigned char len=strlen(buf);               
        head[LEN_OFFSET] = len + 3;  //計(jì)算正文長度(1命令字 + 1命令參數(shù) + 文字長度 + 1校驗(yàn)位)

        //發(fā)送數(shù)據(jù)包頭(0xFD + 2字節(jié)長度 + 1字節(jié)命令字 + 1字節(jié)命令參數(shù))
        for(i = 0; i < 5; i++)
        {
                xor ^= head[i];
                uart3_send_char(head[i]);
                delay_ms(2);
           }

        //發(fā)送文字內(nèi)容
        for(i = 0; i < len; i++)
        {
                xor ^= buf[i];
                uart3_send_char(buf[i]);
                delay_ms(2);
        }

uart3_send_char(xor);        //發(fā)送校驗(yàn)位
}
void speech_number(u16 i,u16 len)
{
        switch(i)
        {
                case 0:        Speech("0");break;
                case 1:        Speech("1");break;
                case 2:        Speech("2");break;
                case 3:        Speech("3");break;
                case 4:        Speech("4");break;
                case 5:        Speech("5");break;
                case 6:        Speech("6");break;
                case 7:        Speech("7");break;
                case 8:        Speech("8");break;
                case 9:        Speech("9");break;
                case 10:        Speech("10");break;
                case 11:        Speech("11");break;
                default:Speech("錯(cuò)誤 沒有查找到該數(shù)字 請(qǐng)?jiān)诒竞瘮?shù)中添加");
        }
}

、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、
。h
#ifndef __YUYIN_H__
#define __YUYIN_H__
#include "stm32f10x.h"

/***********************************第一個(gè)程序*********************************************/
extern u8 text1[];
extern u8 text2[];
extern u8 text3[];
extern u8 text4[];
extern u8 text5[];

#define  TTS_Busy        PDin(2)
void TTS_Init(void);
void Speech(char *buf);// 語音程序
void speech_number(u16 i,u16 len);

#endif  


/*--------------------------****main函數(shù)****----------------------------------*/


char yinliang[] = "[v1]";
char yusu[] = "[t5]";
char welcome[] = "歡迎使用";
char thanks[] = "謝謝";
char Moratorium[] = "此卡已凍結(jié)";
char lost[] = "此卡已掛失";
char insufficient_Balance[] = "余額不足";
char _shuaka[] = "請(qǐng)刷卡";
char __qingchu[] = "正在清除請(qǐng)稍后";
char __wancheng[] = "清除成功";
char lcd_error[] = "沒有檢測到液晶屏";
char _tishi_yin[] = "sounde";
char _add_caipin[]="添加成功";
char _button_write_error[]="輸入錯(cuò)誤";
char _button_write_ok[]="修改成功";
char _zlg522s_rx_error[]="請(qǐng)重刷";

int main()
{
        NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//設(shè)置系統(tǒng)中斷優(yōu)先級(jí)分組2^2=4max
  //usart_init();

       
//        TTS_Init();
          usart1_init();
                delay_s(1);
                yuiyn_number(10);
                send_yuyin_n(yinliang);
                while(1)
                {      
       
                        //Speech(text1[] ,3);

                        send_yuyin_n(_tishi_yin);
                                delay_s(2);
                        //send_yuyin_n(__qingchu);
                        send_yuyin_n(insufficient_Balance);
                                                delay_s(5);
                        send_yuyin_n(_button_write_error);
                }
               
return 0;
}
*/


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

使用道具 舉報(bào)

沙發(fā)
ID:1 發(fā)表于 2018-12-21 17:12 | 只看該作者
補(bǔ)全頭文件 工程包 原理圖詳細(xì)說明一下電路連接即可獲得100+黑幣
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表