电子产业一站式赋能平台

PCB联盟网

搜索
查看: 3363|回复: 9
收起左侧

hc05蓝牙模块 不是正点的

[复制链接]

587

主题

981

帖子

5126

积分

四级会员

Rank: 4

积分
5126
发表于 2022-7-28 16:31:38 | 显示全部楼层 |阅读模式
int main(void)
{
delay_init();    //延时函数初始化  
LED_Init();  //初始化与LED连接的硬件接口
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//usart3接收中断优先级2 次优先级2
usart3_init(9600);//蓝牙的串口初始化 注意手机与单片机的蓝牙连接波特率是要9600
while(1)

{
  if(USART3_RX_STA&&0x8000)
{
  if(USART3_RX_BUF[0]=='0')
{
LED1=!LED1;
}
USART3_RX_STA=0;
}
}}
回复

使用道具 举报

657

主题

1025

帖子

5598

积分

四级会员

Rank: 4

积分
5598
发表于 2022-7-28 16:31:51 | 显示全部楼层
#include "usart1.h"
#include "sys.h"


u8 USART3_RX_BUF[USART3_REC_LEN]; //数组用来存储接收到的数据,而USART3_REC_LEN为最多能接收的字节限度
u16 USART3_RX_STA=0;         //接收状态标记 0-14位为接收字节数,15位接收完成标志位
void usart3_init(u32 bound)
{
GPIO_InitTypeDef GPIO_InitStructure;
NVIC_InitTypeDef NVIC_InitStructurea;
USART_InitTypeDef USART_InitStruct;

    RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1,ENABLE);//使能串口3
    RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE); //使能GPIOB
//  USART_DeInit(USART3);//串口3复位 不是必要的一步

GPIO_InitStructure.GPIO_Mode=GPIO_Mode_AF_PP;
GPIO_InitStructure.GPIO_Pin=GPIO_Pin_9;
GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;
GPIO_Init(GPIOA,&GPIO_InitStructure);    //PB10设置为复用推挽输出

GPIO_InitStructure.GPIO_Mode=GPIO_Mode_IN_FLOATING;
GPIO_InitStructure.GPIO_Pin=GPIO_Pin_10;
GPIO_Init(GPIOA,&GPIO_InitStructure);  //PB11设置为浮空输入
  
NVIC_InitStructurea.NVIC_IRQChannel=USART1_IRQn;
NVIC_InitStructurea.NVIC_IRQChannelCmd=ENABLE;
NVIC_InitStructurea.NVIC_IRQChannelPreemptionPriority=2;
NVIC_InitStructurea.NVIC_IRQChannelSubPriority=2;
NVIC_Init(&NVIC_InitStructurea);          //串口3中断的设置

USART_ITConfig(USART1,USART_IT_RXNE,ENABLE);//串口3中断使能和中断类型设置

USART_InitStruct.USART_BaudRate=bound;//串口波特率
USART_InitStruct.USART_HardwareFlowControl=USART_HardwareFlowControl_None;//无硬件数据流控制
USART_InitStruct.USART_Mode=USART_Mode_Rx|USART_Mode_Tx;//收发模式
USART_InitStruct.USART_Parity=USART_Parity_No;//无奇偶校验位
USART_InitStruct.USART_StopBits=USART_StopBits_1;//一个停止位
USART_InitStruct.USART_WordLength=USART_WordLength_8b;//字长为8位数据格式
USART_Init(USART1,&USART_InitStruct);                 //串口3的一些参数设置

USART_Cmd(USART1,ENABLE);//串口3使能


}
void USART1_IRQHandler()//串口3的中断
{
u8 res;//暂时缓存接收的数据
   if(USART_GetITStatus(USART1,USART_IT_RXNE)!=RESET)//判断是否为串口3接收中断
{
  
    res=USART_ReceiveData(USART1);//接收到数据放进res
  USART3_RX_BUF[USART3_RX_STA&0x7FFF]=res;//数据放进数组中,则可以用到main函数中了
  USART3_RX_STA++;                         //字节长度++
if(USART3_RX_STA>(USART3_REC_LEN-1))  
USART3_RX_STA=0;//接收数据错误,重新开始接收+;
USART3_RX_STA|=0x8000;//串口3接收完成
USART_ClearITPendingBit(USART1,USART_IT_RXNE);//清除接收中断标志
  
}
}
回复 支持 反对

使用道具 举报

568

主题

922

帖子

4783

积分

四级会员

Rank: 4

积分
4783
发表于 2022-7-28 16:32:18 | 显示全部楼层
#ifndef USART3_H_
#define USART3_H_
#include "sys.h"
#include "stdio.h"
#define USART3_REC_LEN  200  //定义最大接收字节数 200
extern u8  USART3_RX_BUF[USART3_REC_LEN]; //接收缓冲,最大USART_REC_LEN个字节
extern u16 USART3_RX_STA;         //接收状态标记 0-14位为接收字节数,15位接收完成标志位
void usart3_init(u32 bound);
#endif
回复 支持 反对

使用道具 举报

598

主题

943

帖子

5138

积分

四级会员

Rank: 4

积分
5138
发表于 2022-7-28 16:33:00 | 显示全部楼层
一开始用的串口3  我改成了1   但是手机发送0灯不亮 不知道为什么   希望有人可以帮帮  有偿也可以
回复 支持 反对

使用道具 举报

604

主题

970

帖子

5115

积分

四级会员

Rank: 4

积分
5115
发表于 2022-7-28 16:33:19 | 显示全部楼层
有做过蓝牙的么
回复 支持 反对

使用道具 举报

616

主题

968

帖子

5301

积分

四级会员

Rank: 4

积分
5301
发表于 2022-7-28 16:34:01 | 显示全部楼层
自顶
回复 支持 反对

使用道具 举报

600

主题

954

帖子

5061

积分

四级会员

Rank: 4

积分
5061
发表于 2022-7-28 16:34:32 | 显示全部楼层
截图吧,这样看太费劲
回复 支持 反对

使用道具 举报

585

主题

910

帖子

4977

积分

四级会员

Rank: 4

积分
4977
发表于 2022-7-28 16:35:13 | 显示全部楼层
先发初始化串口的
回复 支持 反对

使用道具 举报

633

主题

1927

帖子

8108

积分

联盟顾问

Rank: 3Rank: 3

积分
8108
发表于 2022-7-28 16:36:10 | 显示全部楼层
楼主怎么解决的?
回复 支持 反对

使用道具 举报

604

主题

947

帖子

5151

积分

四级会员

Rank: 4

积分
5151
发表于 2022-7-28 16:36:59 | 显示全部楼层
你给usart1上时钟用usart3干活
回复 支持 反对

使用道具 举报

发表回复

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

本版积分规则


联系客服 关注微信 下载APP 返回顶部 返回列表