STM32是通过USART连接蓝牙模块 , UART属于异步全双工通信 , 包含两根线单向通信线 , 分别接上述提到的两个引脚 。我用的是STM32F103C8T6芯片 , 它自带有三组USART , 这里选用USART1 , CubeIDE会自动选择PA10和PA9两个引脚与蓝牙进行通信 。具体如下图:

文章插图

文章插图

文章插图
2.3 编码在这里添加如下代码:
uint8_t rx = 0; // 定义一个无符号整形数 , 用于接收蓝牙发送的数据 。 while (1) { /* USER CODE END WHILE */ // 用于接受来自蓝牙发来的数据 。 // &huart1 是一个封装好的结构体 , 代表那两个引脚 , HAL_UART_Receive函数会自动识别使用PA10进行接受数据 。 // &rx , 接收蓝牙信息放到rx中 , 由于rx是整形数字 , 直接传递给函数 , 传过去的只是副本 , 所以要传递其引用 。 // 1 , 表示接受一个字节(8个二进制) 。 // HAL_MAX_DELAY 表示接受一个蓝牙信号后 , 单片机就停下来死等下次接收蓝牙信息 。 HAL_UART_Receive(&huart1, &rx, 1, HAL_MAX_DELAY); // rx == '1', 蓝牙传输过来的是一个字符1而不是数字 。 if (rx == '1'){ HAL_GPIO_WritePin(GPIOA, LED_Pin, GPIO_PIN_SET); # 输出高电平 , 灯亮 }else{ HAL_GPIO_WritePin(GPIOA, LED_Pin, GPIO_PIN_RESET); # 输出低电平 , 灯灭 } /* USER CODE BEGIN 3 */ }

文章插图
编译代码并下载到单片机上 。
2.3 手机控制二极管
- 搜索下载一款手机蓝牙调试助手 , 我用的是BLE调试助手这款APP 。
- 按照蓝牙名字 , 搜索并连接上蓝牙 , 然后给蓝牙发送"1", 即可灯亮 , 发送其他则灯灭 。
经验总结扩展阅读
- C语言小白刷题
- Taurus.MVC 微服务框架 入门开发教程:项目部署:7、微服务节点的监控与告警。
- time使用 研一小白入坑Go
- 小白鞋沾上沥青了怎么办
- olay淡斑小白瓶适合什么年龄_olay淡斑小白瓶适合年龄
- 麻将怎么玩(麻将怎么玩新手入门)
- 小白是什么意思?
- 哪个跨境电商平台入门门槛低
- 1 Python全栈工程师之从网页搭建入门到Flask全栈项目实战 - ES6标准入门和Flex布局
- 数独入门,数独怎么玩(数独每日玩法)