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

歷史上的今天

今天是:2025年04月25日(星期五)

正在發生

2020年04月25日 | Stm32 基于藍牙的串口通信 詳細篇

發布者:BlissfulHiker 來源: eefocus關鍵字:Stm32  藍牙  串口通信 手機看文章 掃描二維碼
隨時隨地手機看文章

1. HC-05藍牙

在這里插入圖片描述

1.1藍牙模塊使用介紹

藍牙HC05是主從一體的藍牙串口模塊,簡單的說,當藍牙設備與藍牙設備配對連接成功后,我們可以忽視藍牙內部的通信協議,直接將將藍牙當做串口用。當建立連接,兩設備共同使用一通道也就是同一個串口,一個設備發送數據到通道中,另外一個設備便可以接收通道中的數據。


1.2藍牙模塊使用注意

hc-05支持從4800bps~1382400bps間的標準波特率,使用時波特率一定要匹配,vcc接3.3 或者 5V GND 接GND TX接單片機上的RX RX接TX。


2.Stm32F1串口通信

2.1串口通信介紹

STM32F103ZET6 最多可提供 5 路串口,


2.2串口通信算法思路

串口時鐘使能,GPIO 時鐘使能

串口復位

GPIO 端口模式設置

串口參數初始化

開啟中斷并且初始化 NVIC(如果需要開啟中斷才需要這個步驟)

使能串口

編寫中斷處理函數


2.3步驟詳解

1.串口時鐘使能,使用哪個串口查手冊使能哪個時鐘,還有IO口時鐘使能

2.串口復位。當外設出現異常的時候可以通過復位設置,實現該外設的復位,然后重新配置 這個外設達到讓其重新工作的目的。一般在系統剛開始配置外設的時候,都會先執行復位該外設的操作。

復位的是在函數 USART_DeInit()中完成:


void USART_DeInit(USART_TypeDef* USARTx);//串口復位 


復位很重要,根據情況選擇


3.GPIO 端口模式設置 。在這可能很多人不知道,在中文手冊110頁有,對應著來就行

在這里插入圖片描述

4.串口參數初始化

波特率,字長,停止位,奇偶校驗位, 硬件數據流控制,模式(收,發)。我們可以根據需要設置這些參數,這里需要是你在串口助手或者說用別的設備通信時讓兩者保持一致就行。


5 .開啟中斷并且初始化 NVIC

這里推薦使用中斷,使用中斷好處是可以控制串口通信在代碼中的優先級。


5.1 NVIC 中斷使用

1.STM32 將中斷分為 5 個組,組 0~4。

2.0 111 0: 4 0 位搶占優先級, 4 位響應優先級

1 110 1: 3 1 位搶占優先級, 3 位響應優先級

2 101 2: 2 2 位搶占優先級, 2 位響應優先級

3 100 3: 1 3 位搶占優先級, 1 位響應優先級

4 011 4: 0 4 位搶占優先級, 0 位響應優先級

3. 數值越小所代表的優先級就越高。

4.:第一,如果兩個中斷的搶占優先級和響應優先級都是一樣的話,則看哪個中斷先發生就先執行;

第二,高優先級的搶占優先級是可以打斷正在進行的低搶占優先級中斷的。而搶占優先級相同的中斷,高優先級的響應優先級不可以打斷低響應優先級的中斷。

6.使能串口

這個沒啥說的,不使能你死活用不了。

7.開啟串口中斷

比如在接收到數據的時候(RXNE 讀數據寄存器非空),我們要產生中斷,那么我 們開啟中斷的方法是:

USART_ITConfig(USART1, USART_IT_RXNE, ENABLE);//開啟中斷,

我們在發送數據結束的時候(TC,發送完成)要產生中斷,那么方法是: USART_ITConfig(USART1,USART_IT_TC,ENABLE);

8.獲取相應中斷狀態。

當我們使能了某個中斷的時候,當該中斷發生了,就會設置狀態寄 存器中的某個標志位。

比如我們使能了串口發送完成中斷,那么當中斷發生了, 我們便可以在中斷處理函數中調用這 個函數來判斷到底是否是串口發送完成中斷,方法是:

