<acronym id="s8ci2"><small id="s8ci2"></small></acronym>
<rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
<acronym id="s8ci2"></acronym>
<acronym id="s8ci2"><center id="s8ci2"></center></acronym>
0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

嵌入式硬件通信串口啟用流程

冬至子 ? 來源:帝核 ? 作者:中斷 ? 2023-07-05 17:22 ? 次閱讀

一、串口啟用流程

開講前,先找幾款芯片的串口demo程序瞄一眼。

依次有STM32的V3.5標準庫、nRF52832的官方demo以及51核的STC15系列單片機的官方DEMO。

圖片

圖片

圖片

從以上的部分demo例程來看,在啟用串口的時候,需要配置的那幾個參數有波特率、數據位、校驗位、停止位等,從demo的源碼中也是能夠體現出來的。

而略有不同的是,在引腳配置靈活的ARM中,需要針對引腳進行配置。

二、驗證輸入輸出

完成了串口的初始化,即可對輸入輸出進行操作,來驗證串口是否可以正常的發送和接收數據。

一般的,最直接的方式就是向輸出寄存器寫入數據,就可以讓芯片去完成UART信號輸出到對應的引腳上。

如下圖依次有STM32的V3.5標準庫、nRF52832的官方demo以及51核的STC15系列單片機的官方DEMO。

圖片

圖片

圖片

驗證串口的輸出,即在串口初始化成功后,對串口的輸出寄存器寫入數據,而芯片引腳則使用USB轉TTL模塊連接,USB端插入計算機的USB口,利用計算機的串口助手軟件實現對數據的收發。

三、調試-輸出

開發調試過程中,輸出的內容基本上就是想查看的變量值、代碼的執行位置跟蹤、算法或者某些運算的結果等等。這些輸出,僅用于調試階段,而在人機調試過程中,使用計算機的串口助手軟件進行交互,則輸出的數據應該便于識讀和判斷。

1. C庫函數printf格式輸出重定向到串口輸出

輸出串口數據過程中,需要向寄存器逐字節傳入數據的,而在傳送之前必不可少的,就是將要發送的數據、字符放到同一個Buffer后,執行輪詢的方式傳送直到buffer內容全部被傳送。

而這個“放”的過程也是需要做些計算、判斷,尤其是增加必要的字符來描述輸出信息,保證信息的可識讀。

在C標準庫printf函數就有格式輸出的功能,利用這個接口更便于調試輸出這個過程。

這就需要將printf函數重定向到串口輸出上!

實現重定向只需3步:

  1. Options for target選項卡內勾選UseMicroLIB
    • 在串口實現的 .c文件內,將stdio.h文件和stdarg.h文件包含進來* *
  2. 重新定義int fputc函數的內部實現

圖片

圖片

完成以上3步,即可利用printf函數來格式化輸出,并且能夠在串口上接收到。

2. ANSI C標準中有幾個標準預定義宏:

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

FILE :當前*.c源碼文件的文件名(字符串形式)

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

TIME :編譯時間(字符串形式)

STDC :當要求程序嚴格遵循ANSI C標準時該標識被賦值為1;

__cplusplus:當編寫C++程序時該標識符被定義。

有了上一步實現printf函數的重定向到串口后,基本就可以完美使用串口進行調試程序。

調試過程中可利用ANSIC標準中的內置宏,比如__LINE__可以很方便跟蹤代碼執行到哪一行。

圖片

四、調試-輸入

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

輪詢方式,特點是消耗芯片資源,否則容易丟數據;

中斷方式,特點是響應快、資源占用低;

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

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

圖片

圖片

五、初見數據協議解析

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

比如有一串數據,并且長度不確定,將會超過10個字節、20個字節、100個字節甚至更多,那么這時候就必須使用協議解析的方式。

通常的,數據協議都會有協議頭、長度、校驗、數據內容等部分組成,數據將以包的形式進行收發,這時候使用解析的方式,對數據包進行解析。

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

實際的產品中有IC/ID讀卡器模塊的接口協議:

圖片

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

圖片

這些都屬于開發的模塊產品,對外使用串口通信,并且數據協議采樣了“起始式”的幀結構模式。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 寄存器
    +關注

    關注

    30

    文章

    5164

    瀏覽量

    118135
  • STM32單片機
    +關注

    關注

    58

    文章

    546

    瀏覽量

    58076
  • 射頻讀卡器
    +關注

    關注

    0

    文章

    4

    瀏覽量

    6543
  • nRF52832
    +關注

    關注

    11

    文章

    206

    瀏覽量

    32226
  • 嵌入式通信
    +關注

    關注

    0

    文章

    2

    瀏覽量

    2119
