99精品伊人亚洲|最近国产中文炮友|九草在线视频支援|AV网站大全最新|美女黄片免费观看|国产精品资源视频|精彩无码视频一区|91大神在线后入|伊人终合在线播放|久草综合久久中文

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

STM32入門(mén)學(xué)習(xí)筆記之USART驅(qū)動(dòng)實(shí)驗(yàn)(下)

jf_78858299 ? 來(lái)源:滑小稽筆記 ? 作者:電子技術(shù)園地 ? 2023-02-16 10:08 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

6.2.4 狀態(tài)寄存器USART_SR

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
-
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
- CTS LBD TXE TC RXNE IDLE ORE NE FE PE

Bit 9:CTS標(biāo)志(如果設(shè)置了CTSE位,當(dāng)nCTS輸入變化狀態(tài)時(shí),該位被硬件置高,由軟件將其清零)

0:nCTS狀態(tài)線上沒(méi)有變化

   1:nCTS狀態(tài)線上發(fā)生變化

Bit 8:LIN斷開(kāi)檢測(cè)標(biāo)志(當(dāng)探測(cè)到LIN斷開(kāi)時(shí),該位由硬件置1,由軟件將其清零)

0:沒(méi)有檢測(cè)到LIN斷開(kāi)

   1:檢測(cè)到LIN斷開(kāi)

Bit 7:發(fā)送數(shù)據(jù)寄存器空

當(dāng)TDR寄存器中的數(shù)據(jù)被硬件轉(zhuǎn)移到移位寄存器時(shí),該位被硬件置位,對(duì)USART_DR的寫(xiě)操作,將該位清零。

   0:數(shù)據(jù)還沒(méi)有被轉(zhuǎn)移到移位寄存器

   1:數(shù)據(jù)已經(jīng)被轉(zhuǎn)移到移位寄存器

Bit 6:發(fā)送完成

當(dāng)包含有數(shù)據(jù)的一幀發(fā)送完成后,并且TXE=1時(shí),由硬件將該位置’1’。然后寫(xiě)入U(xiǎn)SART_DR清除該位。

   0:發(fā)送還未完成

   1:發(fā)送完成

Bit 5:讀數(shù)據(jù)寄存器非空

當(dāng)數(shù)據(jù)被轉(zhuǎn)移到USART_DR寄存器中,該位被硬件置位。對(duì)USART_DR讀操作可以將該位清零。

   0:數(shù)據(jù)沒(méi)有收到;

   1:收到數(shù)據(jù),可以讀出

Bit 4:檢測(cè)到總線空閑

當(dāng)檢測(cè)到總線空閑時(shí),該位被硬件置位,則產(chǎn)生中斷。先讀USART_SR,然后讀USART_DR清除該位。

   0:沒(méi)有檢測(cè)到空閑總線

   1:檢測(cè)到空閑總線

Bit 3:過(guò)載錯(cuò)誤

當(dāng)RXNE仍然是1的時(shí)候,當(dāng)前被接收在移位寄存器中的數(shù)據(jù),需要傳送至RDR寄存器時(shí),硬件將該位置位,先讀USART_SR,然后讀USART_CR清零。

   0:沒(méi)有過(guò)載錯(cuò)誤

   1:檢測(cè)到過(guò)載錯(cuò)誤

Bit 2:噪聲錯(cuò)誤標(biāo)志

在接收到的幀檢測(cè)到噪音時(shí),由硬件對(duì)該位置位。先讀USART_SR,再讀USART_DR清0。

   0:沒(méi)有檢測(cè)到噪聲

   1:檢測(cè)到噪聲

Bit 1:幀錯(cuò)誤

當(dāng)檢測(cè)到同步錯(cuò)位,過(guò)多的噪聲或者檢測(cè)到斷開(kāi)符,該位被硬件置位。先讀USART_SR,再讀USART_DR清零

   0:沒(méi)有檢測(cè)到幀錯(cuò)誤

   1:檢測(cè)到幀錯(cuò)誤或者break

Bit 0:校驗(yàn)錯(cuò)誤

在接收模式下,如果出現(xiàn)奇偶校驗(yàn)錯(cuò)誤,硬件對(duì)該位置位。依次讀USART_SR和USART_DR清零,在清除PE位前,軟件必須等待RXNE標(biāo)志位被置1。

   0:沒(méi)有奇偶校驗(yàn)錯(cuò)誤;

   1:奇偶校驗(yàn)錯(cuò)誤

6.3 printf函數(shù)重映射

