新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 嵌入式硬件通信接口協(xié)議-UART(三)快速使用串口及應(yīng)用

嵌入式硬件通信接口協(xié)議-UART(三)快速使用串口及應(yīng)用

作者: 時(shí)間:2018-12-19 來源:網(wǎng)絡(luò) 收藏

      2. ANSI C標(biāo)準(zhǔn)中有幾個(gè)標(biāo)準(zhǔn)預(yù)定義宏:

本文引用地址:http://2s4d.com/article/201812/395787.htm

  __LINE__:源代碼中的行號(字符串形式)

  __FILE__:當(dāng)前*.c源碼文件的文件名(字符串形式)

  __DATE__:編譯日期(字符串形式)

  __TIME__:編譯時(shí)間(字符串形式)

  __STDC__:當(dāng)要求程序嚴(yán)格遵循ANSI C標(biāo)準(zhǔn)時(shí)該標(biāo)識被賦值為1;

  __cplusplus:當(dāng)編寫C++程序時(shí)該標(biāo)識符被定義。

  有了上一步實(shí)現(xiàn)printf函數(shù)的重定向到后,基本就可以完美使用進(jìn)行調(diào)試程序。

  調(diào)試過程中可利用ANSIC標(biāo)準(zhǔn)中的內(nèi)置宏,比如__LINE__可以很方便跟蹤代碼執(zhí)行到哪一行。

  


  四、調(diào)試-輸入

  的接收,有輪詢、中斷、DMA等方式。

  輪詢方式,特點(diǎn)是消耗芯片資源,否則容易丟數(shù)據(jù);

  中斷方式,特點(diǎn)是響應(yīng)快、資源占用低;

  DMA方式,各個(gè)芯片的配置不同而無法每款芯片都有該功能,所以代碼兼容性可移植性較差。

  一般地,對輸入的數(shù)據(jù)進(jìn)行分析判斷時(shí),如果是輪詢的方式,則直接在收到后即判斷;中斷和DMA方式,都可以考慮存到buffer后再分析處理。

  


  


  五、初見數(shù)據(jù)協(xié)議解析

  如果是簡單幾個(gè)字符的指令,可以用上述那樣簡單判斷,但是在稍微中等級別的工程項(xiàng)目中,用那樣的方式都已經(jīng)很不便于處理和擴(kuò)展了。

  比如有一串?dāng)?shù)據(jù),并且長度不確定,將會超過10個(gè)字節(jié)、20個(gè)字節(jié)、100個(gè)字節(jié)甚至更多,那么這時(shí)候就必須使用協(xié)議解析的方式。

  通常的,數(shù)據(jù)協(xié)議都會有協(xié)議頭、長度、校驗(yàn)、數(shù)據(jù)內(nèi)容等部分組成,數(shù)據(jù)將以包的形式進(jìn)行收發(fā),這時(shí)候使用解析的方式,對數(shù)據(jù)包進(jìn)行解析。

  這就是廣泛使用的“起始式協(xié)議”。

  實(shí)際的產(chǎn)品中有IC/ID讀卡器模塊的接口協(xié)議:

  


  也有使用在PM2.5傳感器上的:

  


  這些都屬于開發(fā)的模塊產(chǎn)品,對外使用串口通信,并且數(shù)據(jù)協(xié)議采樣了“起始式”的幀結(jié)構(gòu)模式。


上一頁 1 2 下一頁

關(guān)鍵詞: 嵌入式 串口

評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