娇小w搡bbbb搡bbb,《第一次の人妻》,中国成熟妇女毛茸茸,边啃奶头边躁狠狠躁视频免费观看

歷史上的今天

今天是:2025年04月12日(星期六)

2019年04月12日 | STM32 串口詳細(xì)講解

發(fā)布者:seanxnie 來(lái)源: eefocus關(guān)鍵字:STM32  串口 手機(jī)看文章 掃描二維碼
隨時(shí)隨地手機(jī)看文章

什么是串口

UART : Universal Asynchronous Receiver/Transmitter 通用異步收發(fā)器

USART : Universal Synchronous Asynchronous Receiver/Transmitter 通用同步/異步收發(fā)器


一種是常用也是最簡(jiǎn)單的串行數(shù)據(jù)傳輸協(xié)議。數(shù)據(jù)線只需要兩根就可以實(shí)現(xiàn)全雙工。


Tx: 發(fā)送數(shù)據(jù)線

Rx: 接收數(shù)據(jù)線


    A  B

  TX -----------> Rx

  Rx <------------Tx


全雙工: 兩個(gè)設(shè)備可以同時(shí)發(fā)送和接收

串行數(shù)據(jù): 發(fā)送只一根線,一次只能發(fā)送一bit. 一bit接著一bit發(fā)送和接收。


模塊通信: 上位機(jī) 下位機(jī)

通信一般需要兩個(gè)設(shè)備,我們把這兩個(gè)設(shè)備,人為叫做上位機(jī), 下位機(jī)。

上位機(jī): 把處理性能強(qiáng)的機(jī)子,上位機(jī)。數(shù)據(jù)大部分處理都在上位機(jī)完成。

下位機(jī): 把數(shù)據(jù)采集的終端,處理性能單一的機(jī)子,下位機(jī)。


串口只有一根發(fā)送數(shù)據(jù)線,假如 A要發(fā)送一個(gè)字符數(shù)據(jù)  10101010 給B


 A --------        ---------

  -------- ------- ...

   

 高電平周期是多長(zhǎng)?即使是不發(fā)送數(shù)據(jù)Tx線上也有一個(gè)電平狀態(tài),接收方

 它怎么知道你是在發(fā)送呢?....


UART數(shù)據(jù)如何傳輸?

UART protocol 串口協(xié)議。

串口發(fā)送和接收數(shù)據(jù)是以幀為單位. Frame


1幀(Frame)= 1 start bit(起始位) + 5-9bits數(shù)據(jù)位 + 0/1bit 校驗(yàn)位  + stop bits(0.5, 1,1,5,2)

起始位: 一個(gè)周期的低電平

數(shù)據(jù)位: 5-9bits數(shù)據(jù)位,具體是多少bits,需要雙方協(xié)商。并且傳送是先傳送LSB(最低位) … MSB

校驗(yàn)位:

 0 bit :沒(méi)有校驗(yàn)位

1 bit :校驗(yàn)位. “賴(lài)子” X

D0 D1 D2 … Dn X

奇校驗(yàn):要保證傳輸?shù)?為奇數(shù)

D0 D1 D2 … Dn X 要保證這一串?dāng)?shù)據(jù)中1的個(gè)數(shù)為奇數(shù)

1 0 1 0 1 0 1 0 X(1)

1 0 1 0 1 0 1 1 X(0)


偶校驗(yàn):要保存?zhèn)鬏數(shù)?為偶數(shù)



停止位: 高電平

0.5 個(gè)停止位。 半個(gè)周期的高電平

1 個(gè)停止位    

1.5 個(gè)停止位

2 個(gè)停止位


Baudrate(波特率): 傳輸速率。

決定 時(shí)間周期。


115200 bps: bits per second


物理層標(biāo)準(zhǔn)  the physical layer standards


 TTL level UART : TTL電平串口

 RS-232:

 RS-422:

 RS-485:

 

  TTL level UART:

  邏輯低電平(0)  0V

  邏輯高電平(1)  5V/3.3V

  RS-232: 適合較長(zhǎng)距離傳輸

  邏輯低電平(0)  +3v~+15V

  邏輯高電平(1)  -3v~-15v

 


  TTL UART RS-232 RS-422    RS-485


電平 1 3.3V/5V 1 -5V ~ -15V +/- 2v +/- 1.5v

0 0V 0 5V ~ +15V


信號(hào) 單端信號(hào)   單端信號(hào)  差分信號(hào)   差分信號(hào)


