当前位置:网站首页>單片機藍牙無線燒錄
單片機藍牙無線燒錄
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或者其他軟件使用此串口號即可通訊。
六、演示
由於年少時對元器件功能理解不透徹,做了個賊複雜的電路,視頻裏的電路也能用,就是太複雜了
边栏推荐
- 如何给Arduino项目添加音乐播放功能
- Gateway fails to route according to the service name, and reports an error service unavailable, status=503
- arduino获取随机数
- (三)R语言的生物信息学入门——Function, data.frame, 简单DNA读取与分析
- Fashion Gen: the general fashion dataset and challenge paper interpretation & dataset introduction
- ESP8266通过arduino IED连接巴法云(TCP创客云)
- Classification, understanding and application of common methods of JS array
- Mysql database interview questions
- map文件粗略分析
- Detailed explanation of Union [C language]
猜你喜欢
JS variable types and common type conversions
Vscode basic configuration
Classification, understanding and application of common methods of JS array
open-mmlab labelImg mmdetection
ESP8266使用arduino连接阿里云物联网
A possible cause and solution of "stuck" main thread of RT thread
高通&MTK&麒麟 手机平台USB3.0方案对比
VSCode基础配置
几个关于指针的声明【C语言】
uCOS-III 的特点、任务状态、启动
随机推荐
C语言,log打印文件名、函数名、行号、日期时间
关键字 inline (内联函数)用法解析【C语言】
MySQL時間、時區、自動填充0的問題
AMBA、AHB、APB、AXI的理解
(五)R语言入门生物信息学——ORF和序列分析
Walk into WPF's drawing Bing Dwen Dwen
1081 rational sum (20 points) points add up to total points
Oppo vooc fast charging circuit and protocol
Bubble sort [C language]
ES6语法总结--下篇(进阶篇 ES6~ES11)
AMBA、AHB、APB、AXI的理解
Common properties of location
Intermediate use tutorial of postman [environment variables, test scripts, assertions, interface documents, etc.]
Time slice polling scheduling of RT thread threads
程序员老鸟都会搞错的问题 C语言基础 指针和数组
MySQL占用内存过大解决方案
Basic operations of databases and tables ----- view data tables
JS Title: input array, exchange the largest with the first element, exchange the smallest with the last element, and output array.
Important methods of array and string
Detailed explanation of Union [C language]