色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

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

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

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

STM8S_ 004_UART基本收發(fā)數(shù)據(jù)

黃工的嵌入式技術(shù)圈 ? 來源:黃工的嵌入式技術(shù)圈 ? 2020-03-20 10:41 ? 次閱讀

寫在前面 Ⅰ

做軟件開發(fā)的人都知道打印信息的重要,說到打印信息,我們就不得不說UART串口打印。做單片機(jī)開發(fā)的人,打印信息主要的來源就是UART串口打印。因此,關(guān)于UART相關(guān)的知識(shí)就比較重要。

printf、scanf這種標(biāo)準(zhǔn)的函數(shù)不只是可以在電腦上可以使用,在我們單片機(jī)上也同樣可以使用,本文只講述關(guān)于UART的基礎(chǔ)知識(shí),關(guān)于printf、scanf這一塊后面將再次給大家整理一篇文章。

本文將結(jié)合“STM8S參考手冊(cè)”和軟件源代碼給大家講述關(guān)于UART的基礎(chǔ)知識(shí)和用法。

為方便大家閱讀,本文內(nèi)容已經(jīng)整理成PDF文件:

http://pan.baidu.com/s/1i5uWhJR

UART基礎(chǔ)知識(shí) Ⅱ

通用異步收發(fā)傳輸器(Universal Asynchronous Receiver/Transmitter),通常稱作UART,是一種異步收發(fā)傳輸器。

STM8S微控制器家族的通用同步異步收發(fā)器(UART1、UART2或UART3)提供了一種靈活的方法和使用工業(yè)標(biāo)準(zhǔn)NZR異步串行數(shù)據(jù)格式的外部設(shè)備之間進(jìn)行全雙工數(shù)據(jù)交換。STM8的UART提供寬范圍的波特率選擇,并且支持多處理器通訊。

主要特性:

?全雙工的,異步通信

?高精度波特率發(fā)生器系統(tǒng):發(fā)送和接收共用的可編程波特率,最高達(dá) 2.5Mbits/s

?可編程數(shù)據(jù)字長度(8位或9位)

?可配置的停止位-支持1或2個(gè)停止位

?單線半雙工通信(UART1)

?檢測(cè)標(biāo)志:接收緩沖器滿、發(fā)送緩沖器空、傳輸結(jié)束標(biāo)志

?6個(gè)帶標(biāo)志的中斷源

?2個(gè)中斷向量

?低功耗模式

UART同步模式

UART_CK腳是UART發(fā)送器時(shí)鐘的輸出。在起始位和停止位期間,UART_CK腳上沒有時(shí)鐘脈沖。根據(jù)UART_CR3寄存器中LBCL位的狀態(tài),發(fā)送器決定在最后一個(gè)有效數(shù)據(jù)位期間產(chǎn)生或不產(chǎn)生時(shí)鐘脈沖。 UART_CR3寄存器的CPOL位允許用戶選擇時(shí)鐘極性, UART_CR3寄存器上的CPHA位允許用戶選擇外部時(shí)鐘的相位。

在總線空閑幀和斷開幀中,外部CK時(shí)鐘處于非激活狀態(tài)。

注意:

1.UART_CK腳同UART_TX腳一起聯(lián)合工作。當(dāng)UART發(fā)送端被禁用時(shí)(TEN和REN=0),UART_CK和UART_TX管腳為高阻態(tài)。

2.在UART發(fā)送端和接收端都被禁用(TEN=REN=0)時(shí), LBCL,CPOL和CPHA位必須被正確配置以保證時(shí)鐘脈沖正確工作;當(dāng)發(fā)送器或接收器被激活時(shí),這些位不能被改變。

3.建議在同一條指令中設(shè)置TE和RE,以減少接收器的建立時(shí)間和保持時(shí)間。

4. UART只支持主模式:它不能使用來自其他設(shè)備的輸入時(shí)鐘以接收或發(fā)送數(shù)據(jù)(SCLK只能配置為輸出狀態(tài))。

5. 本節(jié)給出的數(shù)據(jù)只有在寄存器UART_BRR2的UART_DIV[3:0]為0時(shí)才有效。否則建立時(shí)間和持續(xù)時(shí)間不再是1/16位時(shí)間,而是4/16位時(shí)間。

該功能選項(xiàng)可以串行地控制那些由移位寄存器組成的外設(shè),而不會(huì)失去異步通訊的功能,即仍然可以與其他異步發(fā)送接收器通訊。

UART同步傳輸?shù)睦樱?/p>

軟件工程源代碼 Ⅲ

1、關(guān)于工程

本文提供的工程代碼是基于前面軟件工程“STM8S-A02_TIM精確延時(shí)(阻塞式)”增加UART串口修改而來。初學(xué)的朋友可以參看我前面對(duì)應(yīng)的基礎(chǔ)文章,那些文章講的比較詳細(xì)。

