WT3揪包養行情000T語音分解芯片在收款機中的利用 design先容

一.計劃佈景描寫包養網

跟著科技的飛速成長,人工智能和語音辨認技巧在各個範疇都獲得了普遍利用。此中,文本轉語音(TTS)技巧以其奇特的上風,在收款機語音播報收銀範疇施展著越來越主要的感化。本文將深刻切磋TTS技巧在收款機播報收銀中的詳細利用,包含技巧概述、播報需求、利用上風、內在的事務定制、用戶體驗晉陞以及將來的成長趨向與瞻望。

1.TTS技巧概述

TTS,即文本轉語音技巧,是一種可以或許將盤算機中的文本信息轉化為可聽懂的語音輸入的技巧。它基于進步前輩的語音分解算法,聯合天然說話處置技巧和語音學常識,可以或許天生流利天然的語音。在收款機播報收銀中,TTS技巧可以或許將買賣信息及時轉化為語音,便利顧客清楚買賣概況。

2.收款機播報需求

在商場、超市等批發場合,收款機播報收銀的需求日益凸顯。經由過程語音播報,顧客可以無需檢查屏幕即可清楚買賣金額、找零等信息,年夜年夜進步了購物體驗和效力。同時,對于目力欠安或未便檢查屏幕的顧客來說,語音播報更是供給了極年夜的方便。

3.TTS利用上風

TTS技巧在收款機播報收銀中的利用具有以下上風:起首,及時性強,可以或許及時將買賣信息轉化為語音輸入;其次,正確度高,可以或許確保播報內在的事務的正確性;再次,機動性好,可以依據現實需求定制播報內在的事務;最后,用戶體驗佳,經由過程語音播報進步了顧客購物的包養網便捷性和溫馨性。

4.播報內在的事務定制

在TTS利用中,播報內在的事務的定制是要害一環。收款機可以依據現實需乞降場景設置分歧的播報內在的事務,包含買賣金額、付出方法、找零情形、優惠信息等。同時,還可以依據顧客的偏好和需求停止特性化定制,進步播報內在的事務的針對性和適用性。

5.用戶體驗晉陞

經由過程利用TTS技巧,收款機播報收銀可以明顯晉陞用戶體驗。顧客在購物經過歷程中無需專心檢查屏幕或訊問收銀員,就能獲取到完全的買賣信息。此外,語音播報還可以共同其他交互方法,如語音辨認、觸摸屏等,供給加倍便捷、智能的購物體驗。

TTS(Text To Speech,從文本到語音)技巧作為人機對話的一部門,近年來跟著人工智能的成長獲得了明顯的提高。TTS技巧的利用范圍普遍,包含電子郵件的瀏覽、IVR體系的語音提醒等,并在各個行業中施展側重要感化。關于TTS技巧的成長遠景,有以下幾個方面的趨向:

更高的天然度和真正的感:跟著深度進修和神經收集技巧的不竭提高,TTS體系可以或許進修天然說話中的各類包養網聲響和聲調,天生的語音將更接近人類的語音特征,從而進步語音的天然度和真正的感。

特性化定制:TTS體系無望經由過程進修用戶的語音、聲調、口音等特征,天生更合適用戶需求的語音。這將使得語音分解技巧加倍切近用戶的特性化需求,從而進步用戶體驗。

多說話支撐:跟著跨說話翻譯和多說話交通的需求不竭增添,TTS體系將需求支撐更多的說話和口音。這將推進TTS技巧在多說話場景下的利用和成長。

多樣化的語音作風和感情表達:TTS體系將進一個步驟供給多樣化的語音作風和感情表達才能。用戶可以依據小我藍太太,而是那個小女孩。蘭玉華。它出乎意料地出來了。愛好和需求選擇分歧的語音作風,如年紀、性別、口音等。

普遍的利用範疇:除了傳統的利用範疇,TTS技巧還將進一個步驟利用于虛擬人物、機械人等場景中,為這些範疇帶來加倍真正的的語音交互體驗。

