找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 7303|回复: 13
打印 上一主题 下一主题
收起左侧

STM32 hc-08蓝牙模块驱动代码(雏形物联网)

  [复制链接]
跳转到指定楼层
楼主
用stm32f103c8t6单片机和hc-08蓝牙模块实现一个雏形物联网功能新手刚接触,程序写的不好的地方请指教,勿喷,谢谢

手机连接是hc-08蓝牙模块后,输入初始密码,正确后单片机通过串口给手机发一个密码正确,然后你可以在手机上发送开灯,单片机上的LED灯亮,手机显示LED亮...也可以在手机上,输入更改密码,单片机发送先输入初始密码,正确后输入新密码,然后密码修改成功。
因为这个中文显示乱码,我不知道怎么解决,所以放2张截屏图片。 蓝牙控灯.rar (313.54 KB, 下载次数: 129)
  1. //////////////////////////////////////////////////////////////////////////////////         
  2. //本程序只供学习使用,未经作者许可,不得用于其它任何用途
  3. //版权所有,盗版必究。
  4. //
  5. //                                                                  
  6. //////////////////////////////////////////////////////////////////////////////////  

  7. #include "stm32f10x.h"
  8. //#include "led.h"
  9. //#include "key.h"
  10. //#include "usart.h"
  11. //#include "timer.h"
  12. #include "bluetooth.h"


  13. int main(void)
  14. {
  15.          //char ch;
  16.                 /*获取数据*/                                
  17.                 LED_Init();
  18.         //        USART1_Initialise(9600);
  19.           USART_Config1();
  20.                  TIM3_Int_Init(999,71);
  21.                 printf("请输入密码\r\n如果修改密码请输入    更改密码\r\n");
  22.                 //USART1_SendStr( USART1,"这是一个哈哈哈实验\n");
  23.                 while(1)
  24.                 {               
  25.                         pd();
  26.                         jg();
  27.                         quit();
  28.                 }
  29. }
复制代码

  1. #include "bluetooth.h"        
  2. //////////////////////////////////////////////////////////////////////////////////         
  3. //本程序只供学习使用,未经作者许可,不得用于其它任何用途
  4. //修改日期:2019.1.1
  5. //版权所有,盗版必究。
  6. //
  7. //                                                                  
  8. //////////////////////////////////////////////////////////////////////////////////  

  9. uint16_t j;
  10. u8 BackData[255];
  11. char hh[]="哈哈";
  12. u8 count;
  13. u8 TIME3_ON;
  14. u8 i,passwordPIN_flag=0,ok=0,correct_flag1=0;
  15. char dengl[]="开灯";
  16. char dengm[]="关灯";
  17. char baoj[]="报警";
  18. char guanb[]="关闭";
  19. char out[]="退出";
  20. u8 out_flag=0;
  21. char mima[]="更改密码";
  22. char old_mima[6]="888888";
  23. char* read_data;        
  24. void clean_rebuff(void)
  25. {
  26.         while(i)
  27.         BackData[--i] = 0;
  28. }

  29. void Change_password()
  30. {
  31.         if(strstr(read_data,mima) != 0)                                
  32.                         {
  33.                                 passwordPIN_flag=1;
  34.                                 printf("请输入旧密码\r\n");
  35.                                 ok=0;
  36.                         }
  37.                         if(passwordPIN_flag==1)
  38.                         {
  39.                                 if(ok==1)
  40.                                 {
  41.                                         if((BackData[0]==old_mima[0])&&(BackData[1]==old_mima[1])&&(BackData[2]==old_mima[2])&&(BackData[3]==old_mima[3])&&(BackData[4]==old_mima[4])&&(BackData[5]==old_mima[5]))                        
  42.                                         {
  43.                                                 printf("请输入新密码\r\n");
  44.                                                 passwordPIN_flag = 2;
  45.                                                 clean_rebuff();        
  46.                                                 ok=0;                                       
  47.                                         }
  48.                                         else
  49.                                         {
  50.                                                 passwordPIN_flag=1;
  51.                                                 printf("密码错误           \r\n");
  52.                                         }
  53.                                 }
  54.                         }
  55.                         if(passwordPIN_flag==2)
  56.                         {
  57.                                 if(ok==1)
  58.                                 {
  59.                                         old_mima[0]=BackData[0];
  60.                                         old_mima[1]=BackData[1];
  61.                                         old_mima[2]=BackData[3];
  62.                                         old_mima[3]=BackData[3];
  63.                                         old_mima[4]=BackData[5];
  64.                                         old_mima[5]=BackData[5];
  65.                                         printf("密码修改成功\r\n");                                
  66.                                         printf("新密码为%s\r\n ", old_mima);
  67.                                         printf("请输入密码  \r\n");                        
  68.                                         ok=0;
  69.                                         passwordPIN_flag=0;
  70.                                 }
  71.                         }        
  72. }
  73. void Input_password()
  74. {
  75.                 if(passwordPIN_flag==0)
  76.                         {
  77.                                 if(ok==1)
  78.                                 {                        
  79.                                         if((BackData[0]==old_mima[0])&&(BackData[1]==old_mima[1])&&(BackData[2]==old_mima[2])&&(BackData[3]==old_mima[3])&&(BackData[4]==old_mima[4])&&(BackData[5]==old_mima[5]))                                
  80.                                         {                                       
  81.                                                 correct_flag1 =1;
  82.                                                 printf("密码正确  \r\n可输入  开灯  关灯  报警  关闭报警\r\n或者退出\r\n ");
  83.                                                 ok=0;
  84.                                                 passwordPIN_flag=3;
  85.                                 }
  86.                                         else
  87.                                         {
  88.                                                 passwordPIN_flag=0;
  89.                                                 printf("密码错误           \r\n");
  90.                                                 out_flag=0;
  91.                                         }
  92.                                        
  93.                                 }        
  94.                         }
  95. }
  96. void quit()
  97. {
  98.         if(strstr(read_data,out) != 0)                                
  99.         {
  100.                 correct_flag1=0;
  101.                 out_flag=1;               
  102.                 passwordPIN_flag=0;
  103.                 printf("您已成功退出      \r\n");        
  104.                 printf("请输入密码      \r\n");
  105.                 ok=0;        
  106.                 Input_password();               
  107.         }
  108. }
  109. void pd()
  110. {

  111.         if(count > 5)
  112.                 {
  113.                         Change_password();
  114.                         Input_password();
  115.                         count = 0;
  116.                         TIME3_ON = 0;
  117.                         clean_rebuff();                        
  118.                 }               
  119. }

  120. void choice()
  121. {
  122.         //u8 sum;
  123.         if(correct_flag1 == 1)
  124.         {
  125.                 if(strstr(read_data,dengl) != 0)                                
  126.                 {
  127.                         LED0=0;
  128.                         printf("led亮                    \r\n");               
  129.                 }
  130.                 if(strstr(read_data,dengm) != 0)                                
  131.                 {
  132.                         LED0=1;
  133.                         printf("led灭                    \r\n");
  134.                 }
  135.                 if(strstr(read_data,baoj) != 0)                                
  136.                 {
  137.                         
  138.                         bee=1;
  139.                         //GPIO_SetBits(GPIOB,GPIO_Pin_9);
  140.                         printf("以报警                    \r\n");
  141.                 }
  142.                 if(strstr(read_data,guanb) != 0)                                
  143.                 {
  144.                         bee=0;
  145.                         printf("以关闭报警               \r\n");
  146.                 }
  147.         }
  148. }
  149. void jg()
  150. {
  151.                 if(correct_flag1==1)
  152.                 {        
  153.                         choice();
  154.                 }
  155. }
  156. void USART2_IRQHandler(void)
  157. {
  158.         if(USART_GetITStatus(DEBUG_USARTx2, USART_IT_RXNE) != RESET)//判断读寄存器是否非空
  159.         {               
  160.                         TIME3_ON = 1;
  161.                         ok=1;
  162.                         BackData[i] = USART_ReceiveData(DEBUG_USARTx2);
  163.                         i++;
  164.                         read_data = (char *) & BackData;
  165.                         count = 0;        
  166.         }
  167. }