工程源代碼主要實(shí)現(xiàn)功能:UART串口基本輸出+中斷接收數(shù)據(jù)。UART串口間隔1s打印字符串“Demo...”,串口通過中斷接收數(shù)據(jù),接收到一個(gè)字符就將其通過串口發(fā)送出去。

本文重點(diǎn)講述關(guān)于UART的內(nèi)容:

UART_Initializes:UART串口初始化

UART1_SendByte:UART串口發(fā)送字節(jié)數(shù)據(jù)

2.代碼分析說明

A.UART_Initializes:初始化

void UART_Initializes(void)

{

UART1_Init((uint32_t)115200, UART1_WORDLENGTH_8D, UART1_STOPBITS_1, UART1_PARITY_NO, UART1_SYNCMODE_CLOCK_DISABLE, UART1_MODE_TXRX_ENABLE);

UART1_Cmd(ENABLE);

UART1_ITConfig(UART1_IT_RXNE, ENABLE);

enableInterrupts();

}

UART1_Init:包含的參數(shù):

115200:波特率

UART1_WORDLENGTH_8D:字長,8位或9位

UART1_STOPBITS_1:停止位

UART1_PARITY_NO:奇偶校驗(yàn)

UART1_SYNCMODE_CLOCK_DISABLE:同步模式

UART1_MODE_TXRX_ENABLE:收發(fā)使能

這里每一個(gè)參數(shù)都可以有不同值,可參看其枚舉類型。

UART1_Cmd(ENABLE):使能UART1.

UART1_ITConfig(UART1_IT_RXNE, ENABLE):使能中斷接收。

enableInterrupts():使能全局中斷。

B.UART1_SendByte:發(fā)送字節(jié)數(shù)據(jù)

void UART1_SendByte(uint8_t Data)

{

while((UART1_GetFlagStatus(UART1_FLAG_TXE)==RESET));

UART1_SendData8(Data);

while((UART1_GetFlagStatus(UART1_FLAG_TC)==RESET));

}

while((UART1_GetFlagStatus(UART1_FLAG_TXE)==RESET)):等待發(fā)送為空

UART1_FLAG_TXE代表發(fā)送寄存器為空。

UART1_SendData8(Data):發(fā)送字節(jié)數(shù)據(jù)

while((UART1_GetFlagStatus(UART1_FLAG_TC)==RESET)):等待傳輸完成

UART1_FLAG_TC代表發(fā)送完成標(biāo)志。

C.中斷接收

位于stm8s_it.c文件下:

INTERRUPT_HANDLER(UART1_RX_IRQHandler, 18)

{

uint8_t temp;

temp = UART1_ReceiveData8();

UART1_SendData8(temp);

}

這里只是簡單的一個(gè)Demo例程,接收到數(shù)據(jù),將其通過串口發(fā)送出去。

UART串口有接收數(shù)據(jù)中斷,會(huì)置位接收標(biāo)志,平常我們響應(yīng)中斷,一般都會(huì)清楚中斷標(biāo)志,但串口中斷接收數(shù)據(jù),我們都會(huì)去讀取串口接收數(shù)據(jù),讀取數(shù)據(jù)會(huì)自動(dòng)清除標(biāo)志位。見參考手冊(cè)中“狀態(tài)寄存器UART_SR”:

D.主函數(shù)功能

while(1)

{

LED_ON;

TIMDelay_Nms(500);

LED_OFF;

TIMDelay_Nms(500);

UART1_Printf((uint8_t*)"Demo...");

}

主函數(shù)里面實(shí)現(xiàn)間隔一段時(shí)間(1s),通過UART串口發(fā)送字符串“Demo...”。

下載 Ⅳ

STM8S資料:

http://pan.baidu.com/s/1o7Tb9Yq

軟件源代碼工程(STM8S-A04_UART基本收發(fā)數(shù)據(jù)):

http://pan.baidu.com/s/1c2EcRo0

提示:如果網(wǎng)盤鏈接失效,可以微信公眾號(hào)“底部菜單”查看更新鏈接。

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

    關(guān)注

    48

    文章

    7926

    瀏覽量

    153886
  • uart
    +關(guān)注

    關(guān)注

    22

    文章

    1273

    瀏覽量

    103462
  • STM8S
    +關(guān)注

    關(guān)注

    16

    文章

    149

    瀏覽量

    32028
