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

歷史上的今天

今天是:2025年01月21日(星期二)

正在發生

2020年01月21日 | STM8S003F使用IO口模擬串口(二)接收數據

發布者:幸福家庭 來源: eefocus關鍵字:STM8S003F  IO口  模擬串口  接收數據 手機看文章 掃描二維碼
隨時隨地手機看文章

在上一篇文章中我們介紹了IO口模擬串口數據的發送,這一篇文章我們介紹IO口模擬串口數據的發送。同樣的,我們沒有使用庫函數和中斷,我們使用簡單的定時來完成數據的接收。


1、IO口模擬串口接收數據的原理

同樣的,我們將要接收的數據認為是10位(實際上,我們在接收數據之前必須搞清楚我們將要接收的是什么,否則我們需要在模擬串口程序中添加其他代碼來進行檢測)。


同樣的,我們事先知道發送數據的波特率為:9600。


我選擇的是STM8S003F的PD3引腳作為模擬串口的接收引腳。


思路是這樣的,我們使用定時器定時,通過判斷是否是起始位(通過低電平判斷,因為沒有發送數據應該是高電平),得到起始位了以后,延時一個數據位發送的時間(我們將定時器的時間設置為一個數據位的發送時間),然后逐次判斷數據位的電位,8次延時以后,在通過最后一次延時,以此來接收完了一個字節。


用這種方法的優點是邏輯簡單,能夠清晰的認識到串口發送數據的過程,但是,由于我們檢驗數據是否正確用到的是我們上一篇文章中用到的發送數據的方法,因此在發送字符串的時候我們發現它將只能接收到奇數的字節,只能在接收單字節數據的時候能正常工作,也就是大部分情況無法使用。如果需要它是一個正常代碼中能用的全雙工模擬串口,需要使用到中斷,我【待修改】將在后面進行介紹。


注意:這篇文章實現的IO口模擬串口接收數據,只能實現單個字節的接收!


2、實現過程

2.1、一切從main()函數開始

同樣的,我們建立完工程后需要從main()函數開始,我們首先需要進行初始化的配置All_Config()【在UserApp.c中】,代碼如下:


//head file 

#include "UserApp.h"

#include "IO.h"

#include "User.h"

#include "Time.h"

#include "Delay.h"

 

//初始化函數

void All_Config( void )

{

    Clock_Config();

    IO_Init();  

    TIM2_Init();

}


其中Clock_Config()【在UserApp.c中】為單片機時鐘配置函數,代碼如下:

//初始化時鐘 選擇內部16M晶振

void Clock_Config()

{

    CLK->CKDIVR &= ~( BIT(4) | BIT(3) );

}


其中我們選擇的內部16M晶振,單片機默認的也是16M晶振但是會有8分頻,我們這里設置的是沒有分頻。


其中IO_Init()【在IO.c中】是對IO口的初始化,由于我們需要驗證接收的正確性,我們需要將接收到的數據發送到電腦串口程序,我們可以使用單片機自己的串口發送口,由于我能保證我自己上一篇文章的正確性,因此我直接在上一篇文章的基礎上進行開發。也就是我需要初始化PD2和PD3,代碼如下:


//head file

#include "IO.h"

#include "User.h"

 

void IO_Init()

{

    //TXD:TXD位推挽輸出  PD2

    UART_PORT->ODR |=  UART_PIN_TX; //0000 0100

    UART_PORT->DDR |=  UART_PIN_TX; //0000 0100

    UART_PORT->CR1 |=  UART_PIN_TX; //0000 0100

    UART_PORT->CR2 &= ~UART_PIN_TX; //0000 0100

    

    //RXD:懸浮輸入 高電平 PD3

    UART_PORT->IDR |=  UART_PIN_RX; //0000 1000

    UART_PORT->DDR &= ~UART_PIN_RX; //0000 1000

    UART_PORT->CR1 &= ~UART_PIN_RX; //0000 1000

    UART_PORT->CR2 &= ~UART_PIN_RX; //0000 1000

}


其中TIM2_Init()【在Time.c中】是定時器的初始化,


關鍵字:STM8S003F  IO口  模擬串口  接收數據 引用地址:STM8S003F使用IO口模擬串口(二)接收數據

上一篇:【嵌入式開發】STM8S103F3P6單線半雙工串口通信
下一篇:stm8s103串口

推薦閱讀

