整体说明
本篇内容主要记录了JDY-23蓝牙模块的调试过程。设计了JDY-23蓝牙模块的电路,以及独立的(有参考别人的源码)设计手机APP的过程。
工欲善其事,必先利其器(JDY23蓝牙模块的购买)
我在购买中因为前期的一些了解不够详细,闹了一些笑话。一方面是如果需要IO控制功能,需要和厂家沟通好,要带“FFE2”功能的模块,因为,默认发货的是不带“FFE2”功能的。另外就是,技术表示,这款蓝牙是没有PWM功能的,这个到不影响开发板的使用,也就兼容的那块电路浪费了而已。
电路原理图的设计
原理图的设计
原理图参考了用户手册上面的,输入部分没有加上拉电阻,这一块还是感觉不太好,如果预留的话,也可以不焊接,这里确实是考虑不周全了。
下面是我用立创EDA设计的原理图:
PCB的设计
这个电路并不复杂,主要是软件的一些功能还不够熟悉,多花了点时间。其中,为了信号效果,把蓝牙天线底下留空。左侧的PWM兼容设计用不到了,模块不支持这个功能,用的这个按键不好使,不确定是我用的品控不好,还是这个按键不好,不过,作为开发板的话,用自锁类的按键,会比较方便调试。我这个按键不推荐使用。
手机APP的设计
主窗口设计
主窗口主要只负责连接蓝牙等一些基础的工作。
这段代码是用来退出软件,在其他窗口里面,是用来返回主窗口用的。
这段代码是切换三个窗口,三个窗口里面都有这段代码,原则上是不需要切换到当前窗口的,可以屏蔽掉。
上面这个需要调用到“公用模块”里面的内容,所以“公用模块.XX”的格式,变量也同理。
给蓝牙初始化,我的测试中,如果不开定位,是搜不到蓝牙的,但是这个“置可被发现”倒是显得可有可无。一般来说,刚打开软件的时候,不太可能连接上蓝牙(我这里退出软件后会释放蓝牙,可以看前面退出的代码),所以就认为蓝牙的连接状态为“0”。
因为蓝牙是在这个窗口里面建立的,他这个调用其他窗口的组件,不像易语言一样方便,这块我也不是捋的很清楚,就需要这样保存一下,后面才能在别的窗口调用这里的(BLE)蓝牙组件。
组件位置初始化就不多说了,就是因为要适配不同的手机屏幕(当然我没做大量的测试),将各个组件的尺寸和手机屏幕的尺寸相关联。主要功能都在子程序里面,这样写就是为了看起来整齐一点。
搜索蓝牙那个按钮,就是开始搜索的时候,同时打开定时器,定时10秒,到了时间就停止,同时呢,也可以主动再按下按钮停止搜索。
添加蓝牙设备到列表框,这块就是看的例程复制的,没什么好说的。
这里是连接蓝牙,以及保存上一次连接蓝牙地址,如果有保存的蓝牙地址,可以通过“直连蓝牙”按钮,直接连接。有一段我给忘了,如果到连接蓝牙这一步骤的话,其实是没必要再去搜索了。
获取蓝牙不同通道的参数,因为我只焊接了一块,不确定通道后面的参数是不是一致,所以为了保险起见,根据部分确定的特征,获取了一下当前连接蓝牙的通道特征。
更新蓝牙连接状态,这样可以避免在未连接蓝牙的情况下,进行一些连接蓝牙后的操作,出现不必要的BUG。
因为蓝牙模块在主窗口,所以数据要在主窗口代码里面先处理一下。由于IO数据和串口透传数据,给手机端的都是用一个通道,所以这里简单区分了一下,但也有误判的情况。而且这里和手册上面说的不一样,有一些出入。
IO控制窗口
IO控制窗口主要是实现了控制7个引脚的高低电平,同时主动获取8个引脚的电平高低,其中有两个是中断引脚,是下降沿触发的方式,为了做出区别,把标签颜色变红作为提示。
读取的时间间隔可以存储读取,可以保留最后一次设置的时间间隔(单位:ms)。
控制输出引脚的电平,需要调用公用模块,这里仅以LED1举例,其它同理。
主动获取输入引脚的电平状态。
中断方式获取其中两个引脚的电平状态,这里对应在手册上面的数据有误。
串口透传功能
将手机发送的数据,通过蓝牙的串口输出,不支持校验。
保留历史数据和选项,避免用户重复选择。
根据选择框的选择,调整发送数据的格式,以及在窗口中显示的样式。
处理接收到的数据,根据选择框的选择,添加到窗口中。
调整发送数据添加到窗口的格式。
快捷清除窗口数据。
窗口更新光标位置,实现数据滚动的效果。
文章来源:https://www.toymoban.com/news/detail-413981.html
视频及开源资料
简单录制了一下使用的视频: B站
文件在立创开源里面分享了: 立创开源文章来源地址https://www.toymoban.com/news/detail-413981.html
到了这里,关于【JDY-23蓝牙模块调试】的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!