收藏 1人收藏

    評(píng)論

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

    S32K148頻繁UART_FRAMING_ERROR的原因?

    (iMX6) 接收 UART 數(shù)據(jù)包。UART 數(shù)據(jù)包以 0xAE 開頭,固定長度為 88 字節(jié) (RX_BUFF_LEN)。它以 100Hz 的波特率發(fā)送到
    發(fā)表于 04-11 07:35

    STM32H743 UART DMA接收不到數(shù)據(jù),為什么?

    BSP_UART3_RX_BUFSIZE 256 #define BSP_UART3_TX_BUFSIZE 128 #define BSP_USING_UART8 #define BSP_U
    發(fā)表于 02-19 06:14

    開源直接用!UDP-UART數(shù)據(jù)透?jìng)鱽砹?/a>

    今天就來分享一下UDP-UART透?jìng)魇纠创a開放,可根據(jù)實(shí)際需求靈活應(yīng)用。 一、UDP-UART透?jìng)骱喗?UDP-UART透?jìng)魇且环N將UDP數(shù)據(jù)流直接傳輸?shù)?/div>
    的頭像 發(fā)表于 02-05 17:14 ?311次閱讀
    開源直接用!UDP-<b class='flag-5'>UART</b><b class='flag-5'>數(shù)據(jù)</b>透?jìng)鱽砹? />    </a>