學(xué)習(xí)C語(yǔ)言的時(shí)候會(huì)經(jīng)常用到一個(gè)函數(shù),就是格式化輸出printf,這個(gè)函數(shù)的源代碼如下所示。

圖片

從上圖可以看出來(lái),printf函數(shù)實(shí)際上的核心是putchar函數(shù),在KEIL中,由于我們使用了MicroLIB,所以putchar函數(shù)改為了fputc函數(shù),此時(shí),我們只需要修改fputc函數(shù)就可以完成printf重定向,重定向代碼如下圖所示。

圖片

6.4 串口例程

使用printf函數(shù)將串口接收到的字符串發(fā)送出去。

(1)底層寄存器文件stm32f10x.h添加串口寄存器地址。

圖片

圖片

圖片

(2)在SYSTEM目錄下新建usart1目錄,并在usart1目錄下新建usart1.c和usart1.h兩個(gè)文件。

圖片

(3)將usart1.c和usart1.h兩個(gè)文件加入工程。

圖片

圖片

(4)在usart1.c文件內(nèi)寫(xiě)入以下代碼。

圖片

圖片

(5)在usart1.h添加以下代碼。

圖片

(5)在1.c文件中添加以下代碼。

圖片

6.5 實(shí)驗(yàn)結(jié)果

