当前位置:网站首页>單片機藍牙無線燒錄
單片機藍牙無線燒錄
2022-07-06 12:19: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或者其他軟件使用此串口號即可通訊。
六、演示
由於年少時對元器件功能理解不透徹,做了個賊複雜的電路,視頻裏的電路也能用,就是太複雜了
边栏推荐
- Minio文件下载问题——inputstream:closed
- Dead loop in FreeRTOS task function
- 数据库课程设计:高校教务管理系统(含代码)
- Stm32f1+bc20+mqtt+freertos system is connected to Alibaba cloud to transmit temperature and humidity and control LED lights
- Arm pc=pc+8 is the most understandable explanation
- Basic operations of databases and tables ----- creating data tables
- ESP8266连接onenet(旧版MQTT方式)
- Inline detailed explanation [C language]
- [Red Treasure Book Notes simplified version] Chapter 12 BOM
- 记一次云服务器被密码爆破的经历——关小黑屋、改密码、改端口
猜你喜欢

ES6语法总结--上篇(基础篇)

JS 函数提升和var变量的声明提升

Missing value filling in data analysis (focus on multiple interpolation method, miseforest)

数据库课程设计:高校教务管理系统(含代码)

JS object and event learning notes
![Intermediate use tutorial of postman [environment variables, test scripts, assertions, interface documents, etc.]](/img/b0/176bf6dea2201afc892d6750c5974b.png)
Intermediate use tutorial of postman [environment variables, test scripts, assertions, interface documents, etc.]

MySQL時間、時區、自動填充0的問題

Pytorch: tensor operation (I) contiguous

ESP8266连接onenet(旧版MQTT方式)

Custom view puzzle getcolor r.color The color obtained by colorprimary is incorrect
随机推荐
Pat 1097 duplication on a linked list (25 points)
Navigator object (determine browser type)
Rough analysis of map file
@Autowired 和 @Resource 的区别
Intermediate use tutorial of postman [environment variables, test scripts, assertions, interface documents, etc.]
Mysqldump error1066 error solution
Page performance optimization of video scene
Arm pc=pc+8 is the most understandable explanation
ESP8266通过arduino IED连接巴法云(TCP创客云)
ES6语法总结--上篇(基础篇)
Pytorch: tensor operation (I) contiguous
Types de variables JS et transformations de type communes
RT thread API reference manual
A possible cause and solution of "stuck" main thread of RT thread
Amba, ahb, APB, Axi Understanding
关键字 inline (内联函数)用法解析【C语言】
.elf .map .list .hex文件
基於Redis的分布式ID生成器
如何给Arduino项目添加音乐播放功能
几个关于指针的声明【C语言】