文章目录
参考博客1.接收和发送数据2.现象展示参考博客
串口实现HC-05蓝牙模块与手机通信
欲实现功能
手机发送数字0,1来控制板子上LED0,1,的翻转。
1.接收和发送数据
配置串口,并开启DMA。
开启DMA,注意添加宏定义和变量声明。
/* USER CODE BEGIN USART2_Init 2 */__HAL_UART_ENABLE_IT(&huart2,UART_IT_IDLE); //开启空闲中断HAL_UART_Receive_DMA(&huart2,RxBuffer,RXBUFFER_LEN); //开启DMA的接收/* USER CODE END USART2_Init 2 */
重写printf函数。
int fputc(int c,FILE *stream){uint8_t ch[1]={c};HAL_UART_Transmit(&huart2,ch,1,0xFFFF);return c;}printf("this is a test\n");
可以在手机上看到this is a test,表明电脑数据发送成功。
数据的发送,蓝牙发送的数据显示在电脑上是ASCII码的形式。
例如我手机发送一个 1,在监视窗口显示的就是49。
在配置完成LED0,LED1的相关配置后,写了一个翻转LED的函数,根据手机发送数据的不同,作为一个判断条件,进而执行相应的函数。
void Check_Rx(){if(RX_flag == 1) //判断是否接收完成{printf("Rx_len = %d\n",Rx_len);printf("I got the message %s",RxBuffer);//for(uint8_t i=0;i<Rx_len;i++) //清除接收的标志//{//RxBuffer[i] = 0;//}Rx_len=0;RX_flag = 0;}}void LED_toggle(void){if(RX_flag == 1) //判断是否接收完成{if(RxBuffer[0]==48){HAL_GPIO_TogglePin(GPIOB,GPIO_PIN_5);}else if(RxBuffer[0]==49){HAL_GPIO_TogglePin(GPIOE,GPIO_PIN_5);}}}
2.现象展示
实现灯的翻转。
如果觉得《STM32应用(四)蓝牙HC-05模块》对你有帮助,请点赞、收藏,并留下你的观点哦!