綜上所述,TTS技巧的成長遠景非常遼闊,將來將在進步語音東西的品質和天然度、特性化定制、多說話支撐以及多樣化利用等方面獲得更多的衝破和立異。這將為用戶帶來加倍便捷、高效和真正的的語音交互體驗,推進人機交互技巧的成長。

綜上所述,TTS技巧在收款機播報收銀中具有主要的利用價值和成長遠景。經由過程不竭優化和完美技巧,我們可以等待它在將來為批發行業帶來更多的立異和變更。本計劃采用WT3000T芯片增添語音效能。不單可用耳朵聽語音播報收款的情形等(依用戶需求設置),並且可以播放音樂或英語白話美文。處理了在分歧播報請求下語音占用大批資本空間的題目。可以完成低本錢低功耗的文本轉語音,支撐中英文兩種效能,完成播報語音不受拘束設置裝備擺設無需經由過程進級方法調換語音,給計劃商供給性價比很是高的處理計劃。

WT3000T8是一款效能強盛的高品德語音芯片,采用了高機能32位處置器、最高頻率可達240MHz。WT3000T8高集成度的語音分解芯片,可完成中文、英文字母語音分解;并集成了語音編碼、解碼效能,可支撐用戶停止語音分解和語音播放,具有低本錢、低功耗、高靠得住性、通用性強等特色,現有WT3000T8-32N  QFN32(體積小4*4MM)的封裝芯片。帶有地址播放、插播、單曲輪迴、一切曲目輪迴、隨機播放等效能。31級音量可調、最年夜可以支撐外掛128Mbit的Flash。

深圳唯創知音電子無限公司,位于廣東省深圳市寶安區,1999年景立于廣州。歷經20多年的成長,公司已成為集研發、生孩子、發賣和辦事于一體的,專注于語音技巧研討、語音產物計劃design及把持等軟、硬件design的國度高新技巧企業。在北京、廣州、武漢、上海等地擁有多家子公司,構筑了面向全國的運營和辦事收集,涵蓋家電、醫療器械、安防報警、car 電子、多媒體、通訊、德律風灌音、產業主動化把持、玩具及互動花費類產物等範疇,公司的集成芯片和模塊重要有:播放類、灌音類、MP3類、藍牙WiFi類、語音辨認類。唯創知音曾經構成尺度的品德保證流程和高效的辦事系統。芯片材料可向公司官網或客服討取相干材料,假如有訂制需求,也可向客服徵詢,可供給更多的技巧辦事。

公司製品線重要產物涵蓋有工地平安、電梯平安(語音市場行銷)、叢林防火平安提醒、渣滓分類提醒、文娛、店展迎賓等營業範疇,觸及當局、產業、文教、路況、動力和企業等行業利用。

二.計劃體系構成

2.1體系重要效能

Ø 把持方法:UART(或許SPI),默許波特率9600;

Ø 上電默許不播放;具有BUSY狀況唆使,上電默許BUSY播放時為低電平,不播放時為高電平(可發碼修正默許設置裝備擺設);

Ø 音頻輸入方法,樣品默許DAC輸入;

Ø 支撐語音高品德音頻格局,(8kbps~320kbps)聲響精美,.MP3、.WAV格局;

Ø 支撐指令隨機播放,無縫輪迴播放效能等;

Ø 最年夜可以支撐128Mbit的Flash;

Ø 音量可調,音量品級31級;

Ø 年夜功率IO驅動才能,最高可直接驅動32mA;

Ø 支撐肆意中文文本、英文字母的分解,并且支撐中文與英文字母混讀,英文字母暫不支撐應用標誌完成變速變調;

芯片支撐肆意中文、英文字母的分解,可以采用GB 2312編碼方法。每次分解的文本量最多可達2K字節。

芯片對文本停止剖析,對罕見的數字、號碼、時光、每日天期、懷抱衡符號等格局的文本,芯片可以或許依據內置的文本婚配規定停止對的的辨認和處置。

