一个AVR新手蓝牙模块调试的心路历程

博主在使用ATmega128进行蓝牙小车开发时,遭遇了网上例程不适用、烧录串口与蓝牙串口共用导致乱码、波特率问题等挑战。通过调整串口、波特率和下载方式,最终成功调试蓝牙模块。分享了调试过程和解决办法,鼓励遇到类似问题的读者不要轻易放弃。
摘要由CSDN通过智能技术生成

简介

我在最近做了一个蓝牙小车,选用的是ATmega128,串口调试软件是安卓端的SPP(在网上搜能下载到),在蓝牙模块的调试上出现了很多意想不到的情况,与大家进行分享,希望大家能够从我掉进去的坑中跳过去(别像我一样那么惨

PS:如果想看我BB的继续看即可,只需要代码的见文底

遇到的问题1——网上的例程不好用

我在第一次蓝牙模块调试中我选用了网上找到的ATmega128串口通信例程(因为卖家给我的调试例程是ATM32的),我烧录进去根本屁用没有。然后我放弃了从网上寻找例程的想法,将注意力转移到了手册上给出的调试例程。

遇到的问题2——烧录串口与蓝牙通信串口共用导致乱码

然后我寻找了ATmega128中文手册上的中文例程,采用了ISP下载编程接口进行下载,然后在我的SPP上出现了一个100+字符的乱码,并且出现芯片无法擦除的情况,经过与淘宝卖家的两次沟通,最后发现是蓝牙通信串口与ISP下载线使用的串口共用,导致烧录的数据直接到了我SPP上的乱码。然而,经手册查询我发现仅仅USART0才能实现异步通信,不想编程同步通信的我打消了换用USART1的方式,选择改变代码烧写方式。

遇到的问题3——波特率导致乱码

最后我改变使用JTAG-ICE下载线,然而通信虽然正常了但内容依旧乱码,我将软件接收和发送的格式改为十六进制,发现有规律,百度了一下发现为波特率出错导致的,我的晶振是8MHz,采用非倍速模式即U2X=0,蓝牙模块选用的是HC-06,默认波特率为9600,可以看到手册所给出的建议设置是51在这里插入图片描述
至此我开始了反复常识不同的波特率来使我的蓝牙不乱码。

调试成功

经过反复的调试我最终波特率寄存器选择了60。当然可能和你的不一样,自己调一调可能得到的结果和我不同。我调试的代码就是简单的接受主机发送来的信息将信息原封不动的传回来而已。调试成功的我激动的不行。前前后后半个月的时间,有想过放弃,最后正确的时候真的激动到不行。在这里插入图片描述

代码

我选择的是ICCAVR+AVRstudio的组合
最后将我调试成功的代码奉上,祝各位蓝牙模块调试成功:)

#include <iom128v.h>
#i
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值