-
2021-07-01 19:57:42
MyBluetooth/.gitignore , 127
MyBluetooth/.gradle/3.3/taskArtifacts/fileHashes.bin , 139383
MyBluetooth/.gradle/3.3/taskArtifacts/fileSnapshots.bin , 2897098
MyBluetooth/.gradle/3.3/taskArtifacts/taskArtifacts.bin , 86227
MyBluetooth/.gradle/3.3/taskArtifacts/taskArtifacts.lock , 17
MyBluetooth/.gradle/3.3/tasks/_app_compileDebugJavaWithJavac/localClassSetAnalysis/localClassSetAnalysis.bin , 110675
MyBluetooth/.gradle/3.3/tasks/_app_compileDebugJavaWithJavac/localClassSetAnalysis/localClassSetAnalysis.lock , 17
MyBluetooth/.gradle/3.3/tasks/_app_compileDebugJavaWithJavac/localJarClasspathSnapshot/localJarClasspathSnapshot.bin , 20081
MyBluetooth/.gradle/3.3/tasks/_app_compileDebugJavaWithJavac/localJarClasspathSnapshot/localJarClasspathSnapshot.lock , 17
MyBluetooth/.idea/compiler.xml , 686
MyBluetooth/.idea/copyright/profiles_settings.xml , 76
MyBluetooth/.idea/encodings.xml , 236
MyBluetooth/.idea/gradle.xml , 626
MyBluetooth/.idea/libraries/animated_vector_drawable_25_3_1.xml , 601
MyBluetooth/.idea/libraries/appcompat_v7_25_3_1.xml , 565
MyBluetooth/.idea/libraries/constraint_layout_1_0_2.xml , 410
MyBluetooth/.idea/libraries/constraint_layout_solver_1_0_2.xml , 337
MyBluetooth/.idea/libraries/espresso_core_2_2_2.xml , 579
MyBluetooth/.idea/libraries/espresso_idling_resource_2_2_2.xml , 612
MyBluetooth/.idea/libraries/exposed_instrumentation_api_publish_0_5.xml , 630
MyBluetooth/.idea/libraries/hamcrest_core_1_3.xml , 526
MyBluetooth/.idea/libraries/hamcrest_integration_1_3.xml , 354
MyBluetooth/.idea/libraries/hamcrest_library_1_3.xml , 342
MyBluetooth/.idea/libraries/javawriter_2_1_1.xml , 330
MyBluetooth/.idea/libraries/javax_annotation_api_1_2.xml , 358
MyBluetooth/.idea/libraries/javax_inject_1.xml , 324
MyBluetooth/.idea/libraries/jsr305_2_0_1.xml , 330
MyBluetooth/.idea/libraries/junit_4_12.xml , 477
MyBluetooth/.idea/libraries/rules_0_5.xml , 540
MyBluetooth/.idea/libraries/runner_0_5.xml , 543
MyBluetooth/.idea/libraries/support_annotations_25_3_1.xml , 495
MyBluetooth/.idea/libraries/support_compat_25_3_1.xml , 571
MyBluetooth/.idea/libraries/support_core_ui_25_3_1.xml , 574
MyBluetooth/.idea/libraries/support_core_utils_25_3_1.xml , 583
MyBluetooth/.idea/libraries/support_fragment_25_3_1.xml , 577
MyBluetooth/.idea/libraries/support_media_compat_25_3_1.xml , 589
MyBluetooth/.idea/libraries/support_v4_25_3_1.xml , 404
MyBluetooth/.idea/libraries/support_vector_drawable_25_3_1.xml , 598
MyBluetooth/.idea/misc.xml , 2226
MyBluetooth/.idea/modules.xml , 359
MyBluetooth/.idea/runConfigurations.xml , 564
MyBluetooth/.idea/workspace.xml , 186924
MyBluetooth/app/.gitignore , 8
MyBluetooth/app/app.iml , 10177
MyBluetooth/app/build/generated/source/buildConfig/androidTest/debug/com/example/gao/mybluetooth/test/BuildConfig.java , 471
MyBluetooth/app/build/generated/source/buildConfig/debug/com/example/gao/mybluetooth/BuildConfig.java , 461
MyBluetooth/app/build/generated/source/r/androidTest/debug/android/app/R.java , 241
MyBluetooth/app/build/generated/source/r/androidTest/debug/android/support/test/espresso/idling/R.java , 266
MyBluetooth/app/build/generated/source/r/androidTest/debug/android/support/test/espresso/R.java , 362
MyBluetooth/app/build/generated/source/r/androidTest/debug/android/support/test/R.java , 250
MyBluetooth/app/build/generated/source/r/androidTest/debug/android/support/test/rule/R.java , 358
MyBluetooth/app/build/generated/source/r/androidTest/debug/com/example/gao/mybluetooth/test/R.java , 407
MyBluetooth/app/build/generated/source/r/debug/android/support/compat/R.java , 252
MyBluetooth/app/build/generated/source/r/debug/android/support/constraint/R.java , 15438
MyBluetooth/app/build/generated/source/r/debug/android/support/coreui/R.java , 252
MyBluetooth/app/build/generated/source/r/debug/android/support/coreutils/R.java , 255
MyBluetooth/app/build/generated/source/r/debug/android/support/fragment/R.java , 254
MyBluetooth/app/build/generated/source/r/debug/android/support/graphics/drawable/animated/R.java , 272
MyBluetooth/app/build/generated/source/r/debug/android/support/graphics/drawable/R.java , 263
MyBluetooth/app/build/generated/source/r/debug/android/support/mediacompat/R.java , 257
MyBluetooth/app/build/generated/source/r/debug/android/support/v4/R.java , 248
MyBluetooth/app/build/generated/source/r/debug/android/support/v7/appcompat/R.java , 110550
MyBluetooth/app/build/generated/source/r/debug/com/example/gao/mybluetooth/R.java , 569248
MyBluetooth/app/build/intermediates/blame/res/androidTest/debug/multi/values.json , 925
MyBluetooth/app/build/intermediates/blame/res/debug/multi/color.json , 2
MyBluetooth/app/build/intermediates/blame/res/debug/multi/layout.json , 2
MyBluetooth/app/build/intermediates/blame/res/debug/multi/values-af.json , 15584
MyBluetooth/app/build/intermediates/blame/res/debug/multi/values-am.json , 15578
MyBluetooth/app/build/intermediates/blame/res/debug/multi/values-ar.json , 15586
MyBluetooth/app/build/intermediates/blame/res/debug/multi/values-az-rAZ.json , 15016
MyBluetooth/app/build/intermediates/blame/res/debug/multi/values-b+sr+Latn.json , 15896
MyBluetooth/app/build/intermediates/blame/res/debug/multi/values-be-rBY.json , 15766
MyBluetooth/app/build/intermediates/blame/res/debug/multi/values-bg.json , 15590
MyBluetooth/app/build/intermediates/blame/res/debug/multi/values-bn-rBD.json , 15770
MyBluetooth/app/build/intermediates/blame/res/debug/multi/values-bs-rBA.json , 15766
MyBluetooth/app/build/intermediates/blame/res/debug/multi/values-ca.json , 15590
MyBluetooth/app/build/intermediates/blame/res/debug/multi/values-cs.json , 15586
MyBluetooth/app/build/intermediates/blame/res/debug/multi/values-da.json , 15582
MyBluetooth/app/build/intermediates/blame/res/debug/multi/values-de.json , 15586
MyBluetooth/app/build/intermediates/blame/res/debug/multi/values-el.json , 15592
MyBluetooth/app/build/intermediates/blame/res/debug/multi/values-en-rAU.json , 15758
MyBluetooth/app/build/intermediates/blame/res/debug/multi/values-en-rGB.json , 15758
MyBluetooth/app/build/intermediates/blame/res/debug/multi/values-en-rIN.json , 15758
MyBluetooth/app/build/intermediates/blame/res/debug/multi/values-es-rUS.json , 15768
MyBluetooth/app/build/intermediates/blame/res/debug/multi/values-es.json , 15588
MyBluetooth/app/build/intermediates/blame/res/debug/multi/values-et-rEE.json , 15768
MyBluetooth/app/build/intermediates/blame/res/debug/multi/values-eu-rES.json , 15764
MyBluetooth/app/build/intermediates/blame/res/debug/multi/values-fa.json , 15588
MyBluetooth/app/build/intermediates/blame/res/debug/multi/values-fi.json , 15582
MyBluetooth/app/build/intermediates/blame/res/debug/multi/values-fr-rCA.json , 15768
MyBluetooth/app/build/intermediates/blame/res/debug/multi/values-fr.json , 15592
MyBluetooth/app/build/intermediates/blame/res/debug/multi/values-gl-rES.json , 15766
MyBluetooth/app/build/intermediates/blame/res/debug/multi/values-gu-rIN.json , 15762
MyBluetooth/app/build/intermediates/blame/res/debug/multi/values-h720dp-v13.json , 958
MyBluetooth/app/build/intermediates/blame/res/debug/multi/values-hdpi-v4.json , 1018
MyBluetooth/app/build/intermediates/blame/res/debug/multi/values-hi.json , 15588
MyBluetooth/app/build/intermediates/blame/res/debug/multi/values-hr.json , 15586
MyBluetooth/app/build/intermediates/blame/res/debug/multi/values-hu.json , 15592
MyBluetooth/app/build/intermediates/blame/res/debug/multi/values-hy-rAM.json , 15760
MyBluetooth/app/build/intermediates/blame/res/debug/multi/values-in.json , 15588
MyBluetooth/app/build/intermediates/blame/res/debug/multi/values-is-rIS.json , 15756
MyBluetooth/app/build/intermediates/blame/res/debug/multi/values-it.json , 15584
MyBluetooth/app/build/intermediates/blame/res/debug/multi/values-iw.json , 15580
MyBluetooth/app/build/intermediates/blame/res/debug/multi/values-ja.json , 15574
MyBluetooth/app/build/intermediates/blame/res/debug/multi/values-ka-rGE.json , 15764
MyBluetooth/app/build/intermediates/blame/res/debug/multi/values-kk-rKZ.json , 15762
MyBluetooth/app/build/intermediates/blame/res/debug/multi/values-km-rKH.json , 15760
MyBluetooth/app/build/intermediates/blame/res/debug/multi/values-kn-rIN.json , 15766
MyBluetooth/app/build/intermediates/blame/res/debug/multi/values-ko.json , 15570
MyBluetooth/app/build/intermediates/blame/res/debug/multi/values-ky-rKG.json , 15762
MyBluetooth/app/build/intermediates/blame/res/debug/multi/values-land.json , 3130
MyBluetooth/app/build/intermediates/blame/res/debug/multi/values-large-v4.json , 6876
MyBluetooth/app/build/intermediates/blame/res/debug/multi/values-ldltr-v21.json , 956
MyBluetooth/app/build/intermediates/blame/res/debug/multi/values-lo-rLA.json , 15758
MyBluetooth/app/build/intermediates/blame/res/debug/multi/values-lt.json , 15592
MyBluetooth/app/build/intermediates/blame/res/debug/multi/values-lv.json , 15590
MyBluetooth/app/build/intermediates/blame/res/debug/multi/values-mk-rMK.json , 14276
MyBluetooth/app/build/intermediates/blame/res/debug/multi/values-ml-rIN.json , 15766
MyBluetooth/app/build/intermediates/blame/res/debug/multi/values-mn-rMN.json , 15760
MyBluetooth/app/build/intermediates/blame/res/debug/multi/values-mr-rIN.json , 15766
MyBluetooth/app/build/intermediates/blame/res/debug/multi/values-ms-rMY.json , 15764
MyBluetooth/app/build/intermediates/blame/res/debug/multi/values-my-rMM.json , 15768
MyBluetooth/app/build/intermediates/blame/res/debug/multi/values-nb.json , 15578
MyBluetooth/app/build/intermediates/blame/res/debug/multi/values-ne-rNP.json , 15770
MyBluetooth/app/build/intermediates/blame/res/debug/multi/values-night-v8.json , 5394
MyBluetooth/app/build/intermediates/blame/res/debug/multi/values-nl.json , 15592
MyBluetooth/app/build/intermediates/blame/res/debug/multi/values-pa-rIN.json , 15758
MyBluetooth/app/build/intermediates/blame/res/debug/multi/values-pl.json , 15588
MyBluetooth/app/build/intermediates/blame/res/debug/multi/values-port.json , 934
MyBluetooth/app/build/intermediates/blame/res/debug/multi/values-pt-rBR.json , 15768
MyBluetooth/app/build/intermediates/blame/res/debug/multi/values-pt-rPT.json , 15768
MyBluetooth/app/build/intermediates/blame/res/debug/multi/values-pt.json , 15592
MyBluetooth/app/build/intermediates/blame/res/debug/multi/values-ro.json , 15592
MyBluetooth/app/build/intermediates/blame/res/debug/multi/values-ru.json , 15590
MyBluetooth/app/build/intermediates/blame/res/debug/multi/values-si-rLK.json , 15764
MyBluetooth/app/build/intermediates/blame/res/debug/multi/values-sk.json , 15584
MyBluetooth/app/build/intermediates/blame/res/debug/multi/values-sl.json , 15588
MyBluetooth/app/build/intermediates/blame/res/debug/multi/values-sq-rAL.json , 15764
MyBluetooth/app/build/intermediates/blame/res/debug/multi/values-sr.json , 15588
MyBluetooth/app/build/intermediates/blame/res/debug/multi/values-sv.json , 15586
MyBluetooth/app/build/intermediates/blame/res/debug/multi/values-sw.json , 15584
MyBluetooth/app/build/intermediates/blame/res/debug/multi/values-sw600dp-v13.json , 6184
MyBluetooth/app/build/intermediates/blame/res/debug/multi/values-ta-rIN.json , 15766
MyBluetooth/app/build/intermediates/blame/res/debug/multi/values-te-rIN.json , 15768
MyBluetooth/app/build/intermediates/blame/res/debug/multi/values-th.json , 15584
MyBluetooth/app/build/intermediates/blame/res/debug/multi/values-tl.json , 15594
MyBluetooth/app/build/intermediates/blame/res/debug/multi/values-tr.json , 15584
MyBluetooth/app/build/intermediates/blame/res/debug/multi/values-uk.json , 15586
MyBluetooth/app/build/intermediates/blame/res/debug/multi/values-ur-rPK.json , 15762
MyBluetooth/app/build/intermediates/blame/res/debug/multi/values-uz-rUZ.json , 15766
MyBluetooth/app/build/intermediates/blame/res/debug/multi/values-v11.json , 19198
最多只能显示150条信息!
更多相关内容 -
STM32蓝牙模块
2019-01-15 20:59:31关于蓝牙通信以及硬件配置,设置局域网和基本的知识组织 -
stm32蓝牙模块程序及相关资料
2020-11-19 17:53:59这里面我用stm32控制蓝牙模块点亮LED灯的简单实验,让新手能简单通过蓝牙模块控制stm32上面的某些设备!资料里面有AT指令集!!! -
STM32蓝牙模块测试代码
2017-07-15 11:22:30STM32开发板蓝牙的程序源码 -
STM32F103C8T6核心板蓝牙模块
2022-02-16 14:06:20STM32F103C8T6核心板蓝牙模块原理图 -
基于STM32的蓝牙模块
2016-04-19 10:55:18基于STM32的蓝牙模块,主控室STM32F107VCT6,蓝牙模块是BC04 -
基于stm32的蓝牙智能小车
2020-12-15 17:22:53基于stm32的蓝牙智能小车,可实现多种功能,通过蓝牙模块和stm32进行实时通讯,减速直流电机控制小车的移动,采用差速传动后驱,串联前轮,达到驱动小车的目的;超声波和oled显示配合,通过超声波测距测量小车距离... -
STM32战舰HC05蓝牙串口模块程序源码.rar
2019-05-14 22:41:28使用STM32战舰版,网上购买的HC-05模块,PA2-RXD,PA3-TXD,VCC-5V,GND-GND,STATE和EN不连。注意使用的串口为两个,串口二的PA2和PA3连接蓝牙模块,串口一需要和战舰板上的TXD和RXD连接。另外连接完成后,需要按下... -
STM32蓝牙模块的收发数据问题
2022-05-01 08:24:16问题遇到的现象和发生背景 使用JDY-31蓝牙模块接发数据时,如果使用重定义后的printf函数对接收到的数据进行返回,从蓝牙调试助手上看是正确的,但通过J-Scope查看变量,却现实始终未0,并且发送的数据无法得到响应... -
STM32实时监测PM2.5传感器数据并实现蓝牙通信和LCD显示
2019-11-30 20:16:14近日学习STM32串口通信,手上又有现成的PM2.5传感器和蓝牙HC-06模块,于是做了一个小型的空气检测并通过蓝牙实时往手机发送的小系统,并且通过L298N电机驱动可以控制一个电机进行空气清新,因为电机还没到,而且空气... -
实战项目(2)STM32cubeMX配置蓝牙模块
2022-02-17 14:49:11文章目录前言一、蓝牙模块介绍二、cubeMX配置及代码解析1.cubeMX配置2.代码解析总结 前言 本篇文章带大家了解并学会使用蓝牙模块 一、蓝牙模块介绍 JDY31蓝牙模块 JDY-31 蓝牙基于蓝牙 3.0 SPP 设计,这样可以支持 ...前言
本篇文章带大家了解并学会使用蓝牙模块
一、蓝牙模块介绍
JDY31蓝牙模块
JDY-31 蓝牙基于蓝牙 3.0 SPP 设计,这样可以支持 Windows、Linux、android 数据透传,
工作频段 2.4GHZ,调制方式 GFSK,最大发射功率 8db,最大发射距离 30 米,支持用户通过
AT 命令修改设备名、波特率等指令,方便快捷使用灵活。蓝牙接线方式
VCC-3.3V
GND-GND
TXD-RXD
RXD-TXD二、cubeMX配置及代码解析
1.cubeMX配置
1.选择型号
2.设置晶振
3.开启串口中断和设置波特率
这里选择的是串口3大家根据自己的接线选择串口号
4.设置时钟树
5.设置一个灯用来检测蓝牙功能
6.创建工程
2.代码解析
蓝牙大家可能会觉得很高大上其实不然他和串口的使用方法是完全一样的,
下面就给大家讲解蓝牙代码的编写。//灯LED1的IO定义 #define LED1_RESET() HAL_GPIO_WritePin(LED1_GPIO_Port, LED1_Pin, GPIO_PIN_RESET) //设置LED1低电平 #define LED1_SET() HAL_GPIO_WritePin(LED1_GPIO_Port, LED1_Pin, GPIO_PIN_SET) //设置LED1高电平 u8 RX_dat=0;//接收变量 u8 TX[]="Hello"; //回调函数 void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart) { if(huart->Instance == USART3) { if(RX_dat==0xa1) { LED1_SET(); HAL_UART_Receive_IT(&huart3,&RX_dat,1);//启动接收函数 } else if(RX_dat==0xa2) { LED1_RESET(); HAL_UART_Receive_IT(&huart3,&RX_dat,1);//启动接收函数 } } } HAL_UART_Transmit(&huart3,TX,sizeof(TX),10000);//开机发送Hello while(1) { HAL_UART_Receive_IT(&huart3,&RX_dat,1); }
总结
蓝牙大家不用觉得可怕使用起来和串口是一样的。大家有问题可以留言或者私信,喜欢的朋友点个赞。
-
stm32f103c8t6控制蓝牙模块实现led灯亮灭
2020-11-19 19:51:22stm32f103c8t6控制蓝牙模块实现led灯亮灭 之前利用蓝牙模块是用arduino控制板的,现在已经渐渐接触stm32,所以,这次想着用stm32来控制蓝牙模块。 首先的话,需要配置蓝牙模块的一些参数,用到的模块有: USB转TTL...stm32f103c8t6控制蓝牙模块实现led灯亮灭
之前利用蓝牙模块是用arduino控制板的,现在已经渐渐接触stm32,所以,这次想着用stm32来控制蓝牙模块。
首先的话,需要配置蓝牙模块的一些参数,用到的模块有:
USB转TTL模块、HC-05蓝牙模块
两模块共地,两模块共VCC(VCC取5V);蓝牙模块的RX接转换模块的TX,蓝牙模块的TX接转换模块的RX。然后直接把USB转TTL模块插入电脑的USB接口,利用串口调试助手来设置模块的参数,关于这个串口调试助手,相信接触过单片机的人都会有的,这里就不发出来了。蓝牙模块的调试
**HC-05蓝牙串口通讯模块具有两种工作模式:命令响应工作模式和自动连接工作模式。**在自动连接工作模式下模块又可分为主(Master)、从(Slave)和回环(Loopback)三种工作角色。
当模块处于自动连接工作模式时,将自动根据事先设定的方式连接的数据传输;
当模块处于命令响应工作模式时能执行AT命令,用户可向模块发送各种AT 指令,为模块设定控制参数或发布控制命令。
怎么进入命令响应工作模式?进入命令响应工作模式有两种方法:
模块上电,未配对情况下就是AT模式,波特率为模块本身的波特率,默认:9600,发送一次AT指令时需要置高一次PIO11;
PIO11 置高电平后,再给模块上电,此时模块进入AT 模式,波特率固定为:38400,可以直接发送AT指令。
什么叫做置高一次PIO11?**在蓝牙模块中有一个小按键,按一下就置高一次PIO11。**也就是说,第一种方法需要每发送一次AT指令按一次;而第二种方式是长按的过程中上电,之后就无需再管了,直接发送AT命令即可。
需要注意一下,两种进入命令响应工作模式的方式使用的波特率是不一样的,建议使用第二种方式。
怎么区分进了命令响应工作模式呢?
在蓝牙模块上有灯,当灯快闪的时候,就是自动连接工作模式;当灯慢闪的时候,就是命令响应工作模式。
本人在测试过程中,是先按住小按键后,然后把USB转TTL模块插入到电脑的USB中去,这样蓝牙模块上面的灯就慢闪,进入了AT模式。
接着就是要设置蓝牙的参数了:
1)需要设置蓝牙模块的名字,在和手机app连接的时候方便查找,在串口调试助手中发送指令AT+NAME=HC-05,发送指令后,会返回OK,之后你手机app在搜索蓝牙模块的时候就会出现一个名字为HC-05的蓝牙,这个HC-05你也可以改成别的名字。发送指令AT+NAME?:获得设备名称,这个AT指令有很大可能性是没有返回的,因为我也看到了很多的例子……,但是其他的指令都是没有问题的,直接设置设备名称就行了;你还需要发送指令AT+ADDR?,这个指令会返回一个蓝牙地址,因为有时候手机第一次连接蓝牙模块的时候,是没有蓝牙名字的,只有蓝牙地址,所以这个地址可以让你找到你这个蓝牙模块。
2)需要设置连接蓝牙的密码,在串口调试助手中发送指令AT+PSWD=2019,发送指令后,会返回OK,这样手机在连接蓝牙时,就需要输入密码2019才能连接成功,当然这样密码你也可以改成别的。发送指令AT+PSWD?,会返回这个模块当前的密码。
3)需要设置蓝牙模块是主模式还是从模式,手机上面的蓝牙一般都是主模式,所以蓝牙模块需要设置成从模式,在串口调试助手中发送指令AT+ROLE=0,0表示从模式,1表示主模式。发送指令后,会返回OK。发送指令AT+ROLE?,会返回这个模块当前的模式是主还是从。
4)需要设置串口的波特率,在串口调试助手中发送指令AT+UART=9600,0,0,发送指令后,会返回OK。发送指令AT+UART?,会返回这个模块串口参数,串口的参数一共有三个,波特率、停止位、检验位。其取值如下:参数名称 取值 波特率 24002400、4800、9600、19200、38400、5760、115200、230400、460800、921600、1382400 停止位 0:1位------------------ 1:2位 校验位 0:NONE 1:Odd 2:Even 其默认值为:9600,0,0。
手机与蓝牙模块之间的传输
直接将蓝牙模块与转换模块连接,再将其连接到电脑上,蓝牙模块直接进入自动连接工作模式。
打开手机蓝牙串口app,连接上面1)中的蓝牙地址,下面给出stm32f103c8t6控制蓝牙模块点亮stm32控制板上面PA.1灯的程序,其主要功能是在手机app上面发送字符1给蓝牙模块,蓝牙模块接收到字符1后就点亮led灯(即PA.1),在接收到字符2后就关闭led灯。
主程序:#include "led.h" #include "delay.h" #include "key.h" #include "sys.h" #include "usart.h" extern u8 res; //设置外部全局变量 int main(void) { int i; char a[]="abcdefg"; char b[7]={'1','2','3','4','5','6','7'}; delay_init(); NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); //设置NVIC中断分组2:2位抢占优先级,2位响应优先级 uart_init(115200); //串口初始化为115200 My_USART2_Init(); LED_Init(); //LED端口初始化 while(1) { if(res=='1') { GPIO_ResetBits(GPIOA,GPIO_Pin_1); //PA.1指示灯亮 delay_ms(500); //假如要用延时函数,最好就在上面初始化延时函数,不然程序很容易就跑飞 for(i=0;i<7;i++) { USART_SendData(USART2, a[i]); //向串口2发送数据给蓝牙模块 while(USART_GetFlagStatus(USART2,USART_FLAG_TC)!=SET);//等待发送结束 } res=0; } if(res=='2') { GPIO_SetBits(GPIOA,GPIO_Pin_1); //PA.1指示灯灭 res=0; } } }
手机蓝牙跟蓝牙模块通信时,手机发送的指令经过蓝牙模块发送串口2,让串口2接收,如果利用发送函数让串口2发送数据出来的话,可以在手机app上面接收到数据;利用延时函数时,最好在最开始初始化延时函数delay_init(),不要问为什么,我也不清楚,试过才知道。
子程序:u8 res; //设置全局变量 void My_USART2_Init(void) { GPIO_InitTypeDef GPIO_InitStrue; USART_InitTypeDef USART_InitStrue; NVIC_InitTypeDef NVIC_InitStrue; RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);//GPIO端口使能 RCC_APB1PeriphClockCmd(RCC_APB1Periph_USART2,ENABLE);//串口端口使能 GPIO_InitStrue.GPIO_Mode=GPIO_Mode_AF_PP; GPIO_InitStrue.GPIO_Pin=GPIO_Pin_2; GPIO_InitStrue.GPIO_Speed=GPIO_Speed_10MHz; GPIO_Init(GPIOA,&GPIO_InitStrue); GPIO_InitStrue.GPIO_Mode=GPIO_Mode_IN_FLOATING; GPIO_InitStrue.GPIO_Pin=GPIO_Pin_3; GPIO_InitStrue.GPIO_Speed=GPIO_Speed_10MHz; GPIO_Init(GPIOA,&GPIO_InitStrue); USART_InitStrue.USART_BaudRate=9600; USART_InitStrue.USART_HardwareFlowControl=USART_HardwareFlowControl_None; USART_InitStrue.USART_Mode=USART_Mode_Tx|USART_Mode_Rx; USART_InitStrue.USART_Parity=USART_Parity_No; USART_InitStrue.USART_StopBits=USART_StopBits_1; USART_InitStrue.USART_WordLength=USART_WordLength_8b; USART_Init(USART2,&USART_InitStrue); USART_Cmd(USART2,ENABLE); //使能串口2 USART_ITConfig(USART2,USART_IT_RXNE,ENABLE);//开启接收中断 NVIC_InitStrue.NVIC_IRQChannel=USART2_IRQn; NVIC_InitStrue.NVIC_IRQChannelCmd=ENABLE; NVIC_InitStrue.NVIC_IRQChannelPreemptionPriority=0; NVIC_InitStrue.NVIC_IRQChannelSubPriority=1; NVIC_Init(&NVIC_InitStrue); } void USART2_IRQHandler(void) { if(USART_GetITStatus(USART2,USART_IT_RXNE)!=RESET) { res= USART_ReceiveData(USART2); // USART_SendData(USART2,res); //串口2发送数据给蓝牙模块接收,也就是手机app接收到的数据 } }
void LED_Init(void) { GPIO_InitTypeDef GPIO_InitStructure; RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE); //使能PA端口时钟 GPIO_InitStructure.GPIO_Pin = GPIO_Pin_1; //LED-->PA.1 端口配置 GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; //推挽输出 GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; //IO口速度为50MHz GPIO_Init(GPIOA, &GPIO_InitStructure); //根据设定参数初始化GPIOA.1 }
最后附上相关程序:
stm32f103c8t6控制蓝牙模块点亮LED灯
代码要的下方留言邮箱我会第一时间发给你们的,有什么问题也可以下面评论! -
stm32 蓝牙智能窗户(终极完全版)(1)_蓝牙stm32_STM32智能窗帘_
2021-10-01 17:39:56基于STM32的温湿度检测、电机控制、时间设、RTC时钟等等 -
stm32-超声波避障_蓝牙dma_STM32循迹_超声波避障小车_stm32蓝牙小车_
2021-10-03 01:28:08蓝牙HC-06模块使用STM32 DMA控制器,使小车在循迹+避障+遥控功能的切换中运行流畅 -
蓝牙PWM小车 STM32
2021-01-13 18:26:43此例程使用HC05蓝牙模块和stm32f103c8t6单片机可实现小车任意幅度的拐弯和加速,倒车,刹车等功能 手机端APP是“蓝牙调试器”(一个巨好用的蓝牙调试软件) 内含例程说明 -
STM32+HC-05蓝牙模块学习与使用
2021-07-25 13:16:11两块HC-05蓝牙模块、一块USB-TTL、STM32F103ZET6。 除此之外,还要准备串口调试助手: XCOMV2.0 在配置蓝牙模块前,需要了解蓝牙模块的调试。 HC-05蓝牙串口通讯模块具有两种工作模式:命令响应工作模式和自动...HC-05蓝牙串口通信
HC05模块是一款高性能主从一体蓝牙串口模块,是一种集成蓝牙功能的PCBA板,用于短距离无线通信,十分方便。
从某宝商家那里可以看到,蓝牙可以使用多种方法使用,这里我使用的是蓝牙主机连接,所以我们这里需要准备的器件:两块HC-05蓝牙模块、一块USB-TTL、STM32F103ZET6。
除此之外,还要准备串口调试助手:
XCOMV2.0
在配置蓝牙模块前,需要了解蓝牙模块的调试。
HC-05蓝牙串口通讯模块具有两种工作模式:命令响应工作模式和自动连接工作模式。在自动连接工作模式下模块又可分为
主(Master)、从(Slave)和回环(Loopback)三种工作角色。
当模块处于自动连接工作模式时,将自动根据事先设定的方式连接的数据传输;
当模块处于命令响应工作模式时能执行AT命令,用户可向模块发送各种AT 指令,为模块设定控制参数或发布控制命令.模块默认为从机,需要通过AT指令切换成主机,在模块中有一个小按键,通过长按按键的放松上电,观察蓝牙上的灯,当灯快闪时,就是自动连接工作模式,当灯慢闪的时候,就进入命令响应工作模式了。
进入命令响应工作模式,通过AT命令进行配置
这里参考博主配置。
https://blog.csdn.net/seek97/article/details/81333701蓝牙1(主机)
AT+ORGL AT+PSWD="123456" AT+ROLE=1
蓝牙2(从机)
AT+ORGL AT+PSWD="123456" AT+ROLE=0 AT+ADDR? //这里返回了蓝牙2的地址:98d3:35:cd33 AT+UART=38400,0,0 //这里返回了蓝牙2的串口波特率:38400,0,0
蓝牙1(主机)
AT+BIND=98d3,35,cd33 AT+BIND? //这里返回了绑定的地址:98d3:35:cd33 AT+UART=38400,0,0 AT+UART? //这里返回了蓝牙1的串口波特率:38400,0,0 AT+CMODE=0
usart.c文件配置
按照步骤配置好两个蓝牙模块,接着就是STM32串口代码,这里没啥好讲的,这里使用正点原子的代码,注意好波特率就行,使用起来和串口一样。
#include "sys.h" #include "usart.h" // //如果使用ucos,则包括下面的头文件即可. #if SYSTEM_SUPPORT_OS #include "includes.h" //ucos 使用 #endif // //加入以下代码,支持printf函数,而不需要选择use MicroLIB #if 1 #pragma import(__use_no_semihosting) //标准库需要的支持函数 struct __FILE { int handle; }; FILE __stdout; //定义_sys_exit()以避免使用半主机模式 void _sys_exit(int x) { x = x; } //重定义fputc函数 int fputc(int ch, FILE *f) { while((USART1->SR&0X40)==0);//循环发送,直到发送完毕 USART1->DR = (u8) ch; return ch; } #endif #if EN_USART1_RX //如果使能了接收 //串口1中断服务程序 //注意,读取USARTx->SR能避免莫名其妙的错误 u8 USART_RX_BUF[USART_REC_LEN]; //接收缓冲,最大USART_REC_LEN个字节. //接收状态 //bit15, 接收完成标志 //bit14, 接收到0x0d //bit13~0, 接收到的有效字节数目 u16 USART_RX_STA=0; //接收状态标记 void uart1_init(u32 bound){ //GPIO端口设置 GPIO_InitTypeDef GPIO_InitStructure; USART_InitTypeDef USART_InitStructure; NVIC_InitTypeDef NVIC_InitStructure; RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1|RCC_APB2Periph_GPIOA, ENABLE); //使能USART1,GPIOA时钟 //USART1_TX GPIOA.9 GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9; //PA.9 GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP; //复用推挽输出 GPIO_Init(GPIOA, &GPIO_InitStructure);//初始化GPIOA.9 //USART1_RX GPIOA.10初始化 GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10;//PA10 GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;//浮空输入 GPIO_Init(GPIOA, &GPIO_InitStructure);//初始化GPIOA.10 //Usart1 NVIC 配置 NVIC_InitStructure.NVIC_IRQChannel = USART1_IRQn; NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=3 ;//抢占优先级3 NVIC_InitStructure.NVIC_IRQChannelSubPriority = 3; //子优先级3 NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; //IRQ通道使能 NVIC_Init(&NVIC_InitStructure); //根据指定的参数初始化VIC寄存器 //USART 初始化设置 USART_InitStructure.USART_BaudRate = bound;//串口波特率 USART_InitStructure.USART_WordLength = USART_WordLength_8b;//字长为8位数据格式 USART_InitStructure.USART_StopBits = USART_StopBits_1;//一个停止位 USART_InitStructure.USART_Parity = USART_Parity_No;//无奇偶校验位 USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None;//无硬件数据流控制 USART_InitStructure.USART_Mode = USART_Mode_Rx | USART_Mode_Tx; //收发模式 USART_Init(USART1, &USART_InitStructure); //初始化串口1 USART_ITConfig(USART1, USART_IT_RXNE, ENABLE);//开启串口接受中断 USART_Cmd(USART1, ENABLE); //使能串口1 } void USART1_IRQHandler(void) //串口1中断服务程序 { u8 Res; // static u8 i =0; #if SYSTEM_SUPPORT_OS //如果SYSTEM_SUPPORT_OS为真,则需要支持OS. OSIntEnter(); #endif if(USART_GetITStatus(USART1, USART_IT_RXNE) != RESET) //接收中断(接收到的数据必须是0x0d 0x0a结尾) { Res =USART_ReceiveData(USART1); //读取接收到的数据 // USART_SendData(USART1,Res); if((USART_RX_STA&0x8000)==0)//接收未完成 { if(USART_RX_STA&0x4000)//接收到了0x0d { if(Res!=0x0a)USART_RX_STA=0;//接收错误,重新开始 else USART_RX_STA|=0x8000; //接收完成了 } else //还没收到0X0D { if(Res==0x0d)USART_RX_STA|=0x4000; else { USART_RX_BUF[USART_RX_STA&0X3FFF]=Res ; USART_RX_STA++; if(USART_RX_STA>(USART_REC_LEN-1))USART_RX_STA=0;//接收数据错误,重新开始接收 } } } } #if SYSTEM_SUPPORT_OS //如果SYSTEM_SUPPORT_OS为真,则需要支持OS. OSIntExit(); #endif } #endif
usart.h配置
#ifndef __USART_H #define __USART_H #include "stdio.h" #include "sys.h" #define USART_REC_LEN 200 //定义最大接收字节数 200 #define EN_USART1_RX 1 //使能(1)/禁止(0)串口1接收 extern u8 USART_RX_BUF[USART_REC_LEN]; //接收缓冲,最大USART_REC_LEN个字节.末字节为换行符 extern u16 USART_RX_STA; //接收状态标记 void uart1_init(u32 bound); #endif
main.c配置
#include "sys.h" #include "delay.h" #include "usart.h" int main(void) { NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//设置中断优先级分组为组2:2位抢占优先级,2位响应优先级 delay_init(); //延时函数初始化 uart1_init(38400); //蓝牙串口波特率初始化为38400 while(1) { if(USART_RX_STA&0x8000) { len=USART_RX_STA&0x3fff;//得到此次接收到的数据长度 printf("\r\n您发送的消息为:\r\n\r\n"); for(t=0;t<len;t++) { USART_SendData(USART1, USART_RX_BUF[t]);//向串口1发送数据 while(USART_GetFlagStatus(USART1,USART_FLAG_TC)!=SET);//等待发送结束 } printf("\r\n\r\n");//插入换行 USART_RX_STA=0; } } }
结果
两个蓝牙上电,观察闪灯情况,两个都进入自动连接工作模式,在电脑端可以看到stm32通过串口传回的数据给电脑端的蓝牙。并且测试了串口中断,也是没有问题的。
参考博客:
https://yngzmiao.blog.csdn.net/article/details/80368485
https://blog.csdn.net/seek97/article/details/81333701 -
STM32单片机与蓝牙模块HC-05通信数据帧处理
2022-06-23 11:35:06本章将会详细讲述蓝牙模块(HC-05)和STM32单片机之间的通信收发的数据如何处理,在测试开始前首先在手机上下载好一个蓝牙调试APP,此APP可以是手机端和PC端口的,以我常用的手机端的为例。 在配置工程之前先了解... -
蓝牙hc程序(实现APP与单片机STM32F103的通信)
2018-05-04 20:39:27MCU:STM32F103 1、通过手机APP发送数据 2、通过手机APP发送指令 指令1:led0 控制led0灯状态的反转 指令2:led1 控制led1灯状态的反转 指令3:beep 控制蜂鸣器的开关 指令4:lcdwrite lcd显示一条标语 手机可接收... -
基于STM32蓝牙小车的毕业设计
2021-08-18 20:41:49点击设备列表中的“开始搜索按钮”,在设备列表中选择蓝牙模块的名字进行连接。 完成上述工作以后,就可以在手机上通过按下“start”、“left”、“stop”、“right”、“back”通过蓝牙给小车发送“前进”、“左转... -
.蓝牙模块+stm32.zip
2021-04-25 20:55:11.蓝牙模块+stm32.zip -
【STM32学习】 - JDY-31蓝牙模块
2022-06-03 22:29:22【STM32学习】 - JDY-31蓝牙模块 -
STM32F407——蓝牙模块CC2541
2022-06-07 14:29:27STM32F407——蓝牙模块CC2541 -
STM32学习笔记1:STM32ZET6配置蓝牙模块
2019-10-20 08:54:40利用STM32配置一块蓝牙模块 #1.蓝牙模块配置原理 -
stm32之蓝牙模块HC-05使用
2021-01-10 13:31:34HC-05蓝牙模块使用教程 HC-05蓝牙模块使用记录 补充与理解: 套餐有两个板子 一个是参数架HC—USB—T,其含有一款芯片stm32f103c8t6,官方利用其内存把它设置成一个u盘,用数据线连接后可进入u盘获取软件 另一个是HC-... -
STM32 Cubemax(二)——串口实现HC-05蓝牙模块与手机通信
2021-03-17 09:44:50本文使用的蓝牙是市面上常用的HC-05蓝牙模块 其引脚和STM32的连接为 蓝牙模块 单片机 RXD TX TXD RX VCC 5V GND GND STM32Cubemax配置 前面配置时钟树的基础操作就不演示了 配置串口通信,注意波特... -
STM32F103单片机读写 HC05蓝牙串口模块实验(函数库版)软件例程源码.zip
2022-06-02 13:40:25STM32F103单片机读写 HC05蓝牙串口模块实验(函数库版)软件例程源码 int main(void) { u8 t; u8 key; u8 sendmask=0; u8 sendcnt=0; u8 sendbuf[20]; u8 reclen=0; delay_init(); //延时函数初始... -
STM32蓝牙控制循迹避障小车源代码——4.蓝牙控制
2021-12-16 17:44:24STM32蓝牙控制循迹避障小车源代码——4.蓝牙控制 注意-所需模块: 蓝牙模块 接线: 串口通信 A2–RX A3–TX 所有的代码都是直接从工程里面复制的,实测是没有问题的。 蓝牙控制原理: 设计手机APP,通过按... -
STM32——蓝牙模块HC06
2020-09-21 19:05:54STM32——蓝牙模块HC06 选用的芯片是STM32F407的芯片,一个HC06的蓝牙模块。 我们采用串口连接,所以我们在芯片原理图找出串口模块。 参数 STM32串口异步通信定义的参数传送格式 起始位 数据位(8位或者9位) 奇偶... -
stm32蓝牙模块硬件连接
2022-05-17 07:15:37友友们,HC05蓝牙模块可以直接用杜邦线和stm32f103c8t6最小系统板连接吗 -
STM32应用(四)蓝牙HC-05模块
2021-08-08 10:57:11现象展示 参考博客 串口实现HC-05蓝牙模块与手机通信 欲实现功能 手机发送数字0,1来控制板子上LED0,1,的翻转。 1.接收和发送数据 配置串口,并开启DMA。 开启DMA,注意添加宏定义和变量声明。 /* USER CODE BEGIN ...