Ø 支撐多種把持號令

如分解文本、結束分解、暫停分解、恢復分解、狀況查詢、進進休眠形式、叫醒等。 把持器經由過程通信接口發送把持號令可以對芯片停止響應的把持。芯片的把持號令很是簡略易用,例如:芯片可經由過程參考對應的指令闡明即可完成播放提醒音和中文文本合播放成,還可以經由過程標誌文本完成對分解的參數設置。

Ø 支撐多種方法查詢芯片的任務狀況

包含:查詢狀況管腳電平、經由過程讀芯片主動前往的任務狀況字、發送查詢號令取得芯片任務狀況的回傳數據。

Ø 單芯片應用(應用內置容量)時內置語音需出廠前寫進。

2.2體系構造框圖

image.png

2.3重要芯片先容

法式及模塊選型簡介

系列效能代碼通訊方法模塊選型音頻輸入效能闡明WT3000T系列T001UART(9600)M01DAC僅支撐內置Flash播放,可寄存30秒固定語音

2.4 引腳描寫

芯片封裝管腳圖

image.png

PIN-NO.稱號效能闡明0GND芯片底部地(必需接地)1VMID銜接一個1uF內部電容到地2DACLDAC左聲道音頻輸入3DACRDAC右聲道音頻輸入4NC保存此引腳懸空5P27IO口6P26IO口7P25IO口8P24IO口9P21IO口10VCC電源輸出11VREG接一個1uF電容到地12P19IO包養口13P18IO口14P17IO口15P16IO口16VCM參考電壓輸入,接一個0.1uF內部電容到地17XIN無18XOUT無19P37/SPI_DOSPI Flash數據輸入20P包養36/SPI_CLKSPI Flash時鐘21P35/SPI_DISPI Flash數據輸出22P34/SPI_CSSPI Flash片選23ICEDAT/RX1UART_RX,語音芯片數據接受24ICECLK/TX1UART_TX,語音芯片數據發送25UART_RXIO口26UART_TXIO口27P01Busy顯示28P00IO口29P39IO口30NC保存此引腳懸空3包養網1VOUT芯片外部IO電源3.3V輸入,必需接106電容到地32AGND模仿地

2.5 WT3000T M01模塊

管腳描寫

image.png

接口稱號效能闡明15V電源輸出(2.6-5V)2GND電源地3TXUART_TX,通訊端口4RXUART_RX,通訊端口5MIC+未啟用6MIC-未啟用7SPK-模塊外部功放左聲道輸入8SPK+模塊外部功放右聲道輸入

注:MIC接口、天線、晶振部門為兼容其他型號及后續產物迭代進級預留應用,應用TTS效能時無需斟酌這部門,應用串口、喇叭接口即可知足調試。

 三、協定號令格局

芯片內置尺度UART異步串口接口,默許波特率9600,屬于3.3V TTL電平接口。通信數據格局是:肇端位:1位;數據位:8位;奇偶位:無;結束位:1位。應用電腦串口調試助手,需求對的設置串口的參數,設置如圖:

image.png

指令發碼格局

肇端碼幀長度流水號應對標志數據幀起源N個號令信息累加和校驗停止碼7E見下文見下文見下文見下文見下文見下文EF

指令前往碼格局

肇端碼幀長度流水號應對標志數據幀起源N個號令信息累加和校驗停止碼7E見下文見下文見下文見下文見下文見下文EF

注:履行完每條寫號令之后,依照通訊協定格局前往該號令絕對應的成果碼。

幀長度:2字節,指幀長度+流水號+應對標志+數據幀起源+N個號令信息+累加和校驗和的長度,幀長度高位在前低位在后;

流水號:1字節,每次一幀數據主動加1,防止接受重復的數據,雷同流水號的數據為重復數據應做丟棄;

應對標志:1字節,固定填00;

數據幀起源:1字節,02為TTS芯片端,03為MCU芯片端;