</div>                              <div   id=

    TMS320DM643 DMP通用異步收發(fā)器(UART)手冊(cè)

    電子發(fā)燒友網(wǎng)站提供《TMS320DM643 DMP通用異步收發(fā)器(UART)手冊(cè).pdf》資料免費(fèi)下載
    發(fā)表于 12-16 10:10 ?0次下載
    TMS320DM643 DMP通用異步<b class='flag-5'>收發(fā)</b>器(<b class='flag-5'>UART</b>)手冊(cè)

    【RA-Eco-RA4E2-64PIN-V1.0開發(fā)板試用】UART串口通信-收發(fā)回顯

    什么不同? UART:指的是通用異步收發(fā)器; USART:指的是通用同步和異步收發(fā)器。 當(dāng)只使用異步通信功能時(shí),這兩者是沒有區(qū)別的,區(qū)別在于USART比UART多了同步時(shí)鐘通信功能。
    發(fā)表于 12-15 17:32

    在NXP源碼基礎(chǔ)上如何適配ELF 1開發(fā)板的UART功能

    UART即通用異步收發(fā)器,是一種支持全雙工串行通信協(xié)議的接口。在i.MX6ULL處理器平臺(tái)上,該處理器原生支持多達(dá)8路的UART接口,提供了豐富的串行通信能力。 針對(duì)ELF 1開發(fā)板,
    的頭像 發(fā)表于 09-29 11:49 ?645次閱讀
    在NXP源碼基礎(chǔ)上如何適配ELF 1開發(fā)板的<b class='flag-5'>UART</b>功能

    ElfBoard技術(shù)貼|如何在NXP源碼基礎(chǔ)上適配ELF 1開發(fā)板的UART功能

    UART即通用異步收發(fā)器,是一種支持全雙工串行通信協(xié)議的接口。在i.MX6ULL處理器平臺(tái)上,該處理器原生支持多達(dá)8路的UART接口,提供了豐富的串行通信能力。 針對(duì)ELF 1開發(fā)
    的頭像 發(fā)表于 09-25 13:56 ?2756次閱讀
    ElfBoard技術(shù)貼|如何在NXP源碼基礎(chǔ)上適配ELF 1開發(fā)板的<b class='flag-5'>UART</b>功能

    UART協(xié)議的工作原理和應(yīng)用場(chǎng)景

    UART(Universal Asynchronous Receiver/Transmitter,通用異步收發(fā)傳輸器)協(xié)議是一種廣泛使用的串行通信協(xié)議,它允許計(jì)算機(jī)與外部設(shè)備之間通過串行接口進(jìn)行數(shù)據(jù)傳輸。以下是對(duì)
    的頭像 發(fā)表于 08-25 17:15 ?5559次閱讀

    【xG24 Matter開發(fā)套件試用體驗(yàn)】8-UART收發(fā)數(shù)據(jù)

    1 介紹 開發(fā)板引出了UART串口,根據(jù)原理圖搭建uart開發(fā)環(huán)境,通過USB轉(zhuǎn)TTL串口和串口調(diào)試助手進(jìn)行uart接口的數(shù)據(jù)收發(fā)測(cè)試。 2
    發(fā)表于 08-13 08:13

    簡單認(rèn)識(shí)UART通信協(xié)議

    UART(Universal Asynchronous Receiver/Transmitter,通用異步收發(fā)傳輸器)通信協(xié)議是一種常見的串行通信協(xié)議,廣泛應(yīng)用于計(jì)算機(jī)、嵌入式系統(tǒng)、傳感器、無線通信
    的頭像 發(fā)表于 07-25 18:07 ?2056次閱讀

    TPD8S009用于DisplayPort和HDMI的8通道ESD保護(hù)數(shù)據(jù)

    電子發(fā)燒友網(wǎng)站提供《TPD8S009用于DisplayPort和HDMI的8通道ESD保護(hù)數(shù)據(jù)表.pdf》資料免費(fèi)下載
    發(fā)表于 07-11 10:41 ?0次下載
    TPD<b class='flag-5'>8S</b>009用于DisplayPort和HDMI的<b class='flag-5'>8</b>通道ESD保護(hù)<b class='flag-5'>數(shù)據(jù)</b>表

    TSU6111A USB端口單刀雙擲(SP2T)開關(guān)支持USB和通用異步接收發(fā)器(UART)數(shù)據(jù)

    電子發(fā)燒友網(wǎng)站提供《TSU6111A USB端口單刀雙擲(SP2T)開關(guān)支持USB和通用異步接收發(fā)器(UART)數(shù)據(jù)表.pdf》資料免費(fèi)下載
    發(fā)表于 07-10 09:21 ?0次下載
    TSU6111A USB端口單刀雙擲(SP2T)開關(guān)支持USB和通用異步接<b class='flag-5'>收發(fā)</b>器(<b class='flag-5'>UART</b>)<b class='flag-5'>數(shù)據(jù)</b>表

    八進(jìn)制通用接口總線收發(fā)器SN75160B8數(shù)據(jù)

    電子發(fā)燒友網(wǎng)站提供《八進(jìn)制通用接口總線收發(fā)器SN75160B8數(shù)據(jù)表.pdf》資料免費(fèi)下載
    發(fā)表于 06-27 10:18 ?0次下載
    八進(jìn)制通用接口總線<b class='flag-5'>收發(fā)</b>器SN75160B<b class='flag-5'>8</b><b class='flag-5'>數(shù)據(jù)</b>表

    ESP32-S3-WROOM-1U-N8R8 UART1用默認(rèn)引腳調(diào)試不通怎么解決?

    測(cè)試ESP32-S3-WROOM-1U-N8R8模塊,自己畫的板子,用的串口1默認(rèn)引腳,寫數(shù)據(jù)一直沒有數(shù)據(jù)寫出來,同樣程序串口0可以寫出來。 請(qǐng)教這樣問題的原因是什么?如何解決?謝謝
    發(fā)表于 06-27 07:26

    TPD4E004用于高速數(shù)據(jù)接口的4通道ESD保護(hù)陣列數(shù)據(jù)

    電子發(fā)燒友網(wǎng)站提供《TPD4E004用于高速數(shù)據(jù)接口的4通道ESD保護(hù)陣列數(shù)據(jù)表.pdf》資料免費(fèi)下載
    發(fā)表于 06-21 10:30 ?0次下載
    TPD4E<b class='flag-5'>004</b>用于高速<b class='flag-5'>數(shù)據(jù)</b>接口的4通道ESD保護(hù)陣列<b class='flag-5'>數(shù)據(jù)</b>表
    主站蜘蛛池模板: 暖暖视频免费高清在线观看 视频 | 亚洲黄色片免费看 | 国产h视频在线观看网站免费 | 青青草色青伊人 | 日产国产欧美韩国在线 | FREE性丰满白嫩白嫩的HD | 97精品国产亚洲AV超碰 | 亚洲精品国产字幕久久vr | 国产精品丰满人妻AV麻豆 | 久久国产精品自线拍免费 | 亚洲国产精品久久精品成人网站 | 伦理片在线3348 | 老湿机一区午夜精品免费福利 | 免费a毛片 | 美女张开腿露出尿口扒开来摸动漫 | 色欲精品国产AV久久久 | 中文字幕A片视频一区二区 中文字幕AV在线一二三区 | 国产精品久久久久激情影院 | 人妻天天爽夜夜爽三区麻豆A片 | 特大巨黑人吊性xxxxgay | 欧美人成人亚洲专区中文字幕 | 一抽一出BGM免费3分钟 | 久久笫一福利免费导航 | 国产精品v片在线观看不卡 国产精品v欧美精品v日韩 | 2020最新国产自产精品 | 国产免费久久爱久久啪 | 国产黄A片在线观看永久免费麻豆 | 亚洲黄色在线 | AV无码国产精品午夜A片麻豆 | 成人精品视频99在线观看免费 | 亚洲精品高清中文字幕完整版 | 台湾18成人影院 | 妞干网手机免费视频 | 国产三级多多影院 | 国产h视频在线观看免费 | 色就色 综合偷拍区欧美 | 亚洲精品视频免费观看 | georgielyall装修工 | 国产国拍精品AV在线观看 | 精品九九视频 | 人人碰79免费视频 |

    電子發(fā)燒友

    中國電子工程師最喜歡的網(wǎng)站

    • 2931785位工程師會(huì)員交流學(xué)習(xí)
    • 獲取您個(gè)性化的科技前沿技術(shù)信息
    • 參加活動(dòng)獲取豐厚的禮品