USART_GetITStatus(USART1, USART_IT_TC)

((IT) == USART_IT_PE) || ((IT) == USART_IT_TXE) ||

((IT) == USART_IT_TC) || ((IT) == USART_IT_RXNE) ||

返回值是 SET,說明是串口發送完成,中斷發生。

7.編寫中斷函數

!!!!這個很重要,一點一點慢慢講

中斷函數一般格式是

void USART1_IRQHandler(void)

使用串口一就要寫成T1,2就是T2。

發送

STM32 庫函數操作 USART_DR 寄存器發送數據的函數是:

void USART_SendData(USART_TypeDef* USARTx, uint16_t Data);

通過該函數向串口寄存器 USART_DR 寫入一個數據。

讀取

STM32 庫函數操作 USART_DR 寄存器讀取串口接收到的數據的函數是:

uint16_t USART_ReceiveData(USART_TypeDef* USARTx);

通過該函數可以讀取串口接受到的數據


Res=USART_ReceiveData(USART1);//接受數據Res=對用串口發送的數據

b=Res;

USART_SendData(USART1,b);//發送數據,發送數據b


發送和讀取都要建立在判別串口狀態的基礎上

這里介紹下串口狀態

RXNE(讀數據寄存器非空),當該位被置 1 的時候,就是提示已經有數據被接收到了,并 且可以讀出來了。

TC(發送完成),當該位被置位的時候,表示 USART_DR 內的數據已經被發送完成了。

例如我們要判斷讀寄存器是否非空(RXNE),操作庫函數的方法是: USART_GetFlagStatus(USART1, USART_FLAG_RXNE);

我們要判斷發送是否完成(TC),

操作庫函數的方法是:

USART_GetFlagStatus(USART1, USART_FLAG_TC);

判定他們是否為零來確定串口狀態。


總結

1.參考正點原子的教程

2.講解的不好,配置有一個可用的用藍牙控制跑馬燈的基礎調試代碼

!!!!


補充

手機藍牙發送 a 模式非Hex

實際上是0x61 ‘a’

經過調試發現,有時候發送的是亂碼,把模式調成非Hex就好了

在這里插入圖片描述

關鍵字:Stm32  藍牙  串口通信 引用地址:Stm32 基于藍牙的串口通信 詳細篇

上一篇:STM32 SPI筆記(基于寄存器)
下一篇:stm32f103 串口通訊

推薦閱讀

