基于蓝牙的APP控制STM32板LED小灯

一、准备工作

功能:用APP控制STM32F103单片机上的部件如:LED小灯,蜂鸣器。。

硬件:蓝牙模块、STM32F103战舰(或其他单片机)、手机一部

软件:AppInventor(网上下载,不能放在有中文的文件夹中,否则报错)

二、功能实现

蓝牙模块:连接HC-05  VCC GND TX(接单片机RXD) RX(TXD)打开蓝牙串口通信助手(正点原子A盘增值资料里有)

此时,蓝牙的小灯会以慢闪的形式亮灭。我这里,接的是串口PB10和PB11。

基于蓝牙的APP控制STM32板LED小灯_第1张图片基于蓝牙的APP控制STM32板LED小灯_第2张图片

代码如下:重点是需要打开第二个串口 uart3.c、timer.c均可在增值资料的蓝牙HC-05中找到

#include "led.h"
#include "delay.h"
#include "key.h"
#include "sys.h"
#include "usart.h"
#include "usart3.h"
#include "beep.h" 
#include "string.h"      


 int main(void)
 {        
     u16 t;  
    u16 len;    
    u16 reclen;
    u16 times=0;
    delay_init();             //延时函数初始化      
    NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); //设置NVIC中断分组2:2位抢占优先级,2位响应优先级
    uart_init(115200);     //串口初始化为115200
    usart3_init(9600);    //初始化串口2为:9600,波特率.
     LED_Init();                 //LED端口初始化
    KEY_Init();          //初始化与按键连接的硬件接口
    BEEP_Init();             //初始化蜂鸣器端口
    USART3_RX_STA=0;
     while(1)
    {
        if(USART_RX_STA&0x8000)
        {                       
            len=USART_RX_STA&0x3fff;//得到此次接收到的数据长度
            printf("\r\n您发送的消息为:\r\n\r\n");
            for(t=0;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;
        }else
        {
            times++;
            if(times%5000==0)
            {
                printf("\r\n战舰STM32开发板 串口实验\r\n");
                printf("正点原子@ALIENTEK\r\n\r\n");
            }
            if(times%200==0)printf("请输入数据,以回车键结束\n");  
            if(times%30==0)LED0=!LED0;//闪烁LED,提示系统正在运行.
            delay_ms(10);   
        }
        
        if(USART3_RX_STA&0X8000)            //接收到一次数据了
        {
            reclen=USART3_RX_STA&0X7FFF;    //得到数据长度
          USART3_RX_BUF[reclen]=0;         //加入结束符
            if(reclen==3)         //控制DS1检测
            {
                if(strcmp((const char*)USART3_RX_BUF,"LED")==0)
                {
                    LED1=!LED1;
                }
            }
                    if(strcmp((const char*)USART3_RX_BUF,"BEEP")==0)
                {
                BEEP=!BEEP;
                }
             reclen=USART3_RX_STA&0X7FFF;    //得到数据长度
          USART3_RX_BUF[reclen]=0;         //加入结束符
             USART3_RX_STA=0;     
        }                             
    }     
 }

三、APP的制作

使用app inventor:基于蓝牙的APP控制STM32板LED小灯_第3张图片

基于蓝牙的APP控制STM32板LED小灯_第4张图片

基于蓝牙的APP控制STM32板LED小灯_第5张图片

 基于蓝牙的APP控制STM32板LED小灯_第6张图片基于蓝牙的APP控制STM32板LED小灯_第7张图片

APP制作完成后~下载到手机、打开APP 同时按选择蓝牙设备即可连接蓝牙。。其余按对应按键即可。

你可能感兴趣的:(基于蓝牙的APP控制STM32板LED小灯)