当前位置:网站首页>单片机蓝牙无线烧录
单片机蓝牙无线烧录
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或者其他软件使用此串口号即可通讯。
六、演示
由于年少时对元器件功能理解不透彻,做了个贼复杂的电路,视频里的电路也能用,就是太复杂了
边栏推荐
- Knowledge summary of request
- Basic operations of databases and tables ----- creating data tables
- open-mmlab labelImg mmdetection
- Fashion-Gen: The Generative Fashion Dataset and Challenge 论文解读&数据集介绍
- Use of lists
- [esp32 learning-1] construction of Arduino esp32 development environment
- STM32 如何定位导致发生 hard fault 的代码段
- Embedded startup process
- Pytorch: tensor operation (I) contiguous
- Mysqldump error1066 error solution
猜你喜欢

ES6 grammar summary -- Part I (basic)

Arduino uno R3 register writing method (1) -- pin level state change

Mp3mini playback module Arduino < dfrobotdfplayermini H> function explanation
![Several declarations about pointers [C language]](/img/9b/ace0abbd1956123a945a98680b1e86.png)
Several declarations about pointers [C language]

Comparaison des solutions pour la plate - forme mobile Qualcomm & MTK & Kirin USB 3.0

Arduino JSON data information parsing

E-commerce data analysis -- salary prediction (linear regression)

高通&MTK&麒麟 手机平台USB3.0方案对比

Page performance optimization of video scene

Pytorch: tensor operation (I) contiguous
随机推荐
Embedded startup process
Postman 中级使用教程【环境变量、测试脚本、断言、接口文档等】
GCC compilation options
基于Redis的分布式锁 以及 超详细的改进思路
ESP8266通过Arduino IDE连接Onenet云平台(MQTT)
Whistle+switchyomega configure web proxy
open-mmlab labelImg mmdetection
The dolphin scheduler remotely executes shell scripts through the expect command
(一)R语言入门指南——数据分析的第一步
arduino UNO R3的寄存器写法(1)-----引脚电平状态变化
锂电池基础知识
冒泡排序【C语言】
Mp3mini playback module Arduino < dfrobotdfplayermini H> function explanation
程序员老鸟都会搞错的问题 C语言基础 指针和数组
Page performance optimization of video scene
ES6 grammar summary -- Part 2 (advanced part es6~es11)
Vscode basic configuration
C语言函数之可变参数原理:va_start、va_arg及va_end
共用体(union)详解【C语言】
Fashion-Gen: The Generative Fashion Dataset and Challenge 论文解读&数据集介绍