完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
模块大多数默认都是9600波特率,我不清楚你为什么要用115200。
我也用过一个蓝牙模块,但不是hc05,可以参考。 我个性签名档的博客地址,《STM32之蓝牙透传模块》。 |
|
|
|
我只知道一旦蓝牙处于透传模式,也就是两个蓝牙设备之间握手联机了就不能发AT了,发AT只能用有线串口。
|
|
|
|
|
|
|
|
你知道的太多了。。。,你先把蓝牙模块配置一遍,很多模块的出厂设置都不知道是什么参数,如何通讯、
|
|
|
|
[C] 纯文本查看 复制代码
u8 Test_Send[]="ATrn";extern vu16 USART3_RX_STA;extern u8 USART3_RX_BUF[100]; int main(void){u8 i=0;u16 temp=0;delay_init(); //延时函数初始化 NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); //设置NVIC中断分组2:2位抢占优先级,2位响应优先级uart_init(115200); //串口初始化为115200 LED_Init(); //LED端口初始化HC05_Init(); while(1){printf("test!!!rn");HC05_KEY=1;delay_ms(10);for(i=0;i //这是USART3//串口接收缓存区 u8 USART3_RX_BUF[100]; //接收缓冲,最大USART3_MAX_RECV_LEN个字节.vu16 USART3_RX_STA=0; void usart3_init(u32 bound){ //GPIO端口设置 GPIO_InitTypeDef GPIO_InitStructure;USART_InitTypeDef USART_InitStructure;NVIC_InitTypeDef NVIC_InitStructure; RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB | RCC_APB2Periph_AFIO, ENABLE);//使能GPIOB时钟RCC_APB1PeriphClockCmd(RCC_APB1Periph_USART3, ENABLE);//使能USART3时钟 //USART3_TX GPIOB.10 GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10; //PB.10 GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;//复用推挽输出 GPIO_Init(GPIOB, &GPIO_InitStructure);//初始化GPIOB.10 //USART3_RX GPIOB.11初始化 GPIO_InitStructure.GPIO_Pin = GPIO_Pin_11;//PA10 GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;//浮空输入 GPIO_Init(GPIOB, &GPIO_InitStructure);//初始化GPIOA.10 //Usart3 NVIC 配置 NVIC_InitStructure.NVIC_IRQChannel = USART3_IRQn;NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=2 ;//抢占优先级3NVIC_InitStructure.NVIC_IRQChannelSubPriority = 2;//子优先级3NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;//IRQ通道使能NVIC_Init(&NVIC_InitStructure);//根据指定的参数初始化VIC寄存器 //USART 初始化设置USART_InitStructure.USART_BaudRate = bound;//串口波特率USART_InitStructure.USART_WordLength = USART_WordLength_8b;//字长为8位数据格式USART_InitStructure.USART_StopBits = USART_StopBits_1;//一个停止位USART_InitStructure.USART_Parity = USART_Parity_No;//无奇偶校验位USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None;//无硬件数据流控制USART_InitStructure.USART_Mode = USART_Mode_Rx | USART_Mode_Tx;//收发模式 USART_Init(USART3, &USART_InitStructure); //初始化串口1 USART_ITConfig(USART3, USART_IT_RXNE, ENABLE);//开启串口接受中断USART_ClearITPendingBit(USART3,USART_IT_RXNE); USART_Cmd(USART3, ENABLE); //使能串口1 }void USART3_IRQHandler(void){if(USART_GetITStatus(USART3,USART_IT_RXNE)!=RESET){USART_ClearITPendingBit(USART3,USART_IT_RXNE);USART3_RX_BUF[USART3_RX_STA++] = USART_ReceiveData(USART3);}}[mw_shl_code=c,true]//这是HC05的初始化void HC05_Init(void){GPIO_InitTypeDef GPIO_InitStructure;RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);//使能PORTA//KEYGPIO_InitStructure.GPIO_Pin = GPIO_Pin_4; // 端口配置GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; //推挽输出GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; //IO口速度为50MHzGPIO_Init(GPIOA, &GPIO_InitStructure); //根据设定参数初始化GPIOA4GPIO_SetBits(GPIOA,GPIO_Pin_4);//GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable,ENABLE);HC05_KEY=1;usart3_init(9600);//初始化串口3为:9600,波特率.} [/mw_shl_code]各位大神,今天我调试了一个晚上,还是调试不通?首先串口3经过测试是没有问题的,然后用电脑和HC05通信,是可以进入AT模式的 但是在用STM32进行HC05初始化的时候就出现问题了,因为HC05的配置都是一些GPIO口,应该不会有问题 感觉上问题时出现在利用STM32的串口3给HC05发送"AT”指令时,接受不到返回信息。 求大神指导。 在《ATK-HC05蓝牙常见问题汇总》中写道,传送AT信息是不能进过单片机的?但为什么官方例程中,也利用串口3给HC05发送消息? 大神啊,大神 |
|
|
|
各位大神,今天我调试了一个晚上,还是调试不通?首先串口3经过测试是没有问题的,然后用电脑和HC05通信,是可以进入AT模式的
但是在用STM32进行HC05初始化的时候就出现问题了,因为HC05的配置都是一些GPIO口,应该不会有问题 感觉上问题时出现在利用STM32的串口3给HC05发送"AT”指令时,接受不到返回信息。 求大神指导。 在《ATK-HC05蓝牙常见问题汇总》中写道,传送AT信息是不能进过单片机的?但为什么官方例程中,也利用串口3给HC05发送消息? 大神啊,大神 u8 Test_Send[]="ATrn"; extern vu16 USART3_RX_STA; extern u8 USART3_RX_BUF[100]; int main(void) { u8 i=0; u16 temp=0; delay_init(); //延时函数初始化 NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); //设置NVIC中断分组2:2位抢占优先级,2位响应优先级 uart_init(115200); //串口初始化为115200 LED_Init(); //LED端口初始化 HC05_Init(); while(1) { printf("test!!!rn"); HC05_KEY=1; delay_ms(10); for(i=0;i while(USART_GetFlagStatus(USART3,USART_FLAG_TXE)==RESET); USART_SendData(USART3,Test_Send); } HC05_KEY=0; delay_ms(20); if(USART3_RX_STA!=0) { temp = USART3_RX_STA; USART3_RX_STA=0; LED0=~LED0; for(i=0;i printf("%c",USART3_RX_BUF); } } LED1=~LED1; delay_ms(1000); } } |
|
|
|
大神,我调试过,STM32是正常的,但是利用STM32向HC05发AT时,是接受不到返回信息
|
|
|
|
那说明你发送的指令不对。一般AT指令都是ATrn,后面这个符号不能漏。
|
|
|
|
|
|
|
|
|
|
|
|
先测一下波特率是多少的
|
|
|
|
|
|
|
|
只有小组成员才能发言,加入小组>>
362浏览 1评论
482浏览 1评论
602浏览 1评论
用PSOC6 BLE当外围设备,两者传输数据时,psoc6概率性出现蓝牙挂死的原因?
491浏览 1评论
是否有办法通过CYW20835板的固件发送BLE HCI命令?
467浏览 1评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-20 02:00 , Processed in 0.918269 second(s), Total 99, Slave 83 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号