N個號令信息:由N個號令信息構成,1個號令信息內在的事務為2字節號令+1字節數據長度+N字節數據,單個號令信息最年夜支撐255個字節數據,但支撐同時傳遞多個雷同的號令攜帶分歧信息(前往碼的此處信息與發碼的稍微有差別,概況見《WT3000Tx語音分解指令表》先容);

累加和校驗:是指幀長度+流水號+應對標志+數據幀起源+N個號令信息和的低字節。

3.1 GB 2312編碼簡介

GB 2312碼是中華國民共和國國度尺度漢字信息交流用編碼,全稱《信息交流用漢字編碼字符集 基礎集》,尺度號為GB 2312-80(GB是“國標”二字的漢語拼音縮寫)包養網,由中華國民共和國國度尺度總局發布,1981年5月1日實行。習氣上稱國標碼、GB碼,或區位碼。它是一個簡化字漢字的編碼,通行于中國年夜海洋包養網區。新加坡等地也應用這一編碼。包養網“GB 2312-80收錄簡化漢字及普通符號、序號、數字、拉丁字母、日文化名、希臘字母、俄文字母、漢語拼音符號、漢語注音字母,共7445個圖形字符。此中漢字以外的圖形字符682個,漢字6763個。GB 2312-80規則,“對肆意一個圖形字符都采用兩個字節(Byte)表現。每個字節均采用GB 1988-80及GB 2311-80中的七位編碼表現。兩個字節中後面的字節為第一字節,后面的字節為第二字節。”習氣上稱第一字節為“高字節”,第二字節為“低字節”。

辨認類型辨認編碼范圍備注半角ASCII符號區0x00——0x7F全角符號區0xA1A0——0xA3FE漢字區0xB0A1——0xF7FE共6768個漢字

3.2 UTF8編碼簡介

UTF-8(8位元,UniversalCharacterSet/UnicodeTransformationFormat)是針對Unicode的一種可變長度字符編碼。它可以用來表現Unicode尺度中的任何字符,並且其編碼中的第一個字節仍與ASCII相容,使得本來處置ASCII字符的軟件無須或只停止少部門修正后,便可持續應用。是以,它逐步成為電子郵件、網頁及其他存儲或傳送文字的利用中,優先采用的編碼。

UTF-8是一種變長字節編碼方法。對于某一個字符的UTF-8編碼,假如只要一個字節則其最高二進制位為0;假如是多字節,其第一個字節從最高位開端,持續的二進制位值為的個數決議了其編碼的位數,其余各字節均以10開首。

UTF-8最多可用到6個字節。

1字節 0xxxxxxx

2字節 110xxxxx 10xxxxxx

3字節 1110xxxx 10xxxxxx 10xxxxxx

4字節 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx包養

5字節 111110xx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx

6字節 1111110x 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx

辨認類型辨認編碼范圍備注全角符號區單字節UTF8字符中的“對應Unicode的0x00區的內在的事務”

雙字節UTF8字符中的“對應Unicode的部門00區和所有的03區的符號”漢字區三字節UTF8字符中的“對應Unicode的:20區以上的符號+漢字”共20902個漢字

 四、語音分解效能應用方式

4.1 簡略挪用方法

簡略挪用是指用戶不消關懷芯片以後的任務狀況,只需求發送文本到芯片分解為語音輸入。

在簡略挪用情形下,上位機只需與芯片之間樹立起UART通訊方法,即可發送分解號令來完成文本的分解,上位機不需求判定芯片的回傳數據或狀況引腳的輸入。

留意:如前一幀文本還沒有分解完,就再次發送文本到芯片會中止上次分解,而履行新的分解。

4.2 尺度挪用方法

若上位機需求確保前次文本被完全分解之后,再發送分解號令幀分解下一段文本,則需求經由過程回傳斷定芯片的任務狀況。詳細方式舉例如下:利用中需求分解的文本為5k字節,跨越了WT3000T8芯片一個號令幀所能包容的最年夜文本長度(文本最多支撐2016個字節),這時需求分屢次給WT3000T8芯片發送文本信息。法式經過歷程如下:

