当前位置:网站首页>单片机蓝牙无线烧录
单片机蓝牙无线烧录
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或者其他软件使用此串口号即可通讯。
六、演示
由于年少时对元器件功能理解不透彻,做了个贼复杂的电路,视频里的电路也能用,就是太复杂了
边栏推荐
- Imgcat usage experience
- . elf . map . list . Hex file
- 基于Redis的分布式ID生成器
- Detailed explanation of 5g working principle (explanation & illustration)
- Pat 1097 duplication on a linked list (25 points)
- Kaggle competition two Sigma connect: rental listing inquiries (xgboost)
- Togglebutton realizes the effect of switching lights
- Understanding of AMBA, AHB, APB and Axi
- Stm32f1+bc20+mqtt+freertos system is connected to Alibaba cloud to transmit temperature and humidity and control LED lights
- 选择法排序与冒泡法排序【C语言】
猜你喜欢
JS function promotion and declaration promotion of VaR variable
Common properties of location
【ESP32学习-1】Arduino ESP32开发环境搭建
Mp3mini playback module Arduino < dfrobotdfplayermini H> function explanation
ES6 grammar summary -- Part I (basic)
Gallery's image browsing and component learning
Arm pc=pc+8 is the most understandable explanation
基于Redis的分布式ID生成器
Learning notes of JS variable scope and function
OPPO VOOC快充电路和协议
随机推荐
level16
arduino UNO R3的寄存器写法(1)-----引脚电平状态变化
AMBA、AHB、APB、AXI的理解
记一次云服务器被密码爆破的经历——关小黑屋、改密码、改端口
OSPF message details - LSA overview
C语言,log打印文件名、函数名、行号、日期时间
js 变量作用域和函数的学习笔记
Générateur d'identification distribué basé sur redis
The dolphin scheduler remotely executes shell scripts through the expect command
History object
Redis 缓存更新策略,缓存穿透、雪崩、击穿问题
Page performance optimization of video scene
Programmers can make mistakes. Basic pointers and arrays of C language
C语言函数之可变参数原理:va_start、va_arg及va_end
STM32 如何定位导致发生 hard fault 的代码段
PyTorch四种常用优化器测试
JS variable types and common type conversions
(五)R语言入门生物信息学——ORF和序列分析
JS数组常用方法的分类、理解和运用
ESP8266通过Arduino IDE连接Onenet云平台(MQTT)