傳輸長(zhǎng)度 < 2m <15m <1200m <1200m


 不同標(biāo)準(zhǔn)的串口,引腳也不一樣。TX/Rx是一定存在的。

  TTL

  RX

  TX

  GND

  VCC


STM32F4xx 串口控制器


TX

RX


硬件流控:

RTS: Request To Send 請(qǐng)求發(fā)送信號(hào)

終端告訴對(duì)方可以向我傳輸數(shù)據(jù)啦。


 CTS: Clear To Send  清除發(fā)送信號(hào)

  對(duì)方告知終端,我要向你發(fā)送數(shù)據(jù)啦

 

 RTS  -------> CTS(對(duì)方)

 CTS  <-------  RTS(對(duì)方)


標(biāo)志位:


 TXE: Transmit data Register Empty

  發(fā)送數(shù)據(jù)寄存器為空。

  不代表上一次數(shù)據(jù)已經(jīng)發(fā)送完成啦,因?yàn)閿?shù)據(jù)有可能還在 shifter里面

  但是此時(shí)您可以向TDR寫(xiě)數(shù)據(jù)啦。

 

 TC :  Transmit Complete

  發(fā)送完成。

  發(fā)送移位寄存器中的數(shù)據(jù)已經(jīng)發(fā)送到Tx引腳上面去了。

 

 RXNE: Read Data register Not Empty

  接收數(shù)據(jù)寄存器不為空。意思是你可以讀數(shù)據(jù)啦。


STM32F4xx串口代碼流程

(1) GPIO口配置

串口的TX/RX 引腳是由GPIO口來(lái)復(fù)用的。

a. 使能GPIO分組的時(shí)鐘

RCC_AHB1PeriphClockCmd

b. 配置GPIO口的功能 GPIO_Init

c. 選擇具體的復(fù)用功能

GPIO_PinAFConfig

(2) usart配置

a. 使能usart時(shí)鐘

b. USART_Init


  USART_Init(USART_TypeDef * USARTx, USART_InitTypeDef * USART_InitStruct);

 

  typedef struct

  {

  uint32_t USART_BaudRate; // 波特率


  uint16_t USART_WordLength;    //傳輸字長(zhǎng)  ,如下兩個(gè)任選其一:

  USART_WordLength_8b

  USART_WordLength_9b

  在STM32中:傳輸字長(zhǎng)=數(shù)據(jù)位數(shù)+檢驗(yàn)位數(shù)


  uint16_t USART_StopBits;      //停止位數(shù),如下 :

  USART_StopBits_1  1bit停止位

  USART_StopBits_1_5 1.5bit停止位

  USART_StopBits_2 2 bits停止位

  USART_StopBits_0_5 0.5bit停止位


  uint16_t USART_Parity;   //校驗(yàn)方式,如下:

  USART_Parity_No  無(wú)校驗(yàn)

  USART_Parity_Odd  奇校驗(yàn)

  USART_Parity_Even 偶校驗(yàn)


  uint16_t USART_Mode;    //串口模式, 如下:可以組合

  USART_Mode_Tx 發(fā)送模式

  USART_Mode_Rx 接收模式


  USART_Mode_Tx | USART_Mode_Rx 發(fā)送和接收模式

 

  uint16_t USART_HardwareFlowControl;  //硬件流控

  USART_HardwareFlowControl_None      無(wú)硬件流控

  USART_HardwareFlowControl_RTS       RTS 請(qǐng)求發(fā)送。你可以接收對(duì)方的數(shù)據(jù)。

  USART_HardwareFlowControl_CTS       CTS 清除發(fā)送,你可以發(fā)數(shù)據(jù)給對(duì)方。

  USART_HardwareFlowControl_RTS_CTS   RTS_CTS 發(fā)送和接收都用流控

  } USART_InitTypeDef;


(3) 中斷的配置

USART_ITConfig <- 配置串品的中斷

在STM32中一個(gè)USART只對(duì)應(yīng)一個(gè)中斷通道,但是引起串口中斷的

事件有很多,比如:

TXE -> 發(fā)送寄存器為空,可以引起串口中斷

TC -> 發(fā)送完成,可以引起串口中斷

RXNE -> 接收寄存器不為空,可以引起串口中斷

……

只不過(guò),這些事件需要"中斷控制位使能"


  USART_ITConfig(USART1, USART_IT_RXNE,ENABLE);

  USART_ITConfig就是用來(lái)把一個(gè)串口的XX事件,配置成是否引起串口中斷的

 

  在串口中斷函數(shù)里面,就需要判斷是哪個(gè)串口事件,引起了中斷!!!

 

  NVIC_Init()