1、上位機先給WT3000T8芯片發送一個文本分解號令幀,攜帶不跨越2016個字節的文本;

2、上位機等候WT3000T8芯片主動前往的回傳信息,直到收到回傳數據,闡明後面的

文本已分解終了;或應用查詢芯片的狀況引腳、發送查詢號令的方式,確認上一幀文本分解終了。

3、上位機向芯片再次發送一個文本分解號令幀,發送出剩下的文本,重復123流程直至一切數據發完。

4.3查詢芯片任務狀況的方式

經由過程硬件和軟件兩種方法查詢WT3000T8芯片的任務狀況。

硬件方法:經由過程查詢輸入引腳BUSY的電平,來判定芯片的任務狀況。當BUSY處于低電日常平凡,表白芯片正在分解文本;當BUSY處于高電日常平凡,表白芯片處于空閑狀況。

軟件方法:經由過程發送狀況查詢號令幀來查詢芯片的任務狀況。當收到上位機發送的狀況查詢號令幀后,芯片會主動向上位機發送以後芯片狀況的回傳。上位機依據芯片狀況的回傳數據來判定以後芯片是處于空閑狀況仍是文本分解狀況。

4.4固定語音效能

WT3000T-T001預留了30秒寄存固定語音,對批量采購的客戶可供給提醒音添加、定制的辦事。

留意:若有添加提醒音的需求,需求提交與商務職員溝通,供給音頻和填寫響應的材料。

固定語音的特徵:

固定語音支撐MP3格局,最年夜支撐WAV格局,假如尋求加倍好的音質和音色所帶來的更好的體驗,固定語音可以知足客戶的這些高需求。比擬于WT3000T-T001系列,WT3000T-T002系列芯片可以供給更年夜的flash空間來寄存這些固定語音。

WT3000T-T002系列可供給最高32MBit的語音空間,最多可以放置近100首MP3固定語音。

WT3000T-T002供給以下在ETC應用場景的高品德的內置語音示例:

包養網1靜音  2後方  3米  4公里  5車道  6有車輛產生毛病  7慢行留意平安8產生變亂9途徑舉措措施毛病10有停駛車輛11有車輛行駛遲緩12請留意堅持車距13有車輛逆行14車道行駛遲緩15車道擁堵16有車輛超速行駛17變道時請留意平安18有緊迫車輛行駛包養網19請留意避讓應急車道20有年夜貨車行駛21請留意行車平安22車輛產生火警23請繞道行駛24路面產生火警25路邊產生火警2包養網6地道內產生火警27途徑舉措措施產生火警28產生地質災難29產生水患30有暴雨氣象31有冰雹氣象32有雷電氣象33有年夜風氣象34有年夜霧氣象35有低溫氣象36有干旱氣象37有暴雪氣象38有冷潮氣象39有霜凍氣象40有霧霾氣象41有沙塵暴氣象42有團霧氣象43有橫風氣象44有物體散落45有液體灑落46無機油泄露47途徑有妨礙物48留意避讓途徑行人49留意避讓途徑植物50途徑有積水51途徑濕滑52途徑結冰    53途徑塌陷  54途徑升沉    55途徑施工  56留意慢行或繞道行駛  57途徑斷路施工  58有體裁貿易運動  59有交際政務運動  60產生燃氣變亂  61請結束行駛  62產生化學淨化  63產生爆炸變亂  64產生電力變亂  65產生暴力事務66路況集中梗塞67買賣金額68標簽裝配69已預激活70能否激活71標簽已激活72電量缺乏73讀卡過錯74ESAM鎖定75ESAM犯錯76操縱掉敗77聯絡接觸運營商78請插卡79請記賬80M1卡81叫醒82藍牙已翻開83藍牙犯錯84買賣勝利85余額86版本87088189290391492593694795896997元98點99V100一聲短“滴”101一聲長“滴”102萬103千104百105拾106請充電

