你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

【经验分享】实战项目 STM32cubeMX配置蓝牙模块

[复制链接]
STMCU小助手 发布时间:2022-5-22 22:00
前言& ]8 N) j! q- p8 h/ w
本篇文章带大家了解并学会使用蓝牙模块1 d/ C; L( {" U4 S& S, \& ~6 W1 L) C

7 v. _5 G2 N! N; J一、蓝牙模块介绍

! K; b1 P" ]4 LJDY31蓝牙模块2 B* {7 f. w7 S
}%SOFGNG0TH516O7)E0M`O1.png 2 v1 k2 m4 d8 ?- ?8 B

( A$ \- G4 Y, c% HJDY-31 蓝牙基于蓝牙 3.0 SPP 设计,这样可以支持 Windows、Linux、android 数据透传,4 s# \1 Y, m# a8 \2 u5 \3 o
工作频段 2.4GHZ,调制方式 GFSK,最大发射功率 8db,最大发射距离 30 米,支持用户通过1 ]9 `( P8 @$ _# q4 S. k( n( u
AT 命令修改设备名、波特率等指令,方便快捷使用灵活。
: Y+ d! Y% F5 l( s* k, T. {$ ~4 @4 f8 L+ \1 Y9 f* P7 u6 `4 ]( v$ }- L, Q; m
蓝牙接线方式0 C( s6 D& b2 G1 p$ H6 w5 H
VCC-3.3V
4 w9 B% `; d) l; k3 V7 E) {; pGND-GND
+ O$ L* J, \3 O" D6 pTXD-RXD
, b: C9 Z5 o* mRXD-TXD# o0 C1 Z4 i$ ?* E1 [* c

, W8 S0 a: e7 k; _: h3 P. Z, b$ u二、cubeMX配置及代码解析
1 }$ b9 M/ a% N' D! p1 o1.cubeMX配置
9 H; o2 B  p5 E0 {, I" L
1.选择型号
3 S# F, Y3 e3 Y6 O4 Z) g* z- I
1 s; x9 T/ _( \( R* Q 7JO%]6DR917`EC83RMNJ.png # y! l4 H& D* j* I; u7 y6 N0 |6 j

) I7 G( C2 q) B# d) E) g/ e6 e5 ?2.设置晶振; h3 ~# Z+ V+ B$ [9 E8 r2 k! I

- ~' e0 M, {! t/ N  T" O( b E`Q01}F%3NM)@Z]JJ`[GSE5.png
/ K8 l8 M& B8 G/ ?% P- X
$ Q8 K, w1 T. L+ z- |" k& S3.开启串口中断和设置波特率
' h2 \# L7 d' m: S1 R# P这里选择的是串口3大家根据自己的接线选择串口号! m! p% R( B" K

! c# r& z  ]& A2 _$ L S450~5BLG[FYEM5IXB%8_X0.png
7 ?: q& a8 b4 r0 T+ Y
- ^5 T/ |. U/ X. H# M G9PR_31P}}KK{L@SG4S4W.png
2 I" a8 n6 r- i# ^5 p  ~/ r
) r4 d0 f2 K, b" w4.设置时钟树+ O9 G; d& D! e  c/ N) s
7 a7 z4 V" H3 Q" q4 p4 v% V  C5 e
G)L]_F@[(@O~)GZS[UZEXGC.png
5 y6 ]4 d1 N# a4 Z2 |( K3 A, f2 c( m! N  _
5.设置一个灯用来检测蓝牙功能) o" S- C2 u  g" W# a

0 L) W; |$ e! [! s/ S( y JUPMKV@W(BMU]VDYM~HGC.png
2 C2 t: N/ c% U* ]8 _/ ~* X0 _/ a. R5 D( z
  H+ O6 C" V& w# y7 E+ t6.创建工程6 C8 ]! y$ v8 V3 G2 w/ ^

. C- Y' k4 W2 i* M1 S; b, \! m4 l [1HZ}4O95}SF$(DAZB)W~KS.png % s8 n# |( i7 g5 m- `7 }2 h9 i