复制代码



U{[N@HYO`%N}S~F`B1X]ZG6.png (84.91 KB, 下载次数: 47)

U{[N@HYO`%N}S~F`B1X]ZG6.png

S(A3$NW]RZINOU)Q%EX2B0Q.png (84.86 KB, 下载次数: 113)

S(A3$NW]RZINOU)Q%EX2B0Q.png

评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏3 分享淘帖 顶3 踩
回复

使用道具 举报

沙发
ID:46381 发表于 2019-3-14 17:40 | 只看该作者
好东西,谢谢分享!下来参考一下
回复

使用道具 举报

板凳
ID:116773 发表于 2019-3-14 19:47 | 只看该作者
感兴趣,下载看看,谢谢楼主。
回复

使用道具 举报

地板
ID:116773 发表于 2019-3-14 19:51 | 只看该作者
这个.7z文件如何打开呀?
回复

使用道具 举报

5#
ID:480686 发表于 2019-3-14 19:59 | 只看该作者
请问物联网还是单片机好
回复

使用道具 举报

6#
ID:438796 发表于 2019-3-15 09:54 来自手机 | 只看该作者
打不开吗,我下载试试
回复

使用道具 举报

7#
ID:438796 发表于 2019-3-15 10:12 | 只看该作者
hujj 发表于 2019-3-14 19:51
这个.7z文件如何打开呀?

可能我之前这个文件有问题,我更新了一下,现在可以了,不好意思,要不加我QQ,我重新发你一份
回复

使用道具 举报

8#
ID:571290 发表于 2019-6-24 23:43 | 只看该作者
请问楼主是用什么手机APP域蓝牙进行通讯的?
回复

使用道具 举报

9#
ID:667765 发表于 2019-12-18 21:15 | 只看该作者
请问楼主这个接线是怎么连得
回复

使用道具 举报

10#
ID:555216 发表于 2020-3-21 17:43 | 只看该作者
非常感谢分享
回复

使用道具 举报

11#
ID:642517 发表于 2020-5-25 17:19 | 只看该作者
谢谢楼主的资料,正愁找不到资料学习呢
回复

使用道具 举报

12#
ID:229641 发表于 2022-2-11 23:59 来自手机 | 只看该作者
蓝牙APP是啥玩意儿?
回复

使用道具 举报

13#
ID:140100 发表于 2022-3-15 18:39 | 只看该作者
可否搞个原理图图呀
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表