4.5 測試軟件

WT3000T-T001供給了一款好用的便利的上位機軟件來停止疾速測試和演示。

image.png

上位機演示軟件操縱界面

1. 用串口調試東西銜接好WT3000T-T001模塊,插到電腦上,雙擊翻開演示軟件。

image.png

上位機演示軟件圖標

2. 設置好波特率9600,然后點擊翻開串口使模塊和上位機銜接勝利。

3. 主播選擇:可以選擇分歧的主播音色,支撐男聲女聲。

4. 語速:可以調理分解語音的語速速率。

5. 語調:可以使主播的音色變得清亮透亮或許雄壯厚重。

6. 音量:調理分解的音量鉅細。

只需求在文本框中以打字的方法輸出想要播出的文本內在的事務,點擊天生,再點擊發送就可以聽到模塊播出方才輸出的文本內在的事務了。

別的,在發包養“送數據和接受數據一欄里還能直接復制天生的串口16進制數據到法式代碼中直接應用,疾速驗證題目。

 五、串口把持示例代碼

5.1 函數講明,構造體講明

#include #include  void uart_recive(const unsigned char *packet, unsigned short size);void keyid_confirm(unsi丈夫明顯的拒絕讓她感到尷尬和委屈,不知道自己做錯了什麼?還是他真的那麼討厭她,那麼討厭她?gned short common_id,unsigned char source,void *data);unsigned char check_data(const unsigned char *packet, unsigned short size);void uart_send(void);#define  h_16(h,l)  (((h)<<8)|l)struct hex16_format{    unsigned char  head;       //包頭    unsigned char  len_h;      //    unsigned char  len_l;      //len_h len_l包總長度    unsigned char  listnum;    //流水號    unsigned char  flag;       //包序&應答標志    unsigned char  source;     //數據來源    unsigned char  payload[0]; //數據開始};struct keyid_format {    unsigned char  id_h;        //KEYID  高字節    unsigned char  id_l;        //KEYID  低字節    unsigned char  length;      //KEYID  數據長度    unsigned char  data[0];     ////KEYID  數據};

函數講明,接受構造體講明

//主函數int main(int argc, char **argv){    unsigned char uart_rx_test[] = {0x7E ,0x00 ,0x0F ,0x01 ,0x00 ,0x03 ,0x03 ,0xE8 ,0x06 ,0x31 ,0x32 ,0x33 ,0x34 ,0x35 ,0x36 ,0x39 ,0xEF};//播放123456    uart_recive(uart_rx_test,sizeof(uart_rx_test));//接受數據    return 0;}

main函數

5.2 串口接受數據處置

//packet:串口接受到的一包數據//size:串口這一報數據的長度void uart_recive(const unsigned char *packet, unsigned short size) ///一包數據接受處置及  應對輸入{    struct hex16_format *p1 = (struct hex16_format *)packet;    unsigned char ret=0;    //檢測這一包數據能否可用    ret=check_data(packet,size);    if(ret)    {       printf("debug:check_data err=%d",ret); 包養      return;    }    printf("check_data OK!");    //數據可用,開端解析KEYID    unsigned int keyid_address=6;    //輪迴掃描一切keyID    while((keyid_address+3)<(size-2))    {

        struct keyid_format *cmd = (struct keyid_format     *)(&packet[keyid_address]);//packet[6]恰好u16對齊,否則會內存對齊異常招致出題目

        unsigned short common_id=0;        common_id=((cmd->id_h)<id_l;        //假如讀取到了末尾則加入掃描        if(cmd->length+3+keyid_address>size-2)        {

            printf(“while    end=%d,keyid_address=%d,size=%d
“,cmd->length,keyid_address,size);

            break; “蕭拓實在不能放棄花姐,還想娶花姐為妻,蕭拓徵求了夫人的同意。”奚世勳猛地站起身來,鞠躬90度里斯向蘭媽媽問道。       }        printf("ID=0x%04X,LEN=%d,DATA=%s",common_id,cm包養d->length,cmd->data);        //依據ID停止分類處置        keyid_confirm(common_id,p1->source,cmd);        //KEYID地址往下預備讀取下一個KEYID        keyid_address += cmd->length+3;    }}

