国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

STM32F103C8T6的USART串口通信及中斷

這篇具有很好參考價值的文章主要介紹了STM32F103C8T6的USART串口通信及中斷。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

一、串口通信
(一)串口協(xié)議和RS-232標準
1.串口通信協(xié)議
串口通信是指串口按位(bit)發(fā)送和接收字節(jié)。盡管比特字節(jié)(byte)的串行通信慢,但是串口可以在使用一根線發(fā)送數(shù)據(jù)的同時用另一根線接收數(shù)據(jù)。
串口通信協(xié)議是指規(guī)定了數(shù)據(jù)包的內容,內容包含了起始位、主體數(shù)據(jù)、校驗位及停止位,雙方需要約定一致的數(shù)據(jù)包格式才能正常收發(fā)數(shù)據(jù)的有關規(guī)范。在串口通信中,常用的協(xié)議包括RS-232、RS-422和RS-485

STM32的串口通信接口有兩種,分別是:UART(通用異步收發(fā)器)、USART(通用同步異步收發(fā)器)。

引腳連接方式:
TXD <-----> RXD
RXD <-----> TXD
GND <----->GND

注:RXD:數(shù)據(jù)輸入引腳,接受數(shù)據(jù); TXD:數(shù)據(jù)發(fā)送引腳,數(shù)據(jù)發(fā)送;

對于兩個芯片之間的連接,兩個芯片GND共地,同時TXD和RXD交叉連接。這里的交叉連接的意思就是,芯片1的RxD連接芯片2的TXD,芯片2的RXD連接芯片1的TXD。這樣,兩個芯片之間就可以進行TTL電平通信了。

2.RS232串口標準
RS232串口標準,它的全名是“數(shù)據(jù)終端設備(DTE)和數(shù)據(jù)通訊設備(DCE)之間串行二進制數(shù)據(jù)交換接口技術標準”,該標準規(guī)定采用一個25個腳的DB-25連接器,對連接器的每個引腳的信號內容加以規(guī)定,還對各種信號的電平加以規(guī)定。

下面以計算機和調制解調器之間的通信流程來說明RS-232串行通信原理。考慮當調制解調器處于應答方式下,計算機和調制解調器之間的RS-232信號間的交互關系和工作過程。假定調制解調器是全雙工的,并以RS-232標準規(guī)范工作。

(1)初始狀態(tài)時,RTS、CTS持續(xù)為ON,通過通信程序設置和監(jiān)測RS232引線狀態(tài)。在應答模式下,計算機中的軟件一直監(jiān)視著振鈴指示(RI),等待RI發(fā)出ON信號。

(2)計算機上的通信程序在收到RI信號后,就開始通過振鈴指示器ON/OFF變換的次數(shù)對振鈴進行計數(shù),當?shù)竭_程設定的振鈴次數(shù)時,通信程序就發(fā)生數(shù)據(jù)終端就緒(DTR)信號,強迫調制解調器進入摘機狀態(tài)。

(3)等待2s后(FCC規(guī)定),調制解調器自動開始發(fā)送其應答載波。這時調制解調器發(fā)出調制解調器就緒(DSR)信號通知計算機:它已完成所有的準備工作并等待載波信號。

(4)在持續(xù)發(fā)出DTR信號期間,計算機軟件監(jiān)測DSR信號。當DSR信號變?yōu)镺N時,計算機就知道調制解調器已準備數(shù)據(jù)鏈路的連接,計算機立即開始監(jiān)測數(shù)據(jù)載波監(jiān)測(CD)信號,以證實數(shù)據(jù)鏈路的存在。

(5)當源調制解調器的載波出現(xiàn)于電話線上時,應答調制解調器就發(fā)出CD信號。

(6)通過發(fā)送數(shù)據(jù)線(TD)和接收數(shù)據(jù)線(RD),開始全雙工通信。在數(shù)據(jù)鏈路傳輸期間,計算機通過監(jiān)測CD來確保數(shù)據(jù)鏈路的存在。

