完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
我在100天内给你们100个项目,例如06。我也寄给你一个PDF文件,解释它是如何工作的,请欣赏这个例子。
PoSoL44BLYCENTROLALIAIA.BANDLY03.ZIP 3.8兆字节 中央IAS.PDF 484 K |
|
|
|
我使用同一个例子,试图稍加修改。我添加了一个UART并且根本没有输出。我尝试将Primtf命令移动到代码中的不同点,以防中断干扰,但没有出现。有兼容性问题吗?我尝试过SCB和旧版本的UART代码。我需要在每次深度睡眠循环之后启动UART吗?我尝试将UARTARSTART()放在主“OF”循环中以防万一。这会引起其他问题吗?
int() { *初始化系统*/ UARTHAR11START(); 初始化Sym(); Primtf(“初始化nr”);& lt;-------这里简单的测试…没有这个输出 (;) { UARTHAR11START();& lt;-----尝试重新启动每个循环 /*进程事件回调以处理BLE事件。生成的事件和 *用于此应用程序的“应用程序EvestHANDLER”例程* 聚伞花序; *处理BLE状态LED */ 手提电话(BLYSLATE); 如果(外设发现) { *如果找到所需的外围设备,则连接到该外围设备*/ CyBLY-GAPCCONTRONT设备(和; /*调用CyByPro进程()一次处理上面发送的连接请求。*/ 聚伞花序; /*复位标志以防止重新发送连接命令*/ PrTNF(“找到外围设备\r”);& lt;-----没有这个输出 发现错误; } 如果(DeCIEC) { *检查按钮是否被按下并相应地更新警报级别。* 检查按钮状态(); } α-IFDEF Enable /*调用CyByLePraceServices处理睡眠前的所有事件。*/ 聚伞花序; *将系统置于低功耗模式*/ HANDLLOWPOWER MODE(); 第二节 /*如果重新扫描标志为真,则重新启动扫描*/ 如果(重新启动扫描) { /*重置标志,以防止调用多个开始扫描命令*/ 重启扫描=false; *开始快速BLE扫描。这个API只会在调用后生效 * CyByl进程(*)*/ CyBLY-GAPCSTARSTCAN(CysLySCAN); } } } |
|
|
|
我相信UART有两个功能:
将该单元置于深度睡眠模式,以进入低功耗,以及SCBWAKEUP()以唤醒单元从深度休眠模式。 如果你忘记打电话给对方,那么你会得到不正确的行为和麻烦,就像你看到的一样。 您只需要在调用休眠后调用唤醒,而只需调用唤醒,而在CPU再次活动时,您将交互/使用UART。 |
|
|
|
伙计们,谢谢你们的帮助。这应该是一个简单的产品原型演示,但由于我缺乏编程能力,我运行了一个多月的时间,但现在几乎完成了。我目前正在测量电流绘制…还用轻轻修饰psoc_4_ble_central_ias示例程序…我发现设备不进入深度睡眠模式,睡眠模式,甚至为此事与原来的例子程序。电流下降增大到4 mA时,除非我添加一个cysyspmdeepsleep();命令。然后系统去0.17ma看上去像深睡眠与别的东西也(没有禁用调试端口还)。但是,我的问题是…为什么HooLelWoPoMeDeF()函数不这样做呢?在这个示例代码中不工作吗?有人为它做了修复并且可以分享这个修复吗?
α-IFDEF Enable / *电话cyble_processevents处理所有事件之前睡觉。*/ 聚伞花序; *将系统置于低功耗模式*/ spim_1_sleep();/ *杰夫斯说不去睡觉除非补充吗??* 由我添加-gt;CysSpMyStudiSeLeP(); HANDLLOWPOWER MODE(); 第二节 |
|
|
|
看起来HooLeleWordPoMeDe()正在做它应该做的事情。使用调试器,我发现我应该在CySysMsDebug(空)程序中登陆(如果没有我添加的代码行)。只是电流太高了。我知道关于减少消费的方式和方法有很多答案,所以我会研究一下。对不起,报错了。
|
|
|
|
PoSoC44BLE
再次问好。我使用BLE中心扫描设备并报告最强的RSSI。所以首先我扫描所有的设备,然后用最高的RSSI排序。我有三个信标。当我让代码做扫描时,我只看到三个俘虏中的两个。在我看来,第三个主要/次要值总是被其他设备所写。RSSI对于第三设备看起来是合理的,但是对于其他两个设备来说,RSSI总是具有主/次要值。因此,最终结果是,我得到三个不同的RSSI值,但只有两个不同的主要/次要组合。我已经通过了几天的代码,我不知道如何才能做到这一点。扫描结果是由示例代码存储的,而且我很难找到代码的那部分。 我只是在示例代码做了这件事之后从存储中拉动数据,像这样。检测到的设备数量用作计数器I。 Malist= ListyOfFixStudio数据[ListSofOfStudio DATALNE-4]; Prime= ListOfOfSudio数据[ListSoFoFix DATALNE-2 ]; BiCONRSSI= ListoFox设备[I] RSSI; 它从来没有失败,我只得到两个不同的主要和次要组合的三个反应。 所以,让问题变得简单…有人知道这个例子是否有可能导致这个问题的bug? |
|
|
|
siyu922 发表于 2019-9-26 10:25 不要介意。。。我能够解决这个问题。为了结束这一切,我想我应该解释一下我的发现。在这个例子中,RSSI值似乎比其他数据在稍后的点被更新。因此,如果RSSI阅读RSSI并查看当前数据以查找主要和次要值,则与其他设备关联。我不知道这是否是bug,但应该注意的是。所以,如果你想要正确的RSSI值,你必须从RANSI指针中提取它。其他数据可以在该函数(或以后)中拉出,并且看起来正确。不确定,不知何故,我通过添加一个冗余代码行来影响这个结果: ListOfOfStase[ADDeDebug ]。DATA=SCANCHORATION & GT;数据(已经在其中)进入“HoalSeClice设备”函数中的错误。对于另一个问题,每次看不到三个信标中的一个(并且不是总是相同的),我已经添加了报告类型为“0”的要求。删除后,所有三个信标显示每个扫描。我不明白为什么这个要求导致“NeWoD”测试在不同的时间在不同的信标上失败,但是现在它起作用了。足够好的PoC / ***************************************************************************************************** *函数名称:手持设备 ***************************************************************************************************************************************************************************************** *摘要: *此功能检查已扫描的新设备并对其进行广告。 *其内部列表。此外,如果扫描的外围设备中有一个是CyScript的。 * USB加密狗,然后它设置标志允许与它连接。 * *参数: * SCANREST:由BLE返回的CyByLyGAPCvAdvrRePoRT**类型的参数 *事件CyBulyEVTGGAPCX扫描程序结果。 * *返回: *无效 * *** 无效的手抄设备(CyByLyGAPCGADVADRePoRTyt*SCAN RealthRead)/*杰夫斯移动到My.H*/ { UIT16I; UIT8新设备= TRUE; 如果((ADDIDE器件& CyLylx Max AdvIX器件)) { 对于(i=0;I & lt;ADDID器件;I++) { /*初始化我们列表中的PeeldDADR元素。*/ ListyOfFixs PeeldAdDr=& AddiStsStur[I]〔0〕; /循环在这个*,比较新的设备地址的列表中现有的地址 确定地址是否是新的。如果地址存在于列表中,则该设备 不是新的。 如果(假= = memcmp(list_of_devices [我]。peerbdaddr,scanreport - >;peerbdaddr,adv_addr_len)) { NealDebug = FALSE; 断裂; } } //IF(新设备) 如果(新设备和放大器;scanreport - >;事件类型)/ *杰夫说扫描报告事件类型必须是0 * / & lt;--------------------------这似乎使三个信标随机筛选。 { /*如果设备地址是新的,然后添加装置,我们现有的列表比较地址 以解决我们预期是否理想的周围是广告或没有。* / list_of_devices [ addeddevices ]。peerbdaddr = &;address_store [ addeddevices ] [ 0 ]; sw_tx_uart_putstring(“新装置发现nn R”);/* */杰夫斯说 *存储数据*/ list_of_devices [ addeddevices ]。datalen = scanreport - >;datalen; ListoFox设备[ ADDIDEVENTROD] ] DATA=SCANCHORATION & GT;数据; found_beacons [ addeddevices ] [ 0 ] = list_of_devices [ addeddevices ]。数据[ list_of_devices [ addeddevices ]。datalen-4 ];/ *杰夫斯说测试* / found_beacons [ addeddevices ] [ 1 ] = list_of_devices [ addeddevices ]。数据[ list_of_devices [ addeddevices ]。datalen-2 ];/ *杰夫斯说测试* / found_beacons [ addeddevices ] [ 2 ] = list_of_devices [ addeddevices ]。数据[ list_of_devices [ addeddevices ]。datalen-0 ];/ *杰夫斯说测试* / & lt;------------------我试着重新写这几种方式,没有得到正确的RSSI。上面的线条适用于主次价值。 list_of_devices [ addeddevices ]。事件类型= scanreport - >;事件类型; / *记录的地址类型,公共的或随机的广告周围。* / list_of_devices [ addeddevices ]。peeraddrtype = scanreport - >;peeraddrtype; *保存BD地址*/ list_of_devices [ addeddevices ]。peerbdaddr [ 0 ] = scanreport - >;peerbdaddr [ 0 ]; list_of_devices [ addeddevices ]。peerbdaddr [ 1 ] = scanreport - >;peerbdaddr [ 1 ]; list_of_devices [ addeddevices ]。peerbdaddr [ 2 ] = scanreport - >;peerbdaddr [ 2 ]; list_of_devices [ addeddevices ]。peerbdaddr [ 3 ] = scanreport - >;peerbdaddr [ 3 ]; list_of_devices [ addeddevices ]。peerbdaddr [ 4 ] = scanreport - >;peerbdaddr [ 4 ]; list_of_devices [ addeddevices ]。peerbdaddr [5 ] = scanreport - >;peerbdaddr [5 ]; *杰夫斯添加存储数据 */ list_of_devices [ addeddevices ]。数据= scanreport - >;数据;<;----------------------------新的,多余的 list_of_devices [ addeddevices ]。RSSI = scanreport - >;RSSI;<;----------------------------新 |
|
|
|
只有小组成员才能发言,加入小组>>
752个成员聚集在这个小组
加入小组2069 浏览 1 评论
1826 浏览 1 评论
3639 浏览 1 评论
请问可以直接使用来自FX2LP固件的端点向主机FIFO写入数据吗?
1760 浏览 6 评论
1510 浏览 1 评论
CY8C4025LQI在程序中调用函数,通过示波器观察SCL引脚波形,无法将pin0.4(SCL)下拉是什么原因导致?
508浏览 2评论
CYUSB3065焊接到USB3.0 TYPE-B口的焊接触点就无法使用是什么原因导致的?
358浏览 2评论
CX3连接Camera修改分辨率之后,播放器无法播出camera的画面怎么解决?
410浏览 2评论
357浏览 2评论
使用stm32+cyw43438 wifi驱动whd,WHD驱动固件加载失败的原因?
855浏览 2评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-23 08:13 , Processed in 0.991317 second(s), Total 88, Slave 71 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号