接受串口數據處置數據

  unsigned char check_data(const unsigned char *packet, unsigned short size) ///數據校驗:1數據頭異常 2數據開頭異常 3總長度異常 4校驗異常{    struct hex16_format *p0 = (struct hex16_format *)packet;    unsigned char err=0;    unsigned short pack_len=0;    //獲包養網取幀長度    pack_len=h_16(p0->len_h,p0->len_l);//((p0->len_h)<len_l;    printf("head=%02X len=%d size - 2=%d",packet[0],pack_len,size - 2);//log_info("head=%02X len=%d size=%d",p0->head,p0->len,size);    //數據頭假如不是0x7e就過錯    if(packet[0]!=0x7e)        err=1;    //數據開頭不是0xef就過錯    else if(packet[size-1]!=0xef)        err=2;    //獲取的幀長度不等于數據長度就過錯    else if((pack_len!=0)&&(pack_len!=(size-2)))        包養err=3;    else  ///SUM校驗盤算    {        unsigned short i=0;        unsigned char sum=0;        for(i=1;i<size-2;i++)        {            sum+=packet[i];        }        if(sum!=packet[size-2])//校驗不正確就錯誤        {            err=4;            printf("sum=0x%02X,packet[%d]=0x%02X",sum,size-2,packet[size-2]);        }    }    return err;}

校驗接受到的串口這一包數據

   void keyid_confirm(unsigned short common包養網_id,unsigned char sou包養網rce,void *data){    struct keyid_format *cmd = data;    printf("Chip common_id=%d",common_id);    switch (common_id)    {    case 0x03e8/* TTS善良,那就最好了。如果不是他,他可以在感情還沒深入之前,斬斷她的爛攤子,然後再去找她。一個乖巧孝順的妻子回來侍語音分解KEYID */:       包養 /* code */        user_deal();//用戶接受處置        break;    default:        break;    }}

接受的KEYID分類處置 

 5.3 依據串口協定發送數據

#define USER_KEY_ID 1000struct user_format {    unsigned char   head;    unsigned char   len_h;    unsigned char   len_l;    unsigned char   flows;      //流水號    unsigned char   sta;        //    unsigned char   soure;      //起源    unsigned char   id_h;      //KEYID高字節    unsigned char   id_l;      //KEYID低字節    unsigned char   len;     包養   //KEYID數據長度    unsigned char   status;     //KEYID數據    unsigned char   sum;    unsigned char   end;};

構造體講明

void uart_send(void){    printf("uart_send:");    static unsigned char flows = 0;     struct user_format user_key = {0};    //===============包養================================================//    //包頭    user_key.head = 0x7e;    //一包數據長度    user_key.len_h = (sizeof(struct user_format) - 2) >> 8;    user_key.len_l = (sizeof(struct user_format) - 2);    //流水號    user_key.flows = flows;    //起源    user_key.soure = 0x03;    //回應版主KEYID和數據    user_key.id_h = (unsigned char) (USER_KEY_ID >> 8);    user_key.id_l = (unsigned char) (USER_KEY_ID);    user_key.len = 0x01;    user_key.status = 0x01;    //校驗和    for(int i = 1; i < sizeof(struct user_format)-2 ; i++)    {        user_key.sum += ((unsigned回祁州下一個?路還長,一個孩子不可能一個人去。”他試圖說服他的母親。 char *)(&user_key))[i];    }    user_key.end = 0xef;//結尾    //=============================================================包養=//    flows++;//流水號    //模擬發送    for(int j = 0; j < sizeof(struct user_format) ; j++)    {        printf("%4x",((unsigned char *)(&u的馬,馬陌生人在船上,直到那個人停下來。ser_key))[j]);    }    printf("");}串口發送示例 

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *