yaoquan5201314 发表于 2022-4-10 19:23

【沁恒RISC-V内核 CH582】使用蓝牙Peripheral例程初次体验蓝牙发送接收数据功能

<p>今天想初探CH582开发板的蓝牙功能,就按照下载的开发板资料包里面的CH583评估版说明书中的<strong><span style="font-size:12pt"><span style="font-family:黑体"><span style="color:#000000">3.4.1 蓝牙 Peripheral 例程演示</span></span></span></strong><span style="font-size:12pt"><span style="font-family:黑体"><span style="color:#000000">章节内容的步骤打开了路径为</span></span></span><span style="font-size:10.56pt"><span style="font-family:黑体"><span style="color:#000000">&ldquo;CH583EVT\EXAM\BLE\Peripheral\Peripheral.wvproj&rdquo;的项目文件,本来是想着用WCH_link在线烧录程序到开发板的,但是不知道什么烧录失败,显示如下图:</span></span></span></p>

<p></p>

<p>我先用Central主机例程烧录的时候是没有问题的,但是用这个Peripheral外设从机例程烧录就显示这个问题,看这个描述是硬件连接有问题,但是我检查了硬件连接没有发现异样,有知道的网友帮忙分析一下咋回事。因为在线烧录不进去程序,所以我就通过WCHISPTool用USB烧录程序进开发板,如下图:</p>

<p>烧录成功后,打开手机BLE调试助手,打开手机蓝牙开关和定位开关,然后BLE调试APP界面显示如下:</p>

<p></p>

<p>可以看到有搜到CH582开发板的Simple Peripheral设备了,点击CONNECT连接后,可以看到该设备包含的所有服务,如下图:</p>

<p>可以看到有4大部分服务,包括<span style="color: rgb(0, 0, 0); font-family: 黑体; font-size: 10.56pt;">&ldquo;Generic Access&rdquo;、&ldquo;Generic Attribute&rdquo;、&ldquo;Device information&rdquo;和&ldquo;Unknown Service&rdquo;,</span></p>

<div>
<div><span style="font-size:10.56pt"><span style="font-family:黑体"><span style="color:#000000">根据开发板说明书说明,其中Unknown Service 服务就是程序中自定义的一个通讯服务,UUID 为 0xFFE0,点击该条目,界面显</span></span></span><span style="font-size:10.56pt"><span style="font-family:黑体"><span style="color:#000000">示出 0xFFE0 服务下所有的 characteristic,包括&ldquo;0xFFE1&rdquo;、&ldquo;0xFFE2&rdquo;、&ldquo;0xFFE3&rdquo;、&ldquo;0xFFE4&rdquo; </span></span></span><span style="font-size:10.56pt"><span style="font-family:黑体"><span style="color:#000000">和&ldquo;0xFFE5&rdquo;,并显示出该服务的 Properties,</span></span></span></div>

<div>
<div><span style="font-size:10.56pt"><span style="font-family:黑体"><span style="color:#000000">点击第一个 characteristic,即&ldquo;0xFFE1&rdquo;服务,该服务具有读写属性,在发送输入框输入一个</span></span></span><span style="font-size:10.56pt"><span style="font-family:黑体"><span style="color:#000000">字节,点击发送,数据发送成功后,点击&ldquo;读取&rdquo;按钮获取刚才发送的一个 </span></span></span><span style="font-size:10.56pt"><span style="font-family:黑体"><span style="color:#000000">字节,如下图</span></span></span></div>

<div>显示读取的数据就是先发送的数据,然后点击返回到自定义服务的类别中看到<span style="color: rgb(0, 0, 0); font-family: 黑体; font-size: 10.56pt;">&ldquo;0xFFE2&rdquo;,&ldquo;0xFFE3&rdquo;分别具有读属性,写属性,可以分别进行读操作和写操作。</span></div>

