电子产业一站式赋能平台

PCB联盟网

搜索
查看: 2362|回复: 5
收起左侧

求助大佬!stm32蓝牙点灯问题困扰了大半天

[复制链接]

617

主题

968

帖子

5301

积分

四级会员

Rank: 4

积分
5301
发表于 2023-2-3 10:15:07 | 显示全部楼层 |阅读模式
蓝牙模块用的是非正点的zx-d30,用usb-ttl直接与蓝牙模块相连的话,电脑上的串口调试助手和手机的蓝牙助手能够正常通信,但是连接到stm32的pa9和pa10端口上,就不能正常通信了。电脑串口助手上发送1,电脑和手机上的接收区都会显示1,灯点亮,但在手机的蓝牙助手上发送1,只能在手机的接收区中显示1,但电脑上接收区不显示1,灯也点不亮。

求助大佬!stm32蓝牙点灯问题困扰了大半天-1.jpg

求助大佬!stm32蓝牙点灯问题困扰了大半天-2.jpg
回复

使用道具 举报

591

主题

1774

帖子

5769

积分

四级会员

Rank: 4

积分
5769
发表于 2023-2-3 10:15:48 | 显示全部楼层
蓝牙模块:
RX->pa9
TX->pa10
led灯连接的是pa0
回复 支持 反对

使用道具 举报

0

主题

876

帖子

675

积分

二级会员

Rank: 2

积分
675
发表于 2023-2-3 10:16:37 | 显示全部楼层
/*faj.h*/
#ifndef __FAJ_H
#define __FAJ_H
extern uint8_t uu;
void faj_init(void);
void T(uint8_t k);
void USART1_IRQHandler(void);
#endif
回复 支持 反对

使用道具 举报

10

主题

905

帖子

812

积分

二级会员

Rank: 2

积分
812
发表于 2023-2-3 10:17:22 | 显示全部楼层
/*faj.c*/
#include "stm32f10x.h"
uint8_t uu;
void faj_init(void)
{ GPIO_InitTypeDef p;USART_InitTypeDef l;NVIC_InitTypeDef i;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);
RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1,ENABLE);

p.GPIO_Mode=GPIO_Mode_Out_PP;
p.GPIO_Pin=GPIO_Pin_0;
p.GPIO_Speed=GPIO_Speed_50MHz;
GPIO_Init(GPIOA,&p);

p.GPIO_Mode=GPIO_Mode_AF_PP;
p.GPIO_Pin=GPIO_Pin_9;
p.GPIO_Speed=GPIO_Speed_50MHz;
GPIO_Init(GPIOA,&p);

p.GPIO_Mode=GPIO_Mode_IN_FLOATING;
p.GPIO_Pin=GPIO_Pin_10;
p.GPIO_Speed=GPIO_Speed_50MHz;
GPIO_Init(GPIOA,&p);

  l.USART_BaudRate=9600;
l.USART_HardwareFlowControl= USART_HardwareFlowControl_None;
l.USART_Mode=USART_Mode_Tx | USART_Mode_Rx ;
l.USART_Parity=USART_Parity_No;
l.USART_StopBits=USART_StopBits_1;
l.USART_WordLength=USART_WordLength_8b;
USART_Init(USART1,&l);

USART_ITConfig(USART1,USART_IT_RXNE,ENABLE);

  NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);
i.NVIC_IRQChannel=USART1_IRQn;
i.NVIC_IRQChannelCmd=ENABLE;
i.NVIC_IRQChannelPreemptionPriority=1;
i.NVIC_IRQChannelSubPriority=1;
NVIC_Init(&i);

USART_Cmd(USART1,ENABLE);
}
void T(uint8_t k)
{
USART_SendData(USART1,k);
while(USART_GetFlagStatus(USART1,USART_FLAG_TXE)==RESET);
}
void USART1_IRQHandler(void)
{
if(USART_GetITStatus(USART1,USART_IT_RXNE)==SET)
{uu=USART_ReceiveData(USART1);
  T(uu);
  USART_ClearITPendingBit(USART1,USART_IT_RXNE);
}
}
回复 支持 反对

使用道具 举报

633

主题

1927

帖子

8107

积分

联盟顾问

Rank: 3Rank: 3

积分
8107
发表于 2023-2-3 10:18:05 | 显示全部楼层
/*main.c*/
#include "stm32f10x.h"
#include "LCD.h"
#include "Delay.h"
#include "faj.h"

int main(void)
{
faj_init();
while(1){
T(0x41);Delay_s(5);
if(uu==0x31) GPIO_WriteBit(GPIOA,GPIO_Pin_0,(BitAction)(1));
if(uu==0x30) GPIO_WriteBit(GPIOA,GPIO_Pin_0,(BitAction)(0));
}
}
回复 支持 反对

使用道具 举报

0

主题

804

帖子

517

积分

二级会员

Rank: 2

积分
517
发表于 2023-2-3 10:18:45 | 显示全部楼层
求懂蓝牙模块的大佬救救孩子
求助大佬!stm32蓝牙点灯问题困扰了大半天-1.png
回复 支持 反对

使用道具 举报

发表回复

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

本版积分规则

关闭

站长推荐上一条 /1 下一条


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