(7)通信任務一旦完成,計算機就禁止DTR,調制解調器用除去其載波音調、禁止CD和DSR來響應。隨著鏈路被拆除,調制解調器就會返回初始狀態(tài)。

RS-232串行通信距離較近時(<12m),可以用電纜線直接連接標準RS232端口,若距離較遠需附加調制解調器( Mode),最為簡單的且常用的是三線制接法,即地、接收數(shù)據(jù)、發(fā)送數(shù)據(jù)三腳相連。

3.RS232電平
RS232電平是指RS232串行通信接口中使用的電壓級別。根據(jù)RS232標準,邏輯"1"表示為負電平(通常為-3V至-25V之間),而邏輯"0"表示為正電平(通常為+3V至+25V之間)。這種不對稱的電平表示方式使得RS232能夠在長距離和嘈雜環(huán)境下進行可靠通信。

RS232電平的特點包括:
①高電平范圍為+3V至+25V,低電平范圍為-3V至-25V。
②邏輯"1"使用負電平表示,邏輯"0"使用正電平表示。
③信號電平較高,能夠抵抗干擾,并允許較長的傳輸距離(最長可達50英尺)。
④傳輸速率可達115200 bps(比特每秒)。

4.TTL電平
“TTL集成電路的全名是晶體管-晶體管邏輯集成電路(Transistor-Transistor Logic),主要有54/74系列標準TTL、高速型TTL(H-TTL)、低功耗型TTL(L-TTL)、肖特基型TTL(S-TTL)、低功耗肖特基型TTL(LS-TTL)五個系列。
標準TTL輸入高電平最小2V,輸出高電平最小2.4V,典型值3.4V;輸入低電平最大0.8V,輸出低電平最大0.4V,典型值0.2V。
S-TTL輸入高電平最小2V,輸出高電平最?、耦?.5V,Ⅱ、Ⅲ類2.7V,典型值3.4V;輸入低電平最大0.8V,輸出低電平最大0.5V。
LS-TTL輸入高電平最小2V,輸出高電平最?、耦?.5V,Ⅱ、Ⅲ類2.7V,典型值3.4V;輸入低電平最大Ⅰ類0.7V,Ⅱ、Ⅲ類0.8V,輸出低電平最大Ⅰ類0.4V,Ⅱ、Ⅲ類0.5V,典型值0.25V。

5.RS232電平和TTL電平的區(qū)別
TTL電平標準是 低電平為0,高電平為1(對地,標準數(shù)字電路邏輯)。
RS232電平標準 是 正電平為0,負電平為1(對地,正負3-15V皆可,甚至可以用高阻態(tài))。

(1)電壓
RS232電平的電壓范圍較高,正負電平分別為+3V至+25V和-3V至-25V。而TTL電平的電壓范圍較低,一般為0.2V至3.4V或0V至5V。因此,RS232電平較高,能夠提供更大的信號幅度,使其具有較強的抗噪聲和抗干擾能力。

(2)范圍
RS232電平的電壓范圍較大,它可用于長距離通信,最長傳輸距離可達50英尺,甚至更遠。而TTL電平的傳輸距離較短,一般不超過15米。因此,在需要長距離通信的場景中,RS232電平更為合適。

(3)接口電路
RS232電平使用差分信號傳輸,即發(fā)送線和接收線各自攜帶相反的信號。這種差分傳輸方式可以有效抑制共模干擾,并提高數(shù)據(jù)傳輸?shù)目煽啃?。而TTL電平使用單端信號傳輸,只用一根線傳輸信號,外加一根參考線,也就是地線。那一根線分別攜帶不同的電平表示邏輯"1"和邏輯"0"。TTL電平的接口電路相對簡單,成本較低。

