当前位置:网站首页>单片机蓝牙无线烧录
单片机蓝牙无线烧录
2022-07-06 09:17:00 【XlinliY.Zhang】
一、 为什么需要蓝牙无线烧录
当我们把单片机开发板、或者使用自制系统板安装到设备上后,要进行重新烧录总要拖着一条长长USB线,特别是对于一些开发板,例如Arduino pro mini这种不带USB to TTL的开发板,更是要拉着好几根杜邦线进行烧录,还会面临接触不良的问题,特别特别麻烦。所以,使用一片HC-05或者HC-06实现蓝牙通讯的同时,还能实现稳定的烧录,岂不是一件美滋滋的事。
在之前学习Arduino蓝牙烧录的时候了解到这篇文章:通过蓝牙模块无线上传Arduino程序
但这篇文章的方法同Arduino Pro Mini的烧录方式一样(不使用DTR),都需要进行手动复位,使单片机进入BL,编译简单的程序你还可以在旁边等待开始上传,然后按下复位按键,成功烧录。
但是!!!!
如果遇到项目比较大(Arduino IDE编译出了名的慢)的程序,如果编译几分钟,你们看到,错过了时机,一首凉凉送给你。所以,在把凉凉背下来的时候,搞出了自动烧录这玩意。
二、如何实现蓝牙无线烧录
无线烧录的大体流程就是,检测到连接,复位单片机,转发电脑数据和单片机数据交互,完成烧录。
以下是了解系统工作原理的基础知识:
(1)对于Arduino IDE(没测试过,不确定Windows下的蓝牙串口是打开再连接蓝牙还是),使用串口监视器或进行烧录,会断开蓝牙连接,再重新连接,发送/接收数据,这点很重要,这个电路的原理就是利用烧录时候连接蓝牙,蓝牙模块的连接指示进行烧录的。
(2)电容具有隔离直流通交流的作用,单片机的复位都是需要一个高(低)电平脉冲来进行复位的,如果一直拉高(拉低)单片机复位引脚,则单片机无法正常工作。所以,使用电容来把持续的电平信号转换为单个脉冲信号显得尤为重要。
(3)蓝牙透传模块可以把电脑的串口数据按照模块设置好的波特率发送过去,动都不动的那种。
三、需要的材料
(1)HC-05\06 一块
(2)S8050 一颗
(3)104电容一颗(如果板载DTR引脚,可以不用这颗电容)
(4)1K电阻2个
(5)连接线材若干、面包板一块(如何连接就八仙过海各显神通了哈)
四、原理图
简简单单的原理图
五、具体操作
(1)设置蓝牙模块:蓝牙模块设置过程很简单,只需要设置对应的波特率,把波特率设置为和开发板BL需要的波特率一样就行。
以下是部分Arduino波特率设置参考
UNO、MEGA2560:115200
atmega328:57600
atmega168,atmega8 :19200
具体操作为,按住蓝牙模块EN按钮,使用USB转TTL连接电脑,使用串口监视器波特率38400发送AT返回AT则表明成功进入AT模式,需要用到AT指令为:
AT+UART=115200,1,2
(2)搭建电路:这部分没什么好说的,就是按照原理图连连看就完事了。
(3)蓝牙连接电脑:打开电脑蓝牙,搜索蓝牙模块(蓝牙模块要通电),输入配对码(不是0000,就是1234),然后点“更多蓝牙选型”,COM端口,记住方向为传出的COM号,Arduino或者其他软件使用此串口号即可通讯。
六、演示
由于年少时对元器件功能理解不透彻,做了个贼复杂的电路,视频里的电路也能用,就是太复杂了
边栏推荐
- Variable parameter principle of C language function: VA_ start、va_ Arg and VA_ end
- Important methods of array and string
- ESP learning problem record
- [Red Treasure Book Notes simplified version] Chapter 12 BOM
- ARM PC=PC+8 最便于理解的阐述
- Use of lists
- Mysqldump error1066 error solution
- Kconfig Kbuild
- Générateur d'identification distribué basé sur redis
- Mp3mini playback module Arduino < dfrobotdfplayermini H> function explanation
猜你喜欢
RT-Thread API参考手册
Types de variables JS et transformations de type communes
Cannot change version of project facet Dynamic Web Module to 2.3.
Arm pc=pc+8 is the most understandable explanation
Postman 中级使用教程【环境变量、测试脚本、断言、接口文档等】
荣耀Magic 3Pro 充电架构分析
Several declarations about pointers [C language]
JS variable types and common type conversions
Understanding of AMBA, AHB, APB and Axi
Fashion Gen: the general fashion dataset and challenge paper interpretation & dataset introduction
随机推荐
Pytorch: tensor operation (I) contiguous
JS正则表达式基础知识学习
FreeRTOS 任务函数里面的死循环
Arduino uno R3 register writing method (1) -- pin level state change
Vscode basic configuration
gcc 编译选项
C语言,log打印文件名、函数名、行号、日期时间
RT-Thread API参考手册
Basic operations of databases and tables ----- modifying data tables
1081 rational sum (20 points) points add up to total points
JS變量類型以及常用類型轉換
锂电池基础知识
MySQL takes up too much memory solution
【ESP32学习-2】esp32地址映射
记一次云服务器被密码爆破的经历——关小黑屋、改密码、改端口
Amba, ahb, APB, Axi Understanding
Basic operations of databases and tables ----- view data tables
Basic operations of databases and tables ----- creating data tables
ES6语法总结--上篇(基础篇)
Fashion Gen: the general fashion dataset and challenge paper interpretation & dataset introduction