1 c5 c! T3 [5 L; g' k, ]2.代码解析
' G7 }2 c2 m6 [: S& C蓝牙大家可能会觉得很高大上其实不然他和串口的使用方法是完全一样的,4 f6 W' X3 {3 R& s6 G) |  ^
下面就给大家讲解蓝牙代码的编写。( K  B% M1 g% H% e8 }- w: z
  u8 _# t& Q5 @7 w$ R3 D) ~
  1. //灯LED1的IO定义
    ' a7 @& N& ^/ A  m
  2. #define LED1_RESET() HAL_GPIO_WritePin(LED1_GPIO_Port, LED1_Pin, GPIO_PIN_RESET) //设置LED1低电平
    " J5 S9 K% a5 D! C
  3. #define LED1_SET() HAL_GPIO_WritePin(LED1_GPIO_Port, LED1_Pin, GPIO_PIN_SET) //设置LED1高电平+ Z8 p, @* F4 Y, _" x

  4. ! b# d* @8 H# \! |
  5. * T& i9 V9 e5 A$ q$ n$ S
  6. u8 RX_dat=0;//接收变量
    & s+ A5 Y2 ~' T3 h+ p: d
  7. u8 TX[]="Hello";' ]% `" Z$ ?5 X$ }8 l" d% p
  8. 3 g# [) h- c8 `8 U
  9. //回调函数
    % D% R- F! P( x4 c) F; f) ?
  10. void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart)
    ' S/ a  G# P$ X0 S1 A- R; e: \1 {
  11. {
    2 j5 I& F& Y/ {8 ^
  12.   if(huart->Instance == USART3)
    ' h' C2 l: D1 I, O% p1 t
  13.   {8 i  E* c5 H2 q  S& y8 h
  14.     if(RX_dat==0xa1)
    0 l  P, [) i# e, h+ r% _
  15.     {
    . D; _' A3 {) N9 ?5 p
  16.        LED1_SET();
    ' f6 O+ E  J& O6 T" Q/ {; C
  17.       HAL_UART_Receive_IT(&huart3,&RX_dat,1);//启动接收函数
    2 e+ t3 F* s6 s9 l1 u. P6 U
  18.     }
    % R- Q. R, z7 s& ]: W
  19.     else if(RX_dat==0xa2)
    ; M6 A: @0 I0 j+ N, x
  20.     {
    % t1 b% m8 C7 J7 x5 z
  21.       LED1_RESET();
    ( k# Q' X% @' y& K8 [! h
  22.       HAL_UART_Receive_IT(&huart3,&RX_dat,1);//启动接收函数
    - ~2 f& m$ Z+ o7 c
  23.     }/ E& P) ^8 ], K. t* m
  24.   }& p: L2 p) [. y
  25. }  m# \/ V* _5 |4 Z5 z, i5 k  e
  26. 5 P: a" C% B7 k: H" L
  27. HAL_UART_Transmit(&huart3,TX,sizeof(TX),10000);//开机发送Hello
    * K  [  H! L$ [: Z! N( I
  28. 9 L9 n* E% }1 u! k4 U- Z) v- O
  29. 7 V6 M% I9 \& E2 V
  30. while(1)- M$ T7 p$ [2 ~
  31. {* A6 S, S2 @8 Z' G" o
  32.         HAL_UART_Receive_IT(&huart3,&RX_dat,1);
    & r( f2 T/ o7 D$ R- |' n
  33. }8 B9 ]6 A7 V& W  p2 }9 @1 [; J* e( Z
复制代码
/ w& l* P# S3 X+ I
总结
2 h1 S+ `) s7 \. U蓝牙大家不用觉得可怕使用起来和串口是一样的。
+ z6 |/ `1 \$ U" ?6 O8 n- S/ v/ ]
4 }% ^6 L3 g1 e6 O; `5 ?
* x5 V3 ?" G- V' q3 x/ K5 I
赞 收藏 评论0 发布时间:2022-5-22 22:00

举报

0个回答

所属标签

相似技术帖

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
人形机器人运动控制、感知与智能配电
半导体创新技术与应用方向
EE架构与软件定义汽车
12V/48V 汽车智能配电(SPD)
区域控制单元(ZCU)与分区架构
关注我们
st-img 微信公众号
st-img 手机版