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

歷史上的今天

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

2020年07月12日 | STM8S_ 004_UART基本收發(fā)數(shù)據(jù)

發(fā)布者:頤真閣 來(lái)源: 51hei關(guān)鍵字:STM8S  UART  基本收發(fā)數(shù)據(jù) 手機(jī)看文章 掃描二維碼
隨時(shí)隨地手機(jī)看文章

寫在前面 Ⅰ


做軟件開發(fā)的人都知道打印信息的重要,說(shuō)到打印信息,我們就不得不說(shuō)UART串口打印。做單片機(jī)開發(fā)的人,打印信息主要的來(lái)源就是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ù)字長(zhǎng)度(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腳上沒(méi)有時(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只支持主模式:它不能使用來(lái)自其他設(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同步傳輸的例子:

軟件工程源代碼 Ⅲ

1、關(guān)于工程

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


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


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

UART_Initializes:UART串口初始化

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

2.代碼分析說(shuō)明

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:字長(zhǎng),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);

}


這里只是簡(jiǎn)單的一個(gè)Demo例程,接收到數(shù)據(jù),將其通過(guò)串口發(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),通過(guò)UART串口發(fā)送字符串“Demo...”。

下載 Ⅳ

STM8S資料:

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

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

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

關(guān)鍵字:STM8S  UART  基本收發(fā)數(shù)據(jù) 引用地址:STM8S_ 004_UART基本收發(fā)數(shù)據(jù)

上一篇:STM8S_003_ TIM定時(shí)中斷
下一篇:STM8S_005_ ADC采集單通道電壓

推薦閱讀

1、什么是外部中斷外部中斷即通過(guò)外部電平或上下降沿觸發(fā)所產(chǎn)生的中斷2、寄存器介紹外部中斷主要設(shè)置3個(gè)寄存器參數(shù)EA、EX、IT,這些寄存器分別屬于IE和TCON;其中EA為總中斷開關(guān),1為打開,0為關(guān)閉;EX為外部中斷允許寄存器,1為允許,0為關(guān)閉;IT為外部中斷觸發(fā)方式選擇寄存器,1為邊沿觸發(fā),0為電平觸發(fā);3、程序設(shè)計(jì)使用外部中斷零設(shè)計(jì)電路,使單片機(jī)每...
日經(jīng)亞洲評(píng)論亞洲企業(yè)300強(qiáng)的年度前100名排行榜出爐,半導(dǎo)體廠方面,韓國(guó)存儲(chǔ)器廠SK海力士躍居第1,臺(tái)灣DRAM廠南亞科自去年的37竄升為第2,晶圓代工廠臺(tái)積電則滑落至第12,IC設(shè)計(jì)聯(lián)發(fā)科更掉出前100。日經(jīng)表示,存儲(chǔ)器市場(chǎng)前2年高度成長(zhǎng),使SK海力士、南亞科運(yùn)營(yíng)上表現(xiàn)亮眼,但隨今年存儲(chǔ)器景氣反轉(zhuǎn),加上日韓爭(zhēng)端升級(jí),SK海力士在原料供應(yīng)上遭遇重大挑戰(zhàn),...
單片機(jī)源程序如下://流水燈#include<pic.h> //頭文件 __CONFIG(0xff32); //配置熔絲位//延時(shí)函數(shù)void delay(unsigned int x){ unsigned int i,j; for(i=0;i<x;i++) for(j=0;j<100;j++);}//主函數(shù)void main() { u...
不知道各位iOS游戲發(fā)燒友們有沒(méi)有遇到過(guò)這樣的情況:當(dāng)自己還在虛擬世界“廝殺”時(shí),一條&多條新消息提醒卻打破了這一氛圍,有時(shí)候這些新消息提醒甚至還會(huì)影響游戲操作,十分氣憤有木有!  因此,相信很多小伙伴對(duì)于安卓手機(jī)所支持的“游戲模式”非常心動(dòng):既可以增強(qiáng)性能,還可以拒接來(lái)電、新信息提醒,非常實(shí)用。不過(guò)呢,其實(shí)蘋果也為iPhone...

史海拾趣

小廣播
設(shè)計(jì)資源 培訓(xùn) 開發(fā)板 精華推薦

最新單片機(jī)文章

 
EEWorld訂閱號(hào)

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

 
汽車開發(fā)圈

 
機(jī)器人開發(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
主站蜘蛛池模板: 乡宁县| 交城县| 平乐县| 定襄县| 石柱| 铜川市| 木里| 郴州市| 遵义县| 乐东| 阿荣旗| 湘潭县| 肇源县| 都匀市| 山东省| 博罗县| 临夏县| 三门峡市| 丹阳市| 汉源县| 永吉县| 平凉市| 和平县| 陆河县| 永吉县| 玉屏| 斗六市| 乌拉特后旗| 会昌县| 沁源县| 会泽县| 澄城县| 碌曲县| 安泽县| 象山县| 盐津县| 白银市| 扎兰屯市| 衢州市| 和顺县| 乳源|