<div>
<div><span style="font-size:10.56pt"><span style="font-family:黑体"><span style="color:#000000">点击&ldquo;0xFFE4&rdquo;服务,该服务具有通知服务(NOTIFY),即主动发送数据给主机,在操作界面打</span></span></span><span style="font-size:10.56pt"><span style="font-family:黑体"><span style="color:#000000">开&ldquo;接收通知数据&rdquo;选项按钮,接收框会每隔一秒接收到设备发送来的字节&ldquo;0x88&rdquo;,返回时需要关闭 </span></span></span><span style="font-size:10.56pt"><span style="font-family:黑体"><span style="color:#000000">通知(NOTIFY),取消&ldquo;接收通知数据&rdquo;按钮选项,点击关闭</span></span></span><span style="color: rgb(0, 0, 0); font-family: 黑体; font-size: 10.56pt;">按钮返回上一级,如下图:</span></div>

<div>
<div><span style="font-size:10.56pt"><span style="font-family:黑体"><span style="color:#000000">点击&ldquo;0xFFE5&rdquo;服务,该服务具有认证读属性,需要输入配对配对密钥才能读取,在收发界面</span></span></span><span style="font-size:10.56pt"><span style="font-family:黑体"><span style="color:#000000">点击读取按钮就会出现蓝牙配对界面</span></span></span><span style="font-size:10.56pt"><span style="font-family:黑体"><span style="color:#000000">,输入配对码默认是&ldquo;000000&rdquo;,选择 PIN 码,点击确定按</span></span></span><span style="font-size:10.56pt"><span style="font-family:黑体"><span style="color:#000000">钮,主机与设备进行配对,配对成功后即可操作该服务,否则不能操作或者设备断开,不过我实际输入配对码&ldquo;0000&rdquo;,&ldquo;000000&rdquo;和&ldquo;1234&rdquo;都配送失败,然后点击几次配对都是失败,不知道正确的配对码是多少,有知道的网友帮忙告诉一下,我自己后面也会在程序里面和手册里面多分析找找。</span></span></span></div>

<div><span style="font-size:10.56pt"><span style="font-family:黑体"><span style="color:#000000">以上就是今天的评测内容,虽然一开始在线烧录程序失败 ,但是好在用WCHISPTool烧录成功了,后面根据说明书也能初步了解CH582蓝牙设备自定义服务的功能和读写相关属性。虽然没有很深入了解,但是让我对蓝牙设备的一些基础数据首发设置有了一些深刻的理解的认识,后面会多结合协议栈手册分析例程中蓝牙收发数据的功能,同时能修改例程实现一些基础的传感器数据发送和接收。万丈高楼平地起,我相信只要不放弃,持之以恒,就能有所得,有所回报。</span></span></span></div>
</div>
</div>
</div>
</div>

yangjiaxu 发表于 2022-4-11 11:14

<p>如果出现连接异常这种情况,可以试着使能两线仿真调试口,打开之后就能用WCHLINK下载了</p>

<p></p>

<p>因为我也遇到过这个问题,官方人员给的解释</p>

<p></p>

<p>&nbsp;&nbsp;</p>

yaoquan5201314 发表于 2022-4-11 13:24

yangjiaxu 发表于 2022-4-11 11:14
如果出现连接异常这种情况,可以试着使能两线仿真调试口,打开之后就能用WCHLINK下载了



因为我也遇 ...

<p>我有使能两线仿真调试口,还是不行的,不知道咋回事。</p>

yangjiaxu 发表于 2022-4-12 11:36

yaoquan5201314 发表于 2022-4-11 13:24
我有使能两线仿真调试口,还是不行的,不知道咋回事。

<p>那你看看你的例程,是否把SWD接口给复用了或者屏蔽了呢?我用蓝牙mesh的那个demo也是可以用SWD接口调试的</p>

yaoquan5201314 发表于 2022-4-12 13:24

yangjiaxu 发表于 2022-4-12 11:36
那你看看你的例程,是否把SWD接口给复用了或者屏蔽了呢?我用蓝牙mesh的那个demo也是可以用SWD接口调试的 ...

<p>好的,我这两天看一下例程是不是这样的,另外我记得开发板上是不是要把BOOT脚接地啊?</p>

yangjiaxu 发表于 2022-4-12 22:51

<p>你是说PB22管脚么?那个download引脚是么?那个是按住之后通过type-c上电,即可利用WCHISP软件识别到的,支持USB下载</p>

