当前位置:网站首页>單片機藍牙無線燒錄
單片機藍牙無線燒錄
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或者其他軟件使用此串口號即可通訊。
六、演示
由於年少時對元器件功能理解不透徹,做了個賊複雜的電路,視頻裏的電路也能用,就是太複雜了
边栏推荐
猜你喜欢
VSCode基础配置
荣耀Magic 3Pro 充电架构分析
Pytorch four commonly used optimizer tests
Intermediate use tutorial of postman [environment variables, test scripts, assertions, interface documents, etc.]
Symbolic representation of functions in deep learning papers
JS變量類型以及常用類型轉換
Postman 中级使用教程【环境变量、测试脚本、断言、接口文档等】
RT thread API reference manual
The dolphin scheduler remotely executes shell scripts through the expect command
Analysis of charging architecture of glory magic 3pro
随机推荐
OSPF message details - LSA overview
Basic operations of databases and tables ----- classification of data
Gateway fails to route according to the service name, and reports an error service unavailable, status=503
imgcat使用心得
MySQL占用内存过大解决方案
RuntimeError: cuDNN error: CUDNN_ STATUS_ NOT_ INITIALIZED
ES6 grammar summary -- Part 2 (advanced part es6~es11)
Amba, ahb, APB, Axi Understanding
Variable parameter principle of C language function: VA_ start、va_ Arg and VA_ end
Togglebutton realizes the effect of switching lights
高通&MTK&麒麟 手机平台USB3.0方案对比
A possible cause and solution of "stuck" main thread of RT thread
Esp8266 uses Arduino to connect Alibaba cloud Internet of things
Keyword inline (inline function) usage analysis [C language]
Esp8266 connects to onenet cloud platform (mqtt) through Arduino IDE
NRF24L01故障排查
程序员老鸟都会搞错的问题 C语言基础 指针和数组
inline详细讲解【C语言】
Fashion-Gen: The Generative Fashion Dataset and Challenge 论文解读&数据集介绍
AMBA、AHB、APB、AXI的理解