本實(shí)驗(yàn)利用信馳達(dá)的藍(lán)牙模塊進(jìn)行串口的收發(fā)任務(wù),stm32f103用的是串口1,手機(jī)APP用的是LighntBlue,藍(lán)牙名字為Vence,stm32開發(fā)板為中國移動(dòng)的OneNet開發(fā)板
①連線
藍(lán)牙模塊 stm32f103
VCC VCC
GND GND
EN PC10
RX TX1
TX RX1
BRTS GND
P04 PC7
P05 PC8
②藍(lán)牙模塊的工作模式
啟動(dòng)藍(lán)牙模塊需要將EN置0,BRTS置0,接上電源,就開始廣播模式
當(dāng)連接成功時(shí),P04為高電平,P05為低電平
利用stm32啟動(dòng)的方式為,接上電源,按下Key1鍵盤,此時(shí)藍(lán)燈,紅燈,黃燈亮起;
紅燈亮,綠燈滅,還沒有連接成功,如果紅燈滅,綠燈亮就代表已經(jīng)連接成功
③stm32發(fā)送固定數(shù)據(jù)到手機(jī)APP
{0x67,0x6c,0x75,0x05,0x20}
通過按下stm32的按鍵1,也就是PC13口,會(huì)發(fā)送數(shù)據(jù)到手機(jī),此時(shí)黃燈如果是滅的狀態(tài),就改為亮,如果是亮的狀態(tài)就改為滅
④手機(jī)APP發(fā)送數(shù)據(jù)到stm32
如果手機(jī)發(fā)送的一個(gè)字節(jié)為0x01,通過代碼判斷是0x01的話,黃燈的狀態(tài)就會(huì)取反
原理圖:
啟動(dòng)狀態(tài)指示燈:接通電源,按下key1,紅、黃、藍(lán)色同亮:
LightBlue搜索到Vence藍(lán)牙名字:Vence
點(diǎn)擊連接,連接成功后,指示燈變?yōu)樗{(lán)、黃、綠
app的0xFFE4端口開啟接收數(shù)據(jù),按下Key1,發(fā)送指令的數(shù)據(jù){0x67,0x6c,0x75,0x05,0x20}到app,此時(shí)黃燈狀態(tài)取反,APP收到數(shù)據(jù)
在APP的0XFFE9端口輸入0x01,stm32判斷后,黃燈的狀態(tài)取反
stm32主函數(shù)代碼:
//本設(shè)計(jì)利用信馳達(dá)進(jìn)行藍(lán)牙通信,stm32的PC10控制藍(lán)牙模塊的使能,藍(lán)牙模塊的工作電壓范圍在1.8-3.3V,具有低功耗
#include "stm32f10x.h"
#include "usart1.h"
#include "bluetooth.h"
#include "key.h"
#include "led.h"
u8 GLU[5] = {0x67,0x6c,0x75,0x05,0x20};
int main(void)
{
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); //中斷控制器分組設(shè)置
Key_Init(); //初始化按鍵
EXTI_Configuration();
Usart1_Init(115200); //設(shè)置串口1的波特率為115200bit
LedInit(); //初始化led
Delay_Init(); //初始化延遲函數(shù)
BlueTooth_Init(); //初始化藍(lán)牙模塊
USART_Cmd(USART1, DISABLE); //除能串口
while(1)
{
USART_ClearFlag( USART1, USART_FLAG_TC );
if(send_flag == 1)
{
USART_Cmd(USART1, ENABLE); //除能串口
GPIO_ResetBits(GPIOC,EN); //使能藍(lán)牙模塊
DelayMs(20); //啟動(dòng)藍(lán)牙模塊延遲20ms
while(GPIO_ReadInputDataBit(GPIOC,GPIO_Pin_7) != Bit_SET || GPIO_ReadInputDataBit(GPIOC,GPIO_Pin_8) != Bit_RESET);
Usart_SendString(USART1, GLU);
//GPIO_SetBits(GPIOC,EN); //發(fā)送完數(shù)據(jù)除能藍(lán)牙模塊
DelayMs(20); //啟動(dòng)藍(lán)牙模塊延遲20ms
send_flag = 0;
//USART_Cmd(USART1, DISABLE); //除能串口
}
}
}
上一篇:STM32CubeIDE之printf重定向及串口(uart)輸出浮點(diǎn)型數(shù)據(jù)的修改
下一篇:STM32兩個(gè)藍(lán)牙互連進(jìn)行收發(fā)通信
推薦閱讀
史海拾趣
設(shè)計(jì)資源 培訓(xùn) 開發(fā)板 精華推薦
- 全主動(dòng)懸架國產(chǎn)化落地,未來也能“人人買得起”?
- 第三方激光雷達(dá)ASIC方案,能改變行業(yè)格局嗎?
- 為何端到端成為各車企智駕布局的首要選擇?
- 智能網(wǎng)聯(lián)汽車組合駕駛輔助系統(tǒng)安全要求立項(xiàng)制定,東風(fēng)、華為等參與起草
- 從高精地圖到VLA,一場技術(shù)路線的競速
- 韓國團(tuán)隊(duì)開發(fā)自動(dòng)駕駛軟件 透明障礙物識(shí)別準(zhǔn)確率達(dá)96%
- OpenGMSL?聯(lián)盟宣告成立 推動(dòng)未來車載連接技術(shù)變革
- 高通完成對(duì)V2X芯片企業(yè)Autotalks收購,強(qiáng)化車聯(lián)網(wǎng)通信
- “磷酸鐵鋰需求激增,寧德時(shí)代等電池巨頭鎖定未來五年大單”
- 面壁智能端側(cè)大模型首日上線,英特爾工程師聯(lián)合優(yōu)化實(shí)現(xiàn)2.2倍推理效率躍升
- Microchip最新SAM 以及 PIC32單片機(jī)軟件開發(fā)平臺(tái)-- MPLAB® Harmony V3介紹 ”
- 【下載有禮】利用泰克新MSO6示波器 Spectrum View功能演示多通道信號(hào)頻譜分析
- 免費(fèi)申請測評(píng) | 泰坦觸覺 TITAN Core開發(fā)套件
- Deyisupport博文閱讀季:推薦你喜歡的放大器博文,搶樓贏好禮!
- 力源&安森美有獎(jiǎng)直播:RSL15 - 安森美更高效更智能更安全的 BLE 5.2 藍(lán)牙芯片
- 直播:TI SimpleLink MCU無線平臺(tái)及軟件介紹!豐富的提問禮在這里等你~
- 下載有好禮!超多精美禮品等您拿!
- 初夏TI電池管理與您邀約:曬樣片訂單 搶樓贏禮!
- iPhone 13電池容量大漲!充電器要大升級(jí)?
- STM32 禁用swd-jtag下載口后,重新下載程序的方法
- iPhone 13全系標(biāo)配激光雷達(dá)
- STM32兩個(gè)藍(lán)牙互連進(jìn)行收發(fā)通信
- iCloud+將會(huì)新增隱私功能
- 搭載聯(lián)發(fā)科天璣800,華為暢享Z跑分解密
- A股特種氣體領(lǐng)域即將又添新兵
- 榮耀X10為何要做9個(gè)5G頻段?高管這樣解釋
- 國產(chǎn)電源管理廠商南麟電子計(jì)劃終止新三板掛牌
- 5G+汽車電子市場需求帶動(dòng),國內(nèi)高頻覆銅板產(chǎn)能陸續(xù)展示
- #pragma code_seg("INIT")
- 歷年電賽資料
- 關(guān)于動(dòng)態(tài)數(shù)碼管驅(qū)動(dòng),有時(shí)閃爍的問題。
- 關(guān)于430的io中斷與按鍵s2的使用
- 你沒有聽說過這句話嗎:學(xué)ARM用三星,做產(chǎn)品用ATMEL
- 用STM32F103的UART3智能卡模式時(shí)工作不正常
- msp430用定時(shí)器生成帶死區(qū)控制的PWM波
- 哪位仁兄能把<<嵌入式系統(tǒng)開發(fā)與應(yīng)用實(shí)驗(yàn)教程(第2版)>> 的CD中的始終實(shí)習(xí)的代碼發(fā)一份給我,感激不盡!到書店買已經(jīng)賣完了
- 求甲乙類互補(bǔ)對(duì)稱電路的工作原理
- PCM168x-Energysense:具有通用前端的高性能音頻ADC