yaoquan5201314 发表于 2022-4-13 08:46

yangjiaxu 发表于 2022-4-12 22:51
你是说PB22管脚么?那个download引脚是么?那个是按住之后通过type-c上电,即可利用WCHISP软件识别到的,支 ...

<p>差不多半个月前用WCH_link仿真的时候有查到这方面资料,好像是PB22脚,前两天遇到无法在线下载调试的时候有查资料,不过看到的资料中提到的开发板跟现在测评用的开发板不一样,上面有BOOT脚,而且BOOT脚是挨着GND,然后用一个短接帽短接在一起。</p>

yangjiaxu 发表于 2022-4-13 14:35

yaoquan5201314 发表于 2022-4-13 08:46
差不多半个月前用WCH_link仿真的时候有查到这方面资料,好像是PB22脚,前两天遇到无法在线下载调试的时候 ...

<p>如果是boot引脚就是PB22,接地的时候可以用USB实现固件下载。</p>

yaoquan5201314 发表于 2022-4-13 15:53

yangjiaxu 发表于 2022-4-13 14:35
如果是boot引脚就是PB22,接地的时候可以用USB实现固件下载。

<p>好的,谢谢,我晚上回去试一下。</p>

lugl4313820 发表于 2022-4-13 18:19

<p>@<a href="https://home.eeworld.com.cn/space-uid-392806.html" target="_blank">yaoquan5201314</a>针对你所说的wch_link烧录失败的原因是因为没有打开烧写保护开关:</p>

<p><img src="https://bbs.eeworld.com.cn/data/attachment/forum/202202/28/133228td3x3flslzlmwoz0.png.thumb.jpg" /></p>

<p>钩选这个后,按住下载键不放(跟用串口键一下)打开电源,然后出现USB列表出现你的设备名称,点开启接口,然后就可以用WCH_link下载了,但是每次重启后又需要这样操作一遍有点麻烦,所以除非要做调试,要不用串口下载还要快一些。</p>

<p>具体你可以参考一下我的这篇文章:【沁恒RISC-V内核 CH582】WCH_LINK使用教程 https://bbs.eeworld.com.cn/thread-1195172-1-1.html</p>

<p>希望对你有帮助。祝试用顺利。</p>

yaoquan5201314 发表于 2022-4-14 09:03

lugl4313820 发表于 2022-4-13 18:19
@yaoquan5201314针对你所说的wch_link烧录失败的原因是因为没有打开烧写保护开关:



钩选这个后,按 ...

<p>谢谢,最近一段时间工作时间白天要忙着把其它两个项目赶紧调试好出样,然后才能有空调试申请评测时说的蓝牙风速项目,晚上下班后还要辅导孩子作业,所以只能周末有空调试了。这个星期能把手上其它项目调试完成出样,下周才能开始调试蓝牙风速项目,但是评测15号号结束了,所以估计是无法如期完成了。不管怎样,这个周末看不能先用开发板读取红外二氧化碳传感器浓度数据,然后通过蓝牙传输到手机上进行显示。如果二氧化碳浓度能正常通过蓝牙传输的话,等下周风速信号调通后,风速数据应该也可以通过蓝牙传输到手机上显示。</p>

lugl4313820 发表于 2022-4-14 09:07

yaoquan5201314 发表于 2022-4-14 09:03
谢谢,最近一段时间工作时间白天要忙着把其它两个项目赶紧调试好出样,然后才能有空调试申请评测时说的蓝 ...

<p>先以工作为重,家庭也要照顾。我也是早上6点起来,调试一下,然后上班,晚上回来基本也是弄评测,我那RVB2601,整得要命了。</p>

yaoquan5201314 发表于 2022-4-14 10:50

lugl4313820 发表于 2022-4-14 09:07
先以工作为重,家庭也要照顾。我也是早上6点起来,调试一下,然后上班,晚上回来基本也是弄评测,我那RVB ...

<p>厉害了,我每天搞空要差不多快十一点才能关灯睡觉,早上八点起来都很累。</p>
页: [1]
查看完整版本: 【沁恒RISC-V内核 CH582】使用蓝牙Peripheral例程初次体验蓝牙发送接收数据功能