圖片

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 單片機(jī)
    +關(guān)注

    關(guān)注

    6067

    文章

    44976

    瀏覽量

    650209
  • STM32
    +關(guān)注

    關(guān)注

    2293

    文章

    11031

    瀏覽量

    364606
  • USART
    +關(guān)注

    關(guān)注

    1

    文章

    201

    瀏覽量

    31919
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    小白高手都適用,STM32學(xué)習(xí)教程(入門(mén)合集、自學(xué)筆記和例程)

    STM32入門(mén)教程資料合集:主要內(nèi)容為STM32入門(mén)教程資料合集免費(fèi)下載包括了:,《USART串口編程》,《如何安裝J-Link
    發(fā)表于 04-10 14:56

    CubeMX入門(mén)STM32 HAL庫(kù)的學(xué)習(xí)筆記

    STM32CubeMX是ST官方開(kāi)發(fā)的一款很好用的軟件,主要用于STM32系列單片機(jī)的硬件驅(qū)動(dòng)層的配置。網(wǎng)上也有一些關(guān)于STM32CubeMX的相關(guān)教程,對(duì)它的相關(guān)操作進(jìn)行說(shuō)明。從今天
    發(fā)表于 08-17 06:55

    STM32入門(mén)學(xué)習(xí)筆記 精選資料分享

    STM32入門(mén)學(xué)習(xí)筆記本文為筆者入門(mén)學(xué)習(xí)過(guò)程的記錄,只是零散的記錄了一些個(gè)人不太懂得,覺(jué)得需要經(jīng)
    發(fā)表于 08-24 07:56

    AN2557_STM32F10xxx使用USART的應(yīng)用中編程

    STM2TAN2557_STM32F10xxx使用USART的應(yīng)用中編程,很好的stm32資料,快來(lái)學(xué)習(xí)吧,免費(fèi)的哦。
    發(fā)表于 04-26 09:43 ?14次下載

    STM32AN2582_STM32F10xxx USART應(yīng)用

    STM32AN2582_STM32F10xxx USART應(yīng)用實(shí)例,很好的STM32資料,快來(lái)學(xué)習(xí)
    發(fā)表于 04-26 09:51 ?27次下載

    STM32各模塊學(xué)習(xí)筆記

    STM32個(gè)模塊學(xué)習(xí)筆記 目錄 STM32筆記之一 中斷優(yōu)先級(jí).......................................
    發(fā)表于 11-30 03:32 ?3248次閱讀

    STM32筆記USART串口通信

    關(guān)于STM32學(xué)習(xí)分享第五章 USART串口通信文章目錄關(guān)于STM32學(xué)習(xí)分享前言二、代碼1.usart
    發(fā)表于 11-21 18:21 ?13次下載
    <b class='flag-5'>STM32</b><b class='flag-5'>筆記</b><b class='flag-5'>之</b><b class='flag-5'>USART</b>串口通信

    STM32學(xué)習(xí)筆記1——軟硬件基礎(chǔ)keil5編程與GPIO開(kāi)發(fā)

    STM32學(xué)習(xí)筆記1——軟硬件基礎(chǔ)keil5編程與GPIO開(kāi)發(fā)
    發(fā)表于 11-30 12:36 ?4次下載
    <b class='flag-5'>STM32</b><b class='flag-5'>學(xué)習(xí)</b><b class='flag-5'>筆記</b>1——軟硬件基礎(chǔ)<b class='flag-5'>之</b>keil5編程與GPIO開(kāi)發(fā)

    usart學(xué)習(xí)筆記

    學(xué)習(xí)筆記USART介紹:目的:使用USART進(jìn)行通信,收發(fā)數(shù)據(jù)更多介紹:stm32_CN -> p516頁(yè)框圖:中斷請(qǐng)求:T
    發(fā)表于 12-04 17:21 ?10次下載
    <b class='flag-5'>usart</b><b class='flag-5'>學(xué)習(xí)</b><b class='flag-5'>筆記</b>

    STM32USART窗口通訊程序

    !”,上位機(jī)接收程序可以使用“串口調(diào)試助手“,也可自己編程。3)當(dāng)上位機(jī)給stm32發(fā)送“Stop,stm32”后,stm32停止發(fā)送。實(shí)驗(yàn)步驟安裝usb轉(zhuǎn)串口的
    發(fā)表于 12-07 11:06 ?3次下載
    <b class='flag-5'>STM32</b>的<b class='flag-5'>USART</b>窗口通訊程序

    STM32學(xué)習(xí)STM32cubeMX軟件安裝與使用(附STM32cubeMX5.2.1載地址)

    STM32學(xué)習(xí)STM32cubeMX軟件安裝與使用(附STM32cubeMX5.2.1載地址
    發(fā)表于 12-07 11:51 ?28次下載
    <b class='flag-5'>STM32</b><b class='flag-5'>學(xué)習(xí)</b><b class='flag-5'>之</b><b class='flag-5'>STM32</b>cubeMX軟件安裝與使用(附<b class='flag-5'>STM32</b>cubeMX5.2.1<b class='flag-5'>下</b>載地址)

    16 . USART 串口通信實(shí)驗(yàn)

    USART 串口通信實(shí)驗(yàn)我們知道STM32F1 內(nèi)部含有非常多的通信接口,我們就來(lái)學(xué)習(xí)USART
    發(fā)表于 12-20 19:22 ?20次下載
    16 . <b class='flag-5'>USART</b> 串口通信<b class='flag-5'>實(shí)驗(yàn)</b>

    STM32USART串口配置——學(xué)習(xí)筆記(5)

    文章內(nèi)容根據(jù)野火學(xué)習(xí)教程進(jìn)行整理,僅僅是學(xué)習(xí)記錄。開(kāi)發(fā)板: 野火STM32F429-挑戰(zhàn)者V2官方固件庫(kù)版本: STM32F4xx_DSP_StdPeriph_Lib_V1.8.0一、
    發(fā)表于 12-28 19:00 ?1次下載
    <b class='flag-5'>STM32</b>的<b class='flag-5'>USART</b>串口配置——<b class='flag-5'>學(xué)習(xí)</b><b class='flag-5'>筆記</b>(5)

    STM32CubeMX與HAL庫(kù)學(xué)習(xí)--ADC與USART的簡(jiǎn)單練習(xí)

    ,打算簡(jiǎn)單的用一,其實(shí)我就是把ADC的值讀一再算一就用USART發(fā)送出去。本文是學(xué)習(xí)過(guò)程的一點(diǎn)記錄。使用到的工具及版本:
    發(fā)表于 01-12 20:27 ?13次下載
    <b class='flag-5'>STM32</b>CubeMX與HAL庫(kù)<b class='flag-5'>學(xué)習(xí)</b>--ADC與<b class='flag-5'>USART</b>的簡(jiǎn)單練習(xí)

    STM32入門(mén)學(xué)習(xí)筆記USART驅(qū)動(dòng)實(shí)驗(yàn)(上)

    串口無(wú)法正常收發(fā),但是如果使用11.0592MHz晶振又會(huì)存在定時(shí)器計(jì)數(shù)誤差(即定時(shí)器計(jì)數(shù)不準(zhǔn)確),在STM32中很好地解決了這個(gè)問(wèn)題,并且擴(kuò)展了串口的應(yīng)用。
    的頭像 發(fā)表于 02-16 10:08 ?951次閱讀
    <b class='flag-5'>STM32</b><b class='flag-5'>入門(mén)</b><b class='flag-5'>學(xué)習(xí)</b><b class='flag-5'>筆記</b><b class='flag-5'>之</b><b class='flag-5'>USART</b><b class='flag-5'>驅(qū)動(dòng)</b><b class='flag-5'>實(shí)驗(yàn)</b>(上)