stm32f103

news/2024/11/19 0:42:42/

配置:PLLCLK 32

参考电路图stlink与正点原子的接口连的时候,注意板子上接口实际正反是反的

蓝牙模块

一 蓝牙的AT指令模式

注意EN要接3.3v/EN什么都不接,长按蓝牙按钮的同时然后再上电.

慢闪是AT模式,快闪是透传模式.

指令集:
AT //返回OK
AT+NAME? //返回蓝牙模块的名字
AT+NAME="HC05" //设置蓝牙模块的名字
AT+ROLE? //返回蓝牙模块的状态(从机是0,主机是1)
AT+ROLE=0/1  //设置蓝牙模块为从/主模式
AT+UART? //返回蓝牙模块的波特率 
AT+UART=38400,0,0 //设置蓝牙模块的波特率为38400
AT+PSWD? //返回蓝牙模块的配对码
AT+PSWD=“1314” //设置蓝牙模块的配对码

发送指令一定要加回车

注意"\r\n",写程序时候也是(可以参考二) 

二 单片机与电脑通信,电脑发送数据控制灯亮灭

uint8_t Tx_str1[]="Hello World!\r\n";
uint8_t Tx_str2[]="LED2 Open!\r\n";
uint8_t Tx_str3[]="LED2 Close!\r\n";
uint8_t Rx_dat[]="0\r\n";
uint8_t Rx_dat1[]="1\r\n";
uint8_t Rx_dat2[]="2\r\n";
#define LED1_ON HAL_GPIO_WritePin(GPIOA,GPIO_PIN_8,0);
#define LED1_OFF HAL_GPIO_WritePin(GPIOA,GPIO_PIN_8,1);
#define LED2_ON HAL_GPIO_WritePin(GPIOD,GPIO_PIN_2,0);
#define LED2_OFF HAL_GPIO_WritePin(GPIOD,GPIO_PIN_2,1);void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart)
{if(huart->Instance==USART1){if(strcmp(Rx_dat,Rx_dat1)){}else{LED1_ON;HAL_UART_Transmit(&huart1,Tx_str2,sizeof(Tx_str2),10000);LED2_ON;}if(strcmp(Rx_dat,Rx_dat2)){}else{LED1_OFF;HAL_UART_Transmit(&huart1,Tx_str3,sizeof(Tx_str3),10000);LED2_OFF;}}
}主函数中:LED1_ON;HAL_UART_Transmit(&huart1,Tx_str1,sizeof(Tx_str1),10000);LED1_OFF;while(1){HAL_UART_Receive_IT(&huart1,Rx_dat,1);}

三 手机蓝牙与电脑通信

1 接线:

蓝牙模块-单片机:vcc-5v,gnd-gnd,rxd-txd,txd-rxd

  1. 手机和蓝牙模块相连应为透传模式,EN是不接的
  2. 想AT模式通过电脑串口调试助手修改蓝牙的,EN应该接3.3v.
  3. 蓝牙模块的rxd和txd接的是单片机原本跳线帽所在的txd和rxd,这一部分是ch340的.即:单片机的串口1的txd和rxd原本通过接线帽连在ch340的rxd和txd上,然后ch340串口转usb下载程序到电脑,也就是我们一般和电脑通信都是用串口1的;当我们给跳线帽取下来,那就直接接ch340的txd和rxd和电脑通信了,实际上和单片机没啥关系,它只负责提供一个电压.

2 效果:

手机连接上以后(需要开启位置),发送a,电脑的串口调试助手就会显示接收到a;串口调试助手发送a,那么手机端也会接收到a

四 手机蓝牙与单片机通信,控制灯亮灭

主函数里:
__HAL_UART_ENABLE_IT(&huart2, UART_IT_RXNE);
HAL_UART_Receive_IT(&huart2,&rec,sizeof(rec));uint8_t rec;
extern UART_HandleTypeDef huart2;
void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart)
{if(huart->Instance == USART2){if(rec=='1'){HAL_GPIO_WritePin(GPIOD, GPIO_PIN_2, GPIO_PIN_RESET);}if(rec=='2'){HAL_GPIO_WritePin(GPIOD, GPIO_PIN_2, GPIO_PIN_SET);}}HAL_UART_Receive_IT(&huart2,&rec,sizeof(rec));
}

五 手机蓝牙控制小车运动


http://www.ppmy.cn/news/894757.html

相关文章

【mcuclub】时钟模块DS1302

一、实物图 二、原理图 编号名称功能1VCC2双供电配置中的主电源供应引脚。DS1302工作于 VCC1和VCC2中较大者.当VCC2比VCC1高0.2V 时,VCC2 给 DS1302供电。当VCC1比VCC2高时, VCC1给DS1302供电2X132.768kHz晶振引脚3X24GND电源地5CE使能引脚。输入信号,在…

STM32F103操作DS1302时钟芯片串口显示(标准库和HAL库)

目录 DS1302的性能指标 DS1302的寄存器及片内RAM 标准库实现 HAL库实现 源码链接 单片机型号:STM32F103C8T6 在日常生活中,很多情况下会需要使用时间,单片机中虽然也是有定时器但并不能较为准备的实现计时功能,而且定时计时…

高等数学❤️第一章~第二节~极限❤️极限的概念与性质~函数极限(自变量趋于有限值时的极限)详解

【精讲】高等数学中函数极限:自变量趋于有限值时的极限 博主:命运之光的主页 专栏:高等数学 目录 【精讲】高等数学中函数极限:自变量趋于有限值时的极限 导言 二、函数极限自变量趋于有限值的判定方法 三、函数极限自变量趋于…

【LLM】Langchain使用[三](基于文档的问答)

文章目录 一、基于文档的问答1. 创建向量存储2. 不同类型的chain链 二、本地知识库问答Reference 一、基于文档的问答 1. 创建向量存储 使用Dock Array内存搜索向量存储,作为一个内存向量存储,不需要连接外部数据库创建向量存储:导入一个索…

MySQL8.0 msi 版本安装教程

MySQL8.0 msi 版本安装教程 MySQL8.0 msi 版本安装教程 1> 官网下载安装包 MySQL官网下载地址如下:https://dev.mysql.com/downloads/mysql/ 说明: 如果需要8.0版本下的其他小版本,可以参考下图: 如需5.7及其之前版本&#…

mysql-installer-community.msi新手安装教程(详细图文)

安装 先去官网下载需要的msi,在这放出官网下载地址 这里我具体以5.7.25.msi为安装例子,除了最新版安装界面有些变动以往的都是差不多的。 过去的版本在这里 打开5.7的下载页面,点击图片进入到5.7版本的msi下载页面 第一个是在线安装,安装时需要连接网络 第二个离线,我们…

MongoDB数据库和可视化工具Studio 3T的安装及问题调试

目录 1.MongoDB的安装及测试 2.可视化工具Studio 3T的安装及测试 1.MongoDB的安装及测试 1.官网下载数据库(.msi格式文件,并非.zip文件) https://www.mongodb.com/ 2.按照提示一步步安装,注意:不要勾选“Install MongoDB Compass”,否…

【Unity面试篇】Unity 面试题总结甄选 |Unity进阶篇 | ❤️持续更新❤️

前言 关于Unity面试题相关的所有知识点:🐱‍🏍2023年Unity面试题大全,共十万字面试题总结【收藏一篇足够面试,持续更新】为了方便大家可以重点复习某个模块,所以将各方面的知识点进行了拆分并更新整理了新…