range extender code之所以我不满意,是因为它是硬编码的,使用的是P0_1和P0_2,为了实现extrc_rxen信号,它对extrc_txen信号进行了反转。这是我在peripher_init()中运行的代码(每次无线电唤醒时运行)。
请验证我所做的确实是提取extrc_rxen信号。此外,是否有关于如何配置BLE_DIAGCNTL_REG寄存器以及如何将其路由到端口的文档。到目前为止,我已经有了自己的理论,我认为是正确的,但如果有文档的话会很有帮助。
/* Select diag signals */
SetBits32(BLE_DIAGCNTL_REG, DIAG0, 0x28);// extrc_txen
SetBits32(BLE_DIAGCNTL_REG, DIAG1, 0x28);// rxen=extrc_txen_inv
/* Map to diag port bits */
SetBits32(BLE_DIAGCNTL3_REG, DIAG0_BIT, 3); // extrc_txen
SetBits32(BLE_DIAGCNTL3_REG, DIAG1_BIT, 2); // << GUESSED THIS VALUE
/* Enable diag ports */
SetBits32(BLE_DIAGCNTL_REG, DIAG0_EN, 1);
SetBits32(BLE_DIAGCNTL_REG, DIAG1_EN, 1);
/* Output diag signals to P0 GPIOs */
SetBits16(P10_MODE_REG, PID , 18);
SetBits16(P10_MODE_REG, PUPD, 3);
SetBits16(P11_MODE_REG, PID , 18);
SetBits16(P11_MODE_REG, PUPD, 3);