OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 9618|回复: 11

分享给小伙伴们 无线下载(蓝牙)

[复制链接]

13

主题

126

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
399
金钱
399
注册时间
2016-5-25
在线时间
101 小时
发表于 2016-8-23 12:01:31 | 显示全部楼层 |阅读模式
  经过的苦苦挣扎,终于实现了无线下载的功能,现在分享给小伙伴们~   废话不多说    先上图片


   用到的模块:

     发送 -- CH340 -- 蓝牙模块(HC-05,主模式)
     蓝牙模块(HC-05,从模式) --  MiniSTM32 -- 接收
   过程:
     先配置主从模式的两个蓝牙。。。(根据实际情况自己修改。。。)
     注意:波特率不能太高,实验证明(悲惨的经历,,,),CH340无法达到太高的发送速率(太高下载总是失败)。我设置的值为115200,效果非常好。。。下载从未失败。
     
    打开XCOM串口助手,选择发送自己的bin文件即可。
    具体点说,波特率为115200,1,0 发送框内容为 1(即app串口中断程序中的0x01,,详细见app代码),此时自动复位,等待接收bin文件。发送完成后,STM32自动运行刚发送过去的app代码。
    重点!!!全程无需按键操作!!还有硬件复位也没关系的,程序不会停留bootloader里边,还会执行自己的APP程序~


   只管发送无线下载命令(发送1即可)和BIN文件,其他的不都管。    OK~
1471922636045.jpg
1471922659042.jpg
1471922676554.jpg
OH]Q9_25_3_)I$%OJ(2X~W9.png
15.png
132.png

APP.zip

464.77 KB, 下载次数: 1828

IAP bootLoader V1.0.zip

350.84 KB, 下载次数: 1093

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

15

主题

786

帖子

5

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
3223
金钱
3223
注册时间
2015-7-26
在线时间
811 小时
发表于 2016-8-23 12:20:03 | 显示全部楼层
这样无协议和保护的传输方式不太适合产品吧,我也写了一个
http://www.openedv.com/thread-78079-1-1.html
我的博客:http://blog.csdn.net/itdo_just
回复 支持 1 反对 0

使用道具 举报

13

主题

126

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
399
金钱
399
注册时间
2016-5-25
在线时间
101 小时
 楼主| 发表于 2016-8-23 13:58:07 | 显示全部楼层
229382777@qq.co 发表于 2016-8-23 12:20
这样无协议和保护的传输方式不太适合产品吧,我也写了一个
http://www.openedv.com/thread-78079-1-1.html

看了你的帖子,看了个大概,毕竟我也刚接触32不久。数据传输过程中,也考虑到了数据校验和丢失的问题。但是蓝牙上边有奇偶校验,如果把这个奇偶校验打开,是否会减小数据传输过程的错误呢。还有昨天到现在还没有遇到数据丢失问题
回复 支持 反对

使用道具 举报

15

主题

786

帖子

5

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
3223
金钱
3223
注册时间
2015-7-26
在线时间
811 小时
发表于 2016-8-23 14:01:13 | 显示全部楼层
王轩 发表于 2016-8-23 13:58
看了你的帖子,看了个大概,毕竟我也刚接触32不久。数据传输过程中,也考虑到了数据校验和丢失的问题。但 ...

光有奇偶校验肯定是不够的,奇偶校验很弱,无线传输至少都要CRC校验了吧,一般短距离短时间出现问题的概率不大,但是一旦出错你就挂了吧
我的博客:http://blog.csdn.net/itdo_just
回复 支持 反对

使用道具 举报

13

主题

126

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
399
金钱
399
注册时间
2016-5-25
在线时间
101 小时
 楼主| 发表于 2016-8-23 14:04:59 | 显示全部楼层
229382777@qq.co 发表于 2016-8-23 14:01
光有奇偶校验肯定是不够的,奇偶校验很弱,无线传输至少都要CRC校验了吧,一般短距离短时间出现问题的概 ...

多谢指教,我还没测试过距离远些的情况。现在考虑在bootloader里面实现对接受的bin文件进行CRC校验,运行CRC校验的程序试试。
回复 支持 反对

使用道具 举报

13

主题

126

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
399
金钱
399
注册时间
2016-5-25
在线时间
101 小时
 楼主| 发表于 2016-8-23 14:40:51 | 显示全部楼层
229382777@qq.co 发表于 2016-8-23 14:01
光有奇偶校验肯定是不够的,奇偶校验很弱,无线传输至少都要CRC校验了吧,一般短距离短时间出现问题的概 ...

经多次测试,4m的通信距离,完全没有丢包。
不过,虽然缺乏很多保护机制,但是一般应用还是可以的。
回复 支持 反对

使用道具 举报

1

主题

6

帖子

0

精华

新手上路

积分
37
金钱
37
注册时间
2016-12-21
在线时间
8 小时
发表于 2016-12-22 00:38:16 | 显示全部楼层
谢谢分享,mark一下
回复 支持 反对

使用道具 举报

23

主题

323

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1010
金钱
1010
注册时间
2016-11-8
在线时间
233 小时
发表于 2016-12-22 08:16:21 | 显示全部楼层
学习学习
回复 支持 反对

使用道具 举报

26

主题

280

帖子

1

精华

高级会员

Rank: 4

积分
908
金钱
908
注册时间
2013-8-2
在线时间
279 小时
发表于 2016-12-22 09:36:15 | 显示全部楼层
蓝牙底层有校验,但只能查错不能改错,无重发机制,所以你一旦因为环境变化而导致丢包,将导致整个下载失败。
解决办法是做一个应用层协议,如果不在乎时间的话就每个20字节的包做一次应答,出错即重发。在乎时间的话就每个应用包做一次应答(如120字节),出错即重发。

蓝牙芯片本身的oad升级就是后面那种方法。
博客:http://blog.csdn.net/feilusia
CC2541群(127442605);CC2640群(557278427);
Android群(541462902);STM8/STM32群(164311667);
Linux群(512598061);职场交流群(450154342);
回复 支持 反对

使用道具 举报

160

主题

966

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2095
金钱
2095
注册时间
2014-3-7
在线时间
490 小时
发表于 2018-10-16 09:22:56 | 显示全部楼层
,,马克
回复 支持 反对

使用道具 举报

0

主题

2

帖子

0

精华

新手上路

积分
27
金钱
27
注册时间
2019-4-24
在线时间
12 小时
发表于 2019-6-8 19:41:55 | 显示全部楼层
可以用USART3 串口3吗
回复 支持 反对

使用道具 举报

6

主题

211

帖子

0

精华

高级会员

Rank: 4

积分
833
金钱
833
注册时间
2019-12-17
在线时间
157 小时
发表于 2020-1-8 10:39:23 | 显示全部楼层
hzj520520 发表于 2019-6-8 19:41
可以用USART3 串口3吗

你把串口设置改改就可以了;
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-11-22 15:05

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表