總結:
RS232是一種串行通信接口標準,其電平表示為負電平和正電平,適用于長距離和抗干擾要求較高的通信環(huán)境。與之相比,TTL電平具有低電壓范圍和較短的傳輸距離,適用于短距離通信和成本敏感的應用。

(二)USB/TTL轉232"模塊的工作原理
串口數(shù)據(jù)收發(fā)流程:

stm32f103c8t6 通過串口1收發(fā),單片機,stm32,嵌入式硬件
以CH340芯片模塊為例

CH340C模塊
CH340C USB轉TTL模塊以CH340C芯片為核心,內部自帶晶振,最高波特率可達2Mbps,軟件兼容CH341驅動,過流保護,引出相應的通訊接口與電源接口,通訊接口帶有指示燈指示工作狀態(tài),通訊穩(wěn)定,體積小。

CH40C特點:
①全速USB驅動,兼容USB2.0
②硬件全雙工串口,內置收發(fā)緩沖區(qū)
③支持波特率50bps~2Mbps
④輸出TTL電平3.3V,兼容5V的IO電平
stm32f103c8t6 通過串口1收發(fā),單片機,stm32,嵌入式硬件

輸入輸出接口引腳均帶有LED指示燈
電源接口引腳中,5V的接口引腳帶有LED指示燈

stm32f103c8t6 通過串口1收發(fā),單片機,stm32,嵌入式硬件t

二、使用HAL庫進行STM32的USART串口通信
(一)UART常用函數(shù)
1.串口句柄
HAL庫在結構上,對每個外設抽象成了一個稱為ppp_HandleTypeDef的結構體,其中ppp就是每個外設的名字。所有的函數(shù)都是工作在ppp_HandleTypeDef指針之下。

例如,使用USART1時,可以定義USART初始化結構體變量(全局變量)huart。

UART_HandleTypeDef huart1;
huart1就被稱為串口的句柄,它被貫穿整個USART收發(fā)的流程。
stm32f103c8t6 通過串口1收發(fā),單片機,stm32,嵌入式硬件

2.HAL_UART_Transmit

通過該函數(shù)可向串口寄存器 USART_DR 寫入一個數(shù)據(jù),當向該寄存器寫數(shù)據(jù)的時候,串口就會自動發(fā)送。
函數(shù)原型:stm32f103c8t6 通過串口1收發(fā),單片機,stm32,嵌入式硬件

3.HAL_UART_Receive_IT

作用是開啟接收中斷,同時設置接收的緩存區(qū)以及接收的數(shù)據(jù)量,并進入回調函數(shù)。
函數(shù)原型:stm32f103c8t6 通過串口1收發(fā),單片機,stm32,嵌入式硬件

HAL_UART_Receive_IT函數(shù)是啟動串口接收并且是中斷接收,需要在初始化USART外設之后才能被調用。

在使能了USART接收中斷之后,stm32在每次接收到一個字節(jié)數(shù)據(jù)之后,就會自動運行USART1_IRQHandler函數(shù)一次,但不會每次都運行一次HAL_UART_RxCpltCallback函數(shù)。只有當接收到數(shù)據(jù)字節(jié)數(shù)與在HAL_UART_Receive_IT函數(shù)設定的接收數(shù)目相等時才會運行一次接收完成回調函數(shù)。

注:一定要在進入while前寫一次,為了開啟中斷(回調函數(shù)里面也會寫的)

4.HAL_UART_RxCpltCallback
在判斷到是接到串口數(shù)據(jù)并且數(shù)據(jù)數(shù)目達到設定值時就會調用接收完成回調函數(shù)HAL_UART_RxCpltCallback。這樣我們在回調函數(shù)中實現(xiàn)我們的應用程序。

當CPU向串口發(fā)送數(shù)據(jù),會產生接收中斷,然后進入中斷服務函數(shù),調用回調函數(shù),回調函數(shù)才是我們進行中斷處理的地方

(二)程序編寫