(4) 使能串口

USART_Cmd


 接收(中斷函數(shù))

  USART1_IRQHanlder()

  {

  if (USART_GetITStatus(USART1, USART_IT_RXNE) != RESET)

  {

  //有數(shù)據(jù)可讀啦

 

  data = USART_ReceiveData(USART1);  //讀取接收到的數(shù)據(jù)

  }

 

 

 

  //清除USART1的中斷標(biāo)志

  USART_GetITStatus

  }

 USART_GetITStatus用來(lái)獲取串口的xx事件標(biāo)志位


 發(fā)送數(shù)據(jù)

 USART_SendData(USART1, 0x55);

 while (USART_GetFlagStatus(USRAT1, USART_FLAG_TXE)  == RESET); //等待發(fā)送結(jié)束 


關(guān)鍵字:STM32  串口 引用地址:STM32 串口詳細(xì)講解

上一篇:STM32F4 USART1 TX RX FIFO
下一篇:STM32F103串口1和串口2不同波特率之間交換數(shù)據(jù)問(wèn)題

推薦閱讀

據(jù)外媒報(bào)道,研究人員開(kāi)發(fā)了一款新的微傳感器,可以直接監(jiān)測(cè)和調(diào)整腎透析液的組成, 這是向個(gè)體患者定制透析的重要一步。該傳感器提供了一種方法來(lái)監(jiān)測(cè)透析液中的鹽濃度,從而可以連續(xù)調(diào)節(jié)透析液的濃度。監(jiān)測(cè)和調(diào)整透析液中鹽濃度的能力可以降低使用標(biāo)準(zhǔn)透析液可能引起的副作用,如心律失常和腎臟骨骼疾病等。來(lái)自埃因霍芬理工大學(xué)的研究人員Manoj Kumar...
波特率:上兩圖來(lái)自STM32F4XX中文參考手冊(cè)波特率與幀時(shí)間計(jì)算
4月9日,全國(guó)首個(gè)長(zhǎng)三角一體化地市級(jí)電力行動(dòng)計(jì)劃在浙江湖州發(fā)布。 國(guó)網(wǎng)湖州供電公司出臺(tái)《融入長(zhǎng)三角一體化能源互聯(lián)協(xié)同發(fā)展行動(dòng)方案》,明確了地方電力發(fā)展深度融入長(zhǎng)三角一體化發(fā)展戰(zhàn)略的“任務(wù)書(shū)”和“路線圖”。 當(dāng)前,長(zhǎng)三角一體化發(fā)展的浪潮奔涌澎湃。地處長(zhǎng)三角中心區(qū)域的浙江湖州,正全面參與長(zhǎng)三角一體化合作,能源互聯(lián)協(xié)同應(yīng)是其中應(yīng)有之...
當(dāng)機(jī)器人遇見(jiàn)強(qiáng)化學(xué)習(xí),會(huì)碰出怎樣的火花?一名叫 Cassie 的機(jī)器人,給出了生動(dòng)演繹。圖 | Cassie(來(lái)源:受訪者)最近,24 歲的中國(guó)南昌小伙李鐘毓和其所在團(tuán)隊(duì),用強(qiáng)化學(xué)習(xí)教 Cassie 走路 ,目前它已學(xué)會(huì)蹲伏走路和載重走路等。(來(lái)源:受訪者)相關(guān)論文以 《雙足機(jī)器人魯棒參數(shù)化運(yùn)動(dòng)控制的強(qiáng)化學(xué)習(xí)》(Reinforcement Learning for Robust...

史海拾趣

問(wèn)答坊 | AI 解惑

從'路由器'說(shuō)起

通常,家庭希望共享上網(wǎng)的時(shí)候,都會(huì)在市場(chǎng)上買(mǎi)一個(gè)100到300元左右的“SOHO路由器”,將這樣一個(gè)小盒子的WAN口通過(guò)ADSL(PPPoE)/Ethernet(802.1x)等方式接入Internet。實(shí)際上,它的內(nèi)涵遠(yuǎn)遠(yuǎn)比傳統(tǒng)的“路由器”(Router)豐富。嚴(yán)格地說(shuō),它是路由器(Ro ...…

查看全部問(wèn)答∨

三星單片機(jī)ISO通訊實(shí)例

三星單片機(jī)ISO通訊實(shí)例 /***********************************************************************                               &nb ...…

查看全部問(wèn)答∨

2440的主USB一定要5V電源嗎?

就是用來(lái)接USB鼠標(biāo)鍵盤(pán)之類(lèi)的 來(lái)自:EEWORLD合作群63762526,群主:wangkj…

查看全部問(wèn)答∨

誠(chéng)心求教

小弟現(xiàn)在在學(xué)計(jì)算機(jī)結(jié)構(gòu)與組成這門(mén)課,搞不懂從虛擬內(nèi)存到物理內(nèi)存的映射,還有頁(yè)組織問(wèn)題,看書(shū)看不懂,老師給的課件太簡(jiǎn)略了,完全摸不著頭腦,有哪位高手教我一下,最好配張清晰透徹的圖解,不勝感激!…

查看全部問(wèn)答∨

Vs2005不能通過(guò)activesync連接WINCE 6的設(shè)備?

2440運(yùn)行wince 6 usb device已經(jīng)OK。通過(guò)activesync可以和winxp同步 但是使用vs2005中的target->remote tools->菜單中的工具連接出現(xiàn)錯(cuò)誤。使用開(kāi)始菜單vs remote tools中的工具是可以連接的 我同時(shí)安裝了wince 5和wince 6 系統(tǒng)中可以出現(xiàn)兩 ...…

查看全部問(wèn)答∨

請(qǐng)教I2C的電平轉(zhuǎn)換電路,謝謝!

現(xiàn)在我手上有一個(gè)并口I2C總線實(shí)現(xiàn)調(diào)整參數(shù)的芯片,但是由于并口輸出電平是5v,而我芯片的電壓是3.3v,所以中間需要一個(gè)電平轉(zhuǎn)換電路,請(qǐng)問(wèn)有沒(méi)有什么片子或者分離元件實(shí)現(xiàn)的電路圖可以實(shí)現(xiàn)啊,謝謝了!網(wǎng)上查了一下,好像MAX3373是不是可以啊?…

查看全部問(wèn)答∨

向大家推薦一個(gè)TI介紹放大器方案的視頻

我這里有一個(gè)德州儀器(TI)零漂移、PRIO、具有MUX可編程增益放大器的視頻,跟大家分享一下! $(\'swf_zwH\').innerHTML=AC_FL_RunContent(\'width\', \'550\', \'height\', \'400\', \'allowNetworking\', \'internal\', \'allowScriptAccess\', \' ...…

查看全部問(wèn)答∨

iar中仿真9b96出現(xiàn)問(wèn)題。

iar+jlink+9b96提示如下:已經(jīng)設(shè)置了0x00001000   Wed Jun 22 10:06:02 2011: Loaded macro file: C:\\Program Files\\IAR Systems\\Embedded Workbench 5.4 Evaluation_0\\arm\\config\\flashloader\\TexasInstruments\\FlashLM3Sxxx.mac W ...…

查看全部問(wèn)答∨

利用內(nèi)置PGA的24位Σ-Δ型ADC AD7190實(shí)現(xiàn)精密電子秤設(shè)計(jì)

具體方案還在討論當(dāng)中。先占個(gè)位置。   [ 本帖最后由 deweyled 于 2011-6-24 15:36 編輯 ]…

查看全部問(wèn)答∨

DSP2812程序

在用CCS3.3調(diào)程序時(shí)遇到這個(gè)錯(cuò)誤declaration may not appear after executable statement in block,請(qǐng)大家?guī)兔聪略趺唇鉀Q…

查看全部問(wèn)答∨
小廣播
設(shè)計(jì)資源 培訓(xùn) 開(kāi)發(fā)板 精華推薦

最新單片機(jī)文章

 
EEWorld訂閱號(hào)

 
EEWorld服務(wù)號(hào)

 
汽車(chē)開(kāi)發(fā)圈

 
機(jī)器人開(kāi)發(fā)圈

電子工程世界版權(quán)所有 京ICP證060456號(hào) 京ICP備10001474號(hào)-1 電信業(yè)務(wù)審批[2006]字第258號(hào)函 京公網(wǎng)安備 11010802033920號(hào) Copyright ? 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
主站蜘蛛池模板: 宁化县| 磐石市| 康平县| 林口县| 焉耆| 阜城县| 重庆市| 武义县| 清徐县| 宿州市| 丽江市| 南召县| 新竹市| 滕州市| 德江县| 瑞安市| 遂宁市| 星座| 湘阴县| 清涧县| 东港市| 井冈山市| 西吉县| 绥滨县| 禹城市| 东兰县| 六盘水市| 廊坊市| 吉林省| 九江县| 广饶县| 阜南县| 鲁山县| 平顶山市| 兰西县| 石楼县| 称多县| 墨脱县| 夏河县| 江孜县| 沐川县|