标题:
STM32蓝牙测试程序成功版
[打印本页]
作者:
jijkf
时间:
2018-10-25 20:56
标题:
STM32蓝牙测试程序成功版
我用的是STM32f103,测试蓝牙成功,如果你想用sm32蓝牙控制小车,可以用这个
单片机源程序如下:
#include "sys.h"
#include "delay.h"
#include "usart.h"
#include "led.h"
//#include "usart3.h"
u8 count;
u8 jd;
u8 flag,com;
u16 t=1000;
int main(void)
{
u16 len;
u16 t;
u16 times=0;
delay_init(); //延时函数初始化
LED_Init();
//初始化与LED连接的硬件接口
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//usart3接收中断优先级2 次优先级2
uart_init(9600);//蓝牙的串口初始化 注意手机与单片机的蓝牙连接波特率是要9600;
delay_init();
while(1)
{
times++;
if(times%50==0) printf("\r\n您发送的消息为:\r\n");;
delay_ms(10);
if(USART_RX_STA&0x8000)
{
com = USART_RX_BUF[0];
len=USART_RX_STA&0x3fff;
flag = 1;
USART_RX_STA=0;
}
if(flag == 1)
{
switch(com)
{
case '1':
{
printf("\r\n您好:\r\n");
//run();
LED1 = !LED1;
for(t=0;t<len;t++)
{
USART_SendData(USART1, USART_RX_BUF[t]);//向串口1发送数据
while(USART_GetFlagStatus(USART1,USART_FLAG_TC)!=SET);//等待发送结束
}
break;
}
case '2':
{
LED0=!LED0;
printf("\r\n您消息为:\r\n");
//backrun();
for(t=0;t<len;t++)
{
USART_SendData(USART1, USART_RX_BUF[t]);//向串口1发送数据
while(USART_GetFlagStatus(USART1,USART_FLAG_TC)!=SET);//等待发送结束
}
break;
}
case '3':
{
//stoprun();
for(t=0;t<len;t++)
{
USART_SendData(USART1, USART_RX_BUF[t]);//向串口1发送数据
while(USART_GetFlagStatus(USART1,USART_FLAG_TC)!=SET);//等待发送结束
}
break;
}
case '4':
{
//leftrun();
for(t=0;t<len;t++)
{
USART_SendData(USART1, USART_RX_BUF[t]);//向串口1发送数据
while(USART_GetFlagStatus(USART1,USART_FLAG_TC)!=SET);//等待发送结束
}
break;
}
case '5':
{
//rightrun();
for(t=0;t<len;t++)
{
USART_SendData(USART1, USART_RX_BUF[t]);//向串口1发送数据
while(USART_GetFlagStatus(USART1,USART_FLAG_TC)!=SET);//等待发送结束
}
break;
}
default:break;
}
flag = 0;
}
}
}
/**
*****************下面注视的代码是通过调用库函数来实现IO控制的方法*****************************************
int main(void)
{
delay_init(); //初始化延时函数
LED_Init(); //初始化LED端口
while(1)
{
GPIO_ResetBits(GPIOB,GPIO_Pin_5); //LED0对应引脚GPIOB.5拉低,亮 等同LED0=0;
GPIO_SetBits(GPIOE,GPIO_Pin_5); //LED1对应引脚GPIOE.5拉高,灭 等同LED1=1;
delay_ms(300); //延时300ms
GPIO_SetBits(GPIOB,GPIO_Pin_5); //LED0对应引脚GPIOB.5拉高,灭 等同LED0=1;
GPIO_ResetBits(GPIOE,GPIO_Pin_5); //LED1对应引脚GPIOE.5拉低,亮 等同LED1=0;
delay_ms(300); //延时300ms
}
}
****************************************************************************************************
***/
/**
*******************下面注释掉的代码是通过 直接操作寄存器 方式实现IO口控制**************************************
int main(void)
{
delay_init(); //初始化延时函数
LED_Init(); //初始化LED端口
while(1)
{
GPIOB->BRR=GPIO_Pin_5;//LED0亮
GPIOE->BSRR=GPIO_Pin_5;//LED1灭
delay_ms(300);
GPIOB->BSRR=GPIO_Pin_5;//LED0灭
GPIOE->BRR=GPIO_Pin_5;//LED1亮
delay_ms(300);
}
}
**************************************************************************************************
**/
复制代码
所有资料51hei提供下载:
sm32蓝牙测试.rar
(284.9 KB, 下载次数: 98)
2018-10-26 01:26 上传
点击文件名下载附件
下载积分: 黑币 -5
作者:
jijkf
时间:
2018-10-25 20:57
欢迎来踩
作者:
admin
时间:
2018-10-26 01:27
蓝牙模块的名字是?
作者:
jijkf
时间:
2018-10-26 14:27
admin 发表于 2018-10-26 01:27
蓝牙模块的名字是?
hc_05蓝牙
作者:
暖阳会
时间:
2019-4-17 22:16
为什么打不开写程序?
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1