当前位置:网站首页>单片机蓝牙无线烧录
单片机蓝牙无线烧录
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或者其他软件使用此串口号即可通讯。
六、演示
由于年少时对元器件功能理解不透彻,做了个贼复杂的电路,视频里的电路也能用,就是太复杂了
边栏推荐
- 冒泡排序【C语言】
- Programmers can make mistakes. Basic pointers and arrays of C language
- 高通&MTK&麒麟 手機平臺USB3.0方案對比
- ESP8266通过Arduino IDE连接Onenet云平台(MQTT)
- 锂电池基础知识
- Basic knowledge of lithium battery
- Fashion-Gen: The Generative Fashion Dataset and Challenge 论文解读&数据集介绍
- map文件粗略分析
- RT thread API reference manual
- MySQL时间、时区、自动填充0的问题
猜你喜欢

Générateur d'identification distribué basé sur redis

(五)R语言入门生物信息学——ORF和序列分析

(三)R语言的生物信息学入门——Function, data.frame, 简单DNA读取与分析

Esp8266 uses Arduino to connect Alibaba cloud Internet of things

JS Title: input array, exchange the largest with the first element, exchange the smallest with the last element, and output array.

Vscode basic configuration

Basic operations of databases and tables ----- classification of data

Gallery's image browsing and component learning

js 变量作用域和函数的学习笔记

ESP学习问题记录
随机推荐
JS 函数提升和var变量的声明提升
Selective sorting and bubble sorting [C language]
Cannot change version of project facet Dynamic Web Module to 2.3.
(三)R语言的生物信息学入门——Function, data.frame, 简单DNA读取与分析
Comparaison des solutions pour la plate - forme mobile Qualcomm & MTK & Kirin USB 3.0
C语言回调函数【C语言】
Stm32f1+bc20+mqtt+freertos system is connected to Alibaba cloud to transmit temperature and humidity and control LED lights
JS variable types and common type conversions
Mysql database interview questions
记一次云服务器被密码爆破的经历——关小黑屋、改密码、改端口
MP3mini播放模块arduino<DFRobotDFPlayerMini.h>函数详解
Reno7 60W超级闪充充电架构
Postman 中级使用教程【环境变量、测试脚本、断言、接口文档等】
Kconfig Kbuild
ES6 grammar summary -- Part I (basic)
ESP8266通过arduino IED连接巴法云(TCP创客云)
Missing value filling in data analysis (focus on multiple interpolation method, miseforest)
Kaggle competition two Sigma connect: rental listing inquiries
Use of lists
Kaggle competition two Sigma connect: rental listing inquiries (xgboost)