摘要  3D 加強版的微信視頻通話或 FaceTime,你期待嗎?  記得 iPhone X 的 Animoji 功能嗎?使用這個功能,使用者在攝像頭面前做表情,iPhone X 內包括小豬、小狗在內的 emoji 表情也可以實時做出類似的表情。之后,使用者可以將動畫表情保存在手機上或發送給朋友。  由于目前只有 iPhone X 在使用 3D 結構光技術,通過前置的攝像...
AWTK 全稱為 Toolkit AnyWhere,是 ZLG 傾心打造的一套基于 C 語言開發的 GUI 框架。旨在為用戶提供一個功能強大、高效可靠、簡單易用、可輕松做出炫酷效果的 GUI 引擎,并支持跨平臺同步開發,一次編程,終生使用。 主要特色: 開源免費,使用無拘束; 支持純 C 語言編程,使用無門檻; 支持跨多種操作系統,甚至是無操作系統平臺,同步開發...
近日,比亞迪發布了“刀片電池”,在業內產生了較大的反響,同時股價也有明顯上漲。那么比亞迪的“刀片電池”是什么、它相比傳統的動力電池又有哪些優點?近日,比亞迪董事長王傳福對外宣布比亞迪的“刀片電池”將于今年3月在重慶工廠開始量產,并在6月上市的比亞迪漢EV中首次搭載。消息一出,資本市場立馬做出反應,比亞迪股票一度漲停。所謂的“刀片電池...
在使用keil對STC89C52單片機程序開發過程中使用 void Name_Function interrupt n 來作為中斷服務函數程序的入口,但是在IAR for MSP430程序開發過程中則使用#pragma vector提供中斷函數入口地址,并使用 _interrupt void _Name_Function來定義中斷函數名稱,示例如下:#pragma vector = 0xFFF4; //WDT_VECTOR = 0xFFF4 是看門狗定時器中斷...

史海拾趣

問答坊 | AI 解惑

用CPLD實現結構簡單的鍵盤控制器

本帖最后由 paulhyde 于 2014-9-15 08:55 編輯 用CPLD實現結構簡單的鍵盤控制器  …

查看全部問答∨

國半大師的經典巨著《Troubleshooting_Analog_Circuits》

本帖最后由 dontium 于 2015-1-23 11:34 編輯 國半大師的經典之作呃,詳細講了模擬電路的故障診斷。呵呵,我后來全部打印下來看了,國內翻譯的不太好,英文原著還是相當的不錯的撒,呵呵,分享下。 …

查看全部問答∨

正激式開關電源變壓器參數的計算 開關電源原理與設計(連載16)

1-6-3-2.正激式開關電源變壓器參數的計算 正激式開關電源變壓器參數的計算主要從這幾個方面來考慮。一個是變壓器初級線圈的匝數和伏秒容量,伏秒容量越大變壓器的勵磁電流就越小;另一個是變壓器初、次級線圈的匝數比,以及變壓器各個繞組的額定 ...…

查看全部問答∨

DDS+PLL是目前實用的頻率合成方式么?

目前在無線電收發方面常用的頻率合成方式有哪些呢?希望在該領域有經驗的大蝦推薦一些。…

查看全部問答∨

急:listview 中背景圖片怎么能不平鋪?

listview (ownerdraw)中背景圖片怎么能不平鋪? 我這邊設置的背景圖片,再拉動滾動條的時候,背景也滾動的,背景圖片是平鋪的? 有沒有辦法不平鋪,改成固定背景? 謝謝。…

查看全部問答∨

推送全國的報告怎么寫,有人會么

本帖最后由 paulhyde 于 2014-9-15 03:54 編輯 RT…………  …

查看全部問答∨

AT89C51與三菱D700變頻器通訊

哪位高手有AT89C51與三菱D700變頻器通訊的匯編程序.......…

查看全部問答∨

序列檢碼器 狀態機 的一點小疑問

    序列檢測器的邏輯功能描述:10010 的序列檢碼器,狀態轉移圖如下圖所示:     我我有一點不明白, 在狀態B的情況下要是輸入1的話,直接進入A狀態不行么?G狀態下如果輸入1的話也可以直接進入A狀態啊,我就是這樣做 ...…

查看全部問答∨

【設計工具】ISE使用指導,適合初學者

初學者的ISE使用指導,希望對大家有所幫助.   …

查看全部問答∨

驅動入門

驅動入門:一個簡單的字符設備驅動            首先我要向大家推薦一下韋東山老師的視頻,他在視頻里講解的非常的好,把代碼分析的非常的透徹,而且他會在視頻里現場寫出每一個程序的代碼,而不是從其他的地方拿一 ...…

查看全部問答∨
小廣播
設計資源 培訓 開發板 精華推薦

最新單片機文章
何立民專欄 單片機及嵌入式寶典

北京航空航天大學教授,20余年來致力于單片機與嵌入式系統推廣工作。

 
EEWorld訂閱號

 
EEWorld服務號

 
汽車開發圈

 
機器人開發圈

電子工程世界版權所有 京ICP證060456號 京ICP備10001474號-1 電信業務審批[2006]字第258號函 京公網安備 11010802033920號 Copyright ? 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
主站蜘蛛池模板: 民丰县| 常山县| 双桥区| 儋州市| 凤阳县| 股票| 黎平县| 泸溪县| 合肥市| 象山县| 垣曲县| 江北区| 银川市| 阳信县| 成安县| 诸城市| 峨边| 东明县| 贵港市| 仁化县| 扶风县| 阜南县| 余江县| 江川县| 郸城县| 鄂州市| 永胜县| 南宫市| 外汇| 留坝县| 大同市| 天全县| 杂多县| 裕民县| 曲麻莱县| 诸城市| 大兴区| 黄梅县| 曲阳县| 渭南市| 禄劝|