这个问题是关于zigbee & cc2530的。我买了两个CC2530模块。我把每个模块都连接到一个微控制器上( uC是微控制器的缩写)。其中一个是协调器(C是协调器的首字母缩写) &另一个是终端设备(E是终端设备的首字母缩写)。C初始化网络&E加入C的网络。一切都很好。第一个关键问题:省电模式。我能够解决这个问题。省电模式仅适用于E。第二个关键问题:在省电模式下发送和接收数据。接收已解决。(接收方式:从C到E的数据流)。但是传输!这就是问题所在。(传输方式:从E到C的数据流)。在省电模式下,E大部分时间处于休眠状态。uC打算通过E发送数据,但E处于休眠状态,不响应uC。uC必须首先唤醒E,然后将数据发送给E,这样E才能传输数据。如何唤醒E?
在文档中: HAL_SLEEP_TIMER可以通过休眠定时器中断、I/O中断和复位来唤醒。
所以我可以通过I/O中断来唤醒E。我该怎么做??
发布于 2021-03-18 16:46:03
没有人回答我!我找到了答案。但是我还没有试过。
在文件中: hal_board_cfg.h -->将HAL_KEY设置为TRUE
在文件中: hal_key.c ->将HAL_KeyIntEnable设置为TRUE
在文件中: OnBoard.c -> InitBoard()内部->使用HalKeyConfig(HAL_KEY_INTERRUPT_ENABLE,OnBoard_KeyCallback);
////\\/
通过进行以下更改:
P0.1为外部中断。下降沿。
所以
将CC2530.P0.1连接到其中一个uC引脚。uC的这个引脚一定很高。在发送数据之前,uC触发此引脚,然后uC等待约1.6ms,然后uC将UART包发送到E,然后uC触发中断引脚。
https://stackoverflow.com/questions/66672660
复制相似问题