1.STM32CubeMX工程創(chuàng)建
2.編寫程序
(1)STM32系統(tǒng)給windows11連續(xù)發(fā)送“hello windows!”

用keil打開剛剛生成的文件,找到main.c,并在main函數(shù)循環(huán)中使用 HAL_UART_Transmit函數(shù)發(fā)送hello windows!

stm32f103c8t6 通過串口1收發(fā),單片機,stm32,嵌入式硬件

stm32f103c8t6 通過串口1收發(fā),單片機,stm32,嵌入式硬件

(2)在持續(xù)發(fā)送“hello windows!”的基礎上,當上位機給stm32發(fā)送一個字符“#”后,stm32暫停發(fā)送“hello windows!”;發(fā)送一個字符“*”后,stm32繼續(xù)發(fā)送
①定義全局變量
打開main.c文件,在void SystemClock_Config(void);之后定義全局變量

②開啟中斷

在進入while循環(huán)之前,寫入HAL_UART_Receive_IT函數(shù),以啟動串口中斷接收

③進行傳輸

在while循環(huán)中添加傳輸代碼

④重寫中斷處理函數(shù)

在main函數(shù)之后重寫中斷處理函數(shù)

stm32f103c8t6 通過串口1收發(fā),單片機,stm32,嵌入式硬件

stm32f103c8t6 通過串口1收發(fā),單片機,stm32,嵌入式硬件

stm32f103c8t6 通過串口1收發(fā),單片機,stm32,嵌入式硬件文章來源地址http://www.zghlxwxcb.cn/news/detail-786874.html

到了這里,關于STM32F103C8T6的USART串口通信及中斷的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網!

