Explorar o código

fix: 解决wlan/ble启动顺序差异导致无法射频不工作的问题

原因是BBP时钟被设置为不正确的值
Wendal Chen %!s(int64=2) %!d(string=hai) anos
pai
achega
dc7e0ae192
Modificáronse 2 ficheiros con 5 adicións e 5 borrados
  1. 4 4
      app/port/luat_nimble_air101.c
  2. 1 1
      platform/sys/wm_main.c

+ 4 - 4
app/port/luat_nimble_air101.c

@@ -22,8 +22,8 @@
 #include "luat_log.h"
 
 int luat_nimble_deinit() {
-    LLOGE("deinit not support yet");
-    return -1;
+    tls_nimble_stop();
+    return 0;
 }
 
 int luat_nimble_trace_level(int level) {
@@ -37,7 +37,7 @@ int luat_nimble_init_ibeacon(uint8_t uart_idx, char* name, int mode);
 int luat_nimble_init(uint8_t uart_idx, char* name, int mode) {
 
     int ret = 0;
-    tls_reg_write32(HR_CLK_BBP_CLT_CTRL, 0x7F);
+    // tls_reg_write32(HR_CLK_BBP_CLT_CTRL, 0x7F);
 
     ble_hs_cfg.sm_io_cap = MYNEWT_VAL(BLE_SM_IO_CAP),
     ble_hs_cfg.sm_oob_data_flag = MYNEWT_VAL(BLE_SM_OOB_DATA_FLAG),
@@ -54,7 +54,7 @@ int luat_nimble_init(uint8_t uart_idx, char* name, int mode) {
     }
     else if (mode == 1) {
         LLOGD("CALL luat_nimble_init_central");
-        ret = luat_nimble_init_central(uart_idx, name, mode);
+        // ret = luat_nimble_init_central(uart_idx, name, mode);
     }
     else if (mode == 2) {
         ret = luat_nimble_init_ibeacon(uart_idx, name, mode);

+ 1 - 1
platform/sys/wm_main.c

@@ -200,7 +200,7 @@ int main(void)
     #endif
     tls_reg_write32(HR_CLK_BASE_ADDR, value);
 
-    #ifndef LUAT_USE_WLAN
+    #if !defined(LUAT_USE_WLAN) && !defined(LUAT_USE_NIMBLE)
 	/* Close bbp clk */
 	tls_reg_write32(HR_CLK_BBP_CLT_CTRL, 0x0F);
     #endif