收藏 人收藏

    評論

    相關推薦

    基于嵌入式WinCE與MSP430單片機多串口通信設計

    統一的轉化,特別適用于遠程、多機串口通信,具有重要的使用價值和應用前景?! ? 硬件平臺  1)WinCE嵌入式采用友善之臂mini2440開發板作為
    發表于 08-10 09:15

    嵌入式系統中串口通信幀的同步方法

    引 言 串口通信是日前單片機和DSP等嵌入式系統之間,以及嵌入式系統與PC機或無線模塊之間的一種非常重要且普遍使用的通信方式在
    發表于 10-09 19:17

    嵌入式通信

    系統等組成, 它是集軟硬件于一體的可獨立工作的“器件”。嵌入式處理器主要由一個單片機或微控制器(MCU) 組成。相關支撐硬件包括顯示卡、存儲介質、通信設備、***等?! ?/div>
    發表于 07-05 10:01

    嵌入式硬件通信接口協議SPI講解

    嵌入式硬件通信接口協議-SPI(一)協議基礎
    發表于 07-19 09:03

    串口通信系統的設計流程是什么?

    本文設計了一種基于PowerPC嵌入式內核MPC565和串口模塊EMM-8M-XT的多串口通信系統,給出了系統總體的硬件架構和軟件設計
    發表于 09-05 07:58

    ZYNQ嵌入式系統的開發流程

    部分的始發點。通過本次實驗我們將了解 ZYNQ 嵌入式系統的開發流程,熟悉 ZYNQ 嵌入式最小系統的搭建。本章包括以下幾個部分:1.1 簡介1.2 實驗任務1.3 硬件設計1.4
    發表于 10-27 07:50

    嵌入式開發流程

    嵌入式開發流程一般是在PC機的Windows系統下安裝Ubuntu虛擬機,搭建嵌入式開發環境及交叉編譯環境,開發完成后,編譯得到bin文件,然后在Windows下將bin文件通過串口
    發表于 11-05 06:06

    嵌入式開發流程是怎樣的?

    嵌入式開發環境及交叉編譯環境,開發完成后,編譯得到bin文件,然后在Windows下將bin文件通過串口或網絡下發到嵌入式板卡,程序在嵌入式板卡上運行。1. RS232
    發表于 11-08 06:24

    嵌入式產品的研發流程是怎樣的

    嵌入式軟件和嵌入式硬件兩大部分,針對嵌入式硬件和軟件的開發,在普通的電子產品開發過程中,是不需要涉及的。
    發表于 11-09 07:38

    嵌入式硬件開發的流程是怎樣的

    關注、星標公眾號,直達精彩內容來源:網絡素材整理:李肖遙傳送門: 總結了一份嵌入式產品研發的具體流程之前,我們詳細講述了嵌入式產品的研發流程,那么在這一節,我們具體以
    發表于 11-09 06:58

    為什么要配置Linux系統嵌入式設備的串口通信?

    Linux系統嵌入式設備的串口通信一. 為什么要配置串口通信? 在嵌入式開發或者物聯網開發過程中
    發表于 12-16 07:24

    嵌入式硬件設計的主要內容有哪些呢

    嵌入式硬件設計的主要內容有哪些呢?嵌入式硬件設計有哪些流程呢?嵌入式
    發表于 01-19 07:36

    嵌入式硬件開發有哪些步驟?

    ”。綜上所述,嵌入式是一個綜合性的學科。嵌入式硬件開發流程圖1硬件開發流程基于
    發表于 04-14 14:02

    基于S3C2410的嵌入式串口通信設計

    本文通過基于S3C2410的嵌入式串口通信的實現,按照嵌入式系統的軟、硬件結構組成,較為詳細地介紹了串行
    發表于 12-23 16:11 ?120次下載

    嵌入式串口間的通信

    嵌入式串口間的通信1. 操作內容2. 操作步驟3. 操作結果4. 串口通信5. 操作步驟6. 具體操作7. 具體結果1. 操作內容利用
    發表于 10-20 19:36 ?9次下載
    【<b class='flag-5'>嵌入式</b>】<b class='flag-5'>串口</b>間的<b class='flag-5'>通信</b>
    亚洲欧美日韩精品久久_久久精品AⅤ无码中文_日本中文字幕有码在线播放_亚洲视频高清不卡在线观看
    <acronym id="s8ci2"><small id="s8ci2"></small></acronym>
    <rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
    <acronym id="s8ci2"></acronym>
    <acronym id="s8ci2"><center id="s8ci2"></center></acronym>