本文來自互聯(lián)網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉載,請注明出處: 如若內容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • 基于STM32F103C8T6的HC-06藍牙通信

    基于STM32F103C8T6的HC-06藍牙通信

    如果朋友們 遇到了如下問題 ,可以仔細借鑒本文章和另一篇專門講解 藍牙通信問題 的文章,一定能夠解決你在藍牙通信時遇到的諸多困難 1.在調試藍牙模塊AT指令時無返回值 2.身邊 無USB轉TTL模塊 可以直接調試藍牙模塊(本人就是由于無模塊花了了整整一天才調試成功)

    2024年02月03日
    瀏覽(34)
  • STM32 F103C8T6學習筆記7:雙機無線串口通信

    STM32 F103C8T6學習筆記7:雙機無線串口通信

    今日嘗試配通倆個C8T6單片機之間的無線串口通信,文章提供原理,源碼,測試效果圖,測試工程下載: 目錄 傳輸不規(guī)范問題: 串口通信資源: 單個串口資源理解: 單片機串口資源: 測試目標與測試硬件連接: 串口初始化與串口中斷接收邏輯: 串口初始化: 初步測試能否

    2024年02月09日
    瀏覽(17)
  • 使用串口燒寫程序到STM32F103C8T6最小板(CH340)

    使用串口燒寫程序到STM32F103C8T6最小板(CH340)

    商家沒給ST‐LINK V2下載器,故使用串口將程序燒錄到最小板,使用仿真軟件Flymcu進行。(默認安裝過CH340的驅動) 聯(lián)機下載時的程序文件:編譯生成的.hex文件; 編程前重裝文件:當選中該項后,flymcu會在每次編程之前將Hex文件重新裝載一遍,這對于代碼調試的時候比較有用

    2024年02月01日
    瀏覽(190)
  • 學習記錄之STM32F103C8T6最小系統(tǒng)板驅動MPU6050串口打印數(shù)據(jù)

    學習記錄之STM32F103C8T6最小系統(tǒng)板驅動MPU6050串口打印數(shù)據(jù)

    1.使用到的工具介紹 2.MPU6050和整體和簡單介紹 3.程序的介紹 1.使用到的工具介紹 硬件方面:STM32F103C8T6最小系統(tǒng)板核心板,MPU6050模塊三維角度傳感器,經典的CH340燒寫和串口作用,和若干個杜邦線。 軟件方面:keil5編寫程序軟件,燒寫軟件FlyMcu.exe燒寫工具,sscom.exe串口調試工

    2023年04月09日
    瀏覽(22)
  • AS608指紋模塊與stm32f103c8t6通信實現(xiàn)指紋識別

    AS608指紋模塊與stm32f103c8t6通信實現(xiàn)指紋識別

    目錄 ?AS608指紋模塊 ?stm32f103c8t6最小系統(tǒng)板以及其他外設 工程資料 遇到的問題 ?光學指紋模塊更好用一點,電容式指紋模塊的通信協(xié)議有一點不一樣。 網上可以搜到相關的串口通信協(xié)議用戶手冊 首先可以嘗試通過usb轉串口讓AS608與電腦串口通信,看通信協(xié)議,用電腦串口發(fā)

    2024年01月18日
    瀏覽(20)
  • Qt實現(xiàn)安卓手機藍牙通信并控制stm32f103c8t6驅動VFD屏

    Qt實現(xiàn)安卓手機藍牙通信并控制stm32f103c8t6驅動VFD屏

    Qt具有跨平臺的特性所以非常適合寫通信的demo,但是在這個例程中Qt藍牙部分不支持Windows平臺,安卓平臺使用沒問題。 Qt藍牙主要涉及到三個類的使用: QBluetoothDeviceDiscoveryAgent //掃描周圍藍牙設備 QBluetoothLocalDevice //掃描本地藍牙 QBluetoothSocket //建立藍牙的socket讀寫 安卓不支

    2024年02月08日
    瀏覽(27)
  • 舵機控制(STM32F103C8T6)

    舵機控制(STM32F103C8T6)

    ? ? ? ? 本文是以 STM32F103C8T6 作為主控芯片,通過PB6端口輸出PWM,實現(xiàn)控制180°舵機。 (一)概述 ? ? ? ? 舵機是一種位置伺服驅動器器,是一種帶有輸出軸的小裝置。當我們向伺服器發(fā)送一個控制信號時,輸出軸就可以轉到特定的位置。只在控制信號持續(xù)不變,伺服機構就

    2023年04月09日
    瀏覽(25)
  • 功耗測評 | STM32F103C8T6

    功耗測評 | STM32F103C8T6

    STM32F103C8T6 MCU越來越廣泛的應用在生產生活的各個領域,外接豐富的傳感器、功能模塊、通信模塊、顯示存儲等可以形成各種可樣的產品項目應用。對于功耗要求比較高的產品,一般會選擇STM32L系列的MCU,但是從功耗的評測角度,邏輯上是基本相似的。 在很多應用場合中都對

    2024年02月07日
    瀏覽(31)
  • STM32F103C8T6系統(tǒng)板

    STM32F103C8T6系統(tǒng)板

    1.電源部分 2.復位 3.晶振 4. 電源電路——防反接 有關二極管 漫談二極管防電源反接電路 本次采用上圖右下角的NMOS防反接電路。 電源電路——電源芯片 AMS1117是AMS公司的 ,LM1117是NS(美國國家半導體)的,LM1117要貴很多,所以一般的用AMS1117就可以了。 (以下分析參考STM32F10

    2024年02月02日
    瀏覽(20)
  • STM32F103C8T6板子介紹

    STM32F103C8T6板子介紹

    STM32簡介 STM32是ST公司基于ARM Cortex-M內核開發(fā)的32位微控制器 STM32常應用在嵌入式領域,如智能車、無人機、機器人、無線通信、物聯(lián)網、工業(yè)控制、娛樂電子產品等 STM32功能強大、性能優(yōu)異、片上資源豐富、功耗低,是一款經典的嵌入式微控制器。 ?STM32F103C8T6 F1XX片上資源

    2024年02月11日
    瀏覽(22)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包