從動畫片《變形金剛》到《機動戰士高達》,機器人留給我們的印象是高大魁梧、堅不可摧。曾經,我們認為這些由鋼筋鐵甲鑄就而成的機器人,只存在于虛擬世界令人無法觸及。然而,當科技的長河不斷蜿蜒向前,曾經遙不可及的掃地機器人已與我們相距咫尺。特別是近期備受關注的網絡綜藝《這!就是鐵甲》,讓觀眾得以領略外形各異的機器人現場比拼碰撞產生的火花...
4月22日晚,特斯拉在加州總部舉行了“自動駕駛日”(Autonomy Day),向投資者及全球用戶直播發布了完全自動駕駛3.0硬件和特斯拉自研的自動駕駛專用芯片。4月24日,特斯拉將發布一季度財報。自動駕駛:特斯拉準備好了馬斯克表示,在進行軟件升級、激活名為Navigate on Autopilot的功能之后,“現在產出的所有特斯拉汽車”都具備自動駕駛技能。特斯拉2018年推出...
一、2C 家用顯示 從大類上來看,顯示產業分為兩大類,一是 2C 的家用顯示,一是 2B 的商用顯示,下面分別來說 1. 2C 家用顯示 2016-2020 年,全球家用顯示市場規模維持在 1200~1300 億美元 從應用看,主要分為電視、顯示器、筆記本、車載、手機、穿戴等,下面詳細介紹 2. TV 電視 全球電視出貨量穩定在 2 億臺左右,美國、歐洲、中國各占 20% ...
ST授權合作伙伴Stackforce開發的mioty協議棧現已上線,支持STM32WL多調制射頻SoC2021年4月25日,中國–服務多重電子應用領域的全球半導體領導者意法半導體(STMicroelectronics,簡稱ST;宣布支持可實現高度可擴展的遠距離超低功耗無線網絡的mioty?標準,促進下一代由規模而非速度驅動的大規模物聯網(Massive IoT)應用發展。意法半導體加入Mioty規范管理...

史海拾趣

問答坊 | AI 解惑

第一次做DSP板的心得

在老師的壓迫下,我這個學期剛開學開始看Protel DXP,開始畫板,而且一上來就是仿照SEED的板,不過只用了RS232通信和LCD顯示部分,232部分是通了沒問題了,但LCD還沒有通,不知道是電路的問題,還是他們公司給的CPLD的問題,這個問題肯定要解決的。 ...…

查看全部問答∨

我們做的音頻信號分析儀

本帖最后由 paulhyde 于 2014-9-15 03:38 編輯 做得還行 交流一下  …

查看全部問答∨

LED 光源驅動設計及周邊器件選擇

    LED 光源驅動設計及周邊器件選擇       …

查看全部問答∨

EVC 編譯TCPMP的時候,沒有的選擇ARMV4,是什么原因?

EVC 編譯TCPMP的時候,沒有的選擇ARMV4,是什么原因? 是下載的是0.72RC1的TCPMP源碼,請問該如何處理?有做過的嗎?網上的編譯過程沒有說到這個問題的。 請過的DX麻煩了…

查看全部問答∨

用WinCE開發車載倒車視頻系統,如何添加倒車參考線?

如題,有些GPS可以在顯示倒車視頻的時候,同時在畫面上顯示倒車參考線或者點,以表示與車后障礙物的距離,怎樣用編程方式實現呢?…

查看全部問答∨

有道題想請教一下大家,參考一下你們的答案

串的操作 要求: (1)字符串采用數組存儲,建立兩個字符串String1和String2。輸出兩個字符串。 (2)將字符串String2的頭n個字符添加到String1的尾部。輸出結果。 (3)查找串String3在串String1中的位置,若String3在String1中不存在,則插入 ...…

查看全部問答∨

軟件工程專業應屆生找不到工作

我是上海一大學軟件工程專業的09屆應屆生,本科,不是很會說話。 在學校里學的是單片機開發之類的(偏軟件 C語言),接觸過ARM+Wince之類的嵌入式軟件的開發。(其實學校里嵌入式軟件方面的課基本就沒有,都是我憑著興趣自學的)單片機的水平達到自 ...…

查看全部問答∨

求高手指導怎樣用單片機驅動液晶屏的觸摸板

最近想玩一下液晶取字,就想在12864液晶上,加一塊觸摸板,通過對觸摸板的觸摸,達到對液晶相應位置“字”的“取”。我想用51單片機完成,不知道方案,觸摸板看過,好像電源線、信號線都是手機里那種,很難焊。求高手,我該用什么觸摸板來做 ...…

查看全部問答∨

OSSchedLock()函數透析

最近網友問到OSSchedLock()這個函數的問題,當時我也搞得半昏迷狀態。     這個函數又叫上鎖函數,如果在一個任務里面調用了上鎖函數,那么OSSched()這個任務切換函數就不會執行也就是說不會進任務調度。 調用OSSchedLock()以后,用戶 ...…

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

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

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

 
EEWorld訂閱號

 
EEWorld服務號

 
汽車開發圈

 
機器人開發圈

電子工程世界版權所有 京ICP證060456號 京ICP備10001474號-1 電信業務審批[2006]字第258號函 京公網安備 11010802033920號 Copyright ? 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
主站蜘蛛池模板: 张家港市| 铁岭市| 永丰县| 长武县| 乐亭县| 萍乡市| 江川县| 屏边| 甘孜| 正镶白旗| 珠海市| 五寨县| 杨浦区| 平江县| 北海市| 云南省| 广河县| 红桥区| 棋牌| 舒兰市| 东丰县| 峨边| 凤庆县| 丘北县| 方城县| 临沭县| 泗洪县| 固原市| 册亨县| 太白县| 那坡县| 焦作市| 宝山区| 波密县| 宾阳县| 池州市| 阜平县| 玉溪市| 汪清县| 石林| 内黄县|