美文网首页
师父和唐这样指导我无线模块程序一步步调试

师父和唐这样指导我无线模块程序一步步调试

作者: 帅爆镜 | 来源:发表于2017-05-12 10:12 被阅读0次

接触cc1101这款无线模块刚好一个月的时间了,从最开始的无从下手,到慢慢可以套用一点程序,读写一个寄存器,再到收发数据,实在不易。回头看看和老师的聊天记录,以及和唐的一些学习,也是他们一步步的指导我如何调试,这一小段学习经历,必须记录下来,这是对自我的反思,也为了以后遇到问题时,能够回来看看获取灵感。

在这过程有个问题是,遇到问题不跟老师说,也可以说自己不知道该如何去问所遇到的问题,这是最不可有的。

一、无从下手

当老师让我来调试usb电路板时,我是没有任何信心的,为什么呢?因为我那时连一个流水灯都得看示例程序(现在才有些领悟要想写一个程序,先得明白它的工作流程再去写)而现在突然让我做难了好几个级别的项目,这不是强行写程序嘛。这我肯定写不了,当时心里就有种被吓到的感觉。所以也如了自己心意,做了好几天,没有任何进展,而师父那几天又催促,实在没辙了,找上了唐。

在找唐之前,我连这个模块最重要的spi都没弄懂,对工作流程也是一知半解。经过和他的几天学习之后,工作流程逐渐的清晰起来。也知道了怎样调用函数。

二、读写寄存器

了解一些工作流程后,就开始读写寄存器,在这过程遇到了很多问题,消耗了大概十天时间,下面把在读写寄存器中遇到的问题和解决方法列出来。

遇到问题:如何读写寄存器?

解决方法:调用读写寄存器函数,如下图:

读写寄存器

遇到问题:寄存器读到的值为255

如何解决:如果读出来总是255,可能spi数据输入管脚miso有问题。查看miso引脚,在程序运行的时候,mosi有变化,而miso一直是高电平。原来是miso在端口初始化程序里定义成输出管脚了。最终读写寄存器问题总算解决。

反思:要一步步的查找原因,查看各种不正常的现象,而不是一顿乱搞。

三、spi模块给usb模块发送数据

遇到问题:在主程序内调用了发送数据程序,但一直在程序里的两条语句循环,如下图

循环

解决方法:一步一步设置断点进行调试,如:断点设在最后那个halspistobe可以运行到不?那就是能够跳出这个while,运行到到下面的halspistrobe?师父是从这几条断点,判断发送正常。

遇到问题:总算是能收到数据,但收到的数据出现乱码。这个问题在店家的资料有程序说明,之前有看过几遍,但当时没有想到这点。

解决方法:根据卖家的格式修改,自己模块发送数据成功。

四、自己模块接收买的模块的数据

接收程序是一大坑,坑了师父,师父在一开始提醒了我可能接收的格式和发送格式要一致。

遇到问题:接收和发送一样,又在两条语句循环。如图

自己模块接收

如何解决:师父让我读一个寄存器,这个函数是读模块状态,非常好用,可以根据它来看程序是否有问题。进入接收后,你加这个函数看看无线模块是否处于接收状态。halSpiReadStatus(CCxxx0_MARCSTATE)CCxxx0_MARCSTATE为0x35,读该状态寄存器的返回值的bit4:0为CC1101当前状态(0x00:SLEEP 0x01:IDLE 0x0D:RX 0x13:TX)

加进去上面那条函数后,看到返回值为13,一开始以为是进去了发送状态,其实是13十进制显示,十六进制是0d,状态没毛病。

然后我调用函数后,想用字母a来读这个函数返回值,其实错了。师父说:函数括号内必须是寄存器地址,不能随便写0。a=那行可以不要,上面那行前直接加个a=,就可以了。

遇到问题:接收不到数据

如何解决:读寄存器函数read写成了rend。这个函数定义错了,不是halspirendreg,应该是halspireadreg,改过来。改过来后用自己的两个模块能互发了。哎,以后一定要注意这种低级错误。

在这个问题出现的时候,我十分消极,没有任何积极性,觉得是我解决不了的,有师父帮忙就交给师父,我想办法肯定比不上他,干脆也就不想了,懒散了,而师父,一直都没放弃。

遇到问题:用买的模块发送数据,自己的模块还是接收不到。

如何解决:换了台电脑,可以接受到,但有些乱码。更改和发送数据一样的格式,可以正常接收。

无线模块收发总算搞完,耗费时间一整月。虽然不易,但内心很是开心,这也许是成功一小步的原因吧。下面开始新的学习,调试电子桌牌。成功只是把遇到的问题不断去解决而已。

发送的数据是可变长度,调用这个函数,始终运行不了。

反思:大部分问题都是自己的粗心啊,坑了老师

相关文章

  • 师父和唐这样指导我无线模块程序一步步调试

    接触cc1101这款无线模块刚好一个月的时间了,从最开始的无从下手,到慢慢可以套用一点程序,读写一个寄存器,再到收...

  • 我花了十天时间在无线模块

    从15号开始,到今天25号,刚好十天,这十天,只为无线模块通信的调试,从了解看资料开始到修改别人程序,有些进展,但...

  • 2022-09-19 react-native 用无线wifi调

    换了个电脑,USB口很少,搜索得到安卓原来也可以无线调试,步骤如下 打开安卓手机无线调试 点击无线调试,我的手机是...

  • wifi模块和无线模块有什么区别

    wifi模块和无线模块同属于无线传输组件,他们都是通过无线信号来传输信息,是人们无线生活不可缺少的组成部分,...

  • 1.18 嵌入式

    今天继续编写程序,根据老师的指导进行调试修改。

  • 吴恩达深度学习笔记(48)-教你如何调参

    从今天开始,我们进入超参数调试、Batch正则化和程序框架(Hyperparameter tuning)这个模块了...

  • 设备无线调试

    设备无线调试 iOS11,xcode9之后,就支持设备无线调试。操作步骤: 1- 用数据线连接手机和mac,通过 ...

  • VEX控制器简介

    一.控制器简介 控制器用来处理机器人的所有信息。内置双向通信,使用VEX net无限模块进行无线驱动、调试和下载。...

  • 为智能产品优化功耗的设计WiFi方案

    物联网的普及推动了人们对提供无线通信技术的WiFi模块、蓝牙模块、组合模块等无线模块的需求。物联网无线模块多用于智...

  • 简述无线模块

    目前主流的无线模块有以下几种。 wifi ZigBee 蓝牙 433M无线模块 315无线模块 NRF24L01+

网友评论

      本文标题:师父和唐这样指导我无线模块程序一步步调试

      本文链接:https://www.haomeiwen.com/subject/bxdztxtx.html