导航

    Freqchip开发者论坛

    • 注册
    • 登录
    • 搜索
    • 版块
    • 最新
    1. 主页
    2. ccc
    3. 帖子
    C
    • 继续与 ccc 聊天
    • 开始与 ccc 的新会话
    • 举报资料
    • 资料
    • 关注
    • 粉丝
    • 屏蔽
    • 主题
    • 帖子
    • 最佳
    • 群组

    ccc 发布的帖子

    • RE: PD5高低电平检测

      @zr FR801HA 和FR801HB

      发布在 FR801xH
      C
      ccc
    • RE: PD5高低电平检测

      @zr 有没有相关的历程

      发布在 FR801xH
      C
      ccc
    • RE: PD5高低电平检测

      @zr 检测PD5的电平跳变,以此触发是否接受新设备配对

      发布在 FR801xH
      C
      ccc
    • PD5高低电平检测

      attribute((section("ram_code"))) void pmu_gpio_isr_ram(void)
      {
      // 读取当前GPIO状态和历史状态
      uint32_t current_gpio = ool_read32(PMU_REG_GPIOD_V);
      uint32_t last_gpio = ool_read32(PMU_REG_PORTD_LAST);

      // 检测哪些引脚发生了变化
      uint32_t changed_pins = current_gpio ^ last_gpio;
      
      // 检查PD5(第5位)是否发生变化
      if (changed_pins & (1 << 5)) {
          // 获取PD5当前状态
          uint8_t pd5_current_state = (current_gpio >> 5) & 0x01;
          uint8_t pd5_last_state = (last_gpio >> 5) & 0x01;
          uint8_t fam[1]={1};
          // 检测持续高电平(电平触发模式)
          if (pd5_current_state == 1) {
              co_printf("high-level trigger\r\n");
      						uart_put_data_noint(UART0,fam,1);
      						gap_security_param_t param =
      						{
      								.mitm = false,	// dont use PIN code during bonding
      								.ble_secure_conn = false,	//not enable security encryption
      								.io_cap = GAP_IO_CAP_NO_INPUT_NO_OUTPUT, //ble device has neither output nor input ability, 
      								.pair_init_mode = GAP_PAIRING_MODE_WAIT_FOR_REQ,		//need bond
      								.bond_auth = true,	//need bond auth
      								.password = 0,
      						};
      						 gap_security_param_init(&param);
      						 os_timer_start(&ker_timer, 60000, 0); // 60s延迟
          }
          
      
      }
      
      // 更新历史记录
      ool_write32(PMU_REG_PORTD_LAST, current_gpio);
      

      }我的这个检测pd高低电平的有什么问题吗,在HA的测试板上能正常检测,但是换成HB的芯片加了按钮之后,上电就一直触发高电平事件,初始化配置是这样的0_1768899605587_92cdfc9e-4e26-4494-b442-095bf691226d-image.png

      发布在 FR801xH
      C
      ccc
    • mac地址恢复不到eFuse里面的值

      程序会影响efuse里面的值吗,我的开发板重新程序烧写之后初始mac地址不再是之前的唯一mac了,没有被重置回efuse中的值,芯片是FR801HB

      发布在 FR801xH
      C
      ccc
    • 修改mac地址

      0_1766754927981_68e94cd1-edb5-45e4-9eee-4acba3b7cd36-image.png 这个修改mac地址后复位还是之前的mac地址,有没有什么具体的方法直接完全修改mac

      发布在 FR801xH
      C
      ccc
    • RE: IO问题

      @zr 已解决,感谢

      发布在 FR801xH
      C
      ccc
    • RE: IO问题

      0_1765874314287_e4238013-8693-4947-b2c3-c17585976fdd-image.png 还是不行,下载的官方的历程,用的板子的官方的FR801HA,只加截图里面的代码,拉不高还是,可以帮忙验证下吗,项目比较急!谢谢!

      发布在 FR801xH
      C
      ccc
    • RE: IO问题

      @zr 0_1765797680730_31583553-8221-4e9c-a053-1812a746f4ef-image.png ,A1A0可以拉高

      发布在 FR801xH
      C
      ccc
    • RE: IO问题

      型号是FR801HB,
      system_set_port_mux(GPIO_PORT_D, GPIO_BIT_6, PORTD6_FUNC_D6);
      gpio_set_dir(GPIO_PD6, GPIO_BIT_6, GPIO_DIR_OUT);
      gpio_set_pin_value(GPIO_PORT_D, GPIO_BIT_6,1);,设置为gpio模式也不能进行拉高拉低

      发布在 FR801xH
      C
      ccc
    • IO问题

      gpio_set_dir(GPIO_PD6, GPIO_BIT_6, GPIO_DIR_OUT);
      gpio_set_pin_value(GPIO_PORT_D, GPIO_BIT_6,1);为什么PD6一直拉不高0_1765786224937_ff44b3e4-84a8-45aa-9efb-70f0724bf667-image.png

      发布在 FR801xH
      C
      ccc
    • 如何使用uart进行ota升级

      0_1764664011219_4bec7826-4ddf-49ae-a9dc-691e2575e210-image.png 切换这个模式以后, 需要自己进行分包发送吗?有没有uartOTA的流程介绍

      发布在 FR801xH
      C
      ccc
    • FR801HA uart的最大通信速率能达到多少?

      FR801HA uart的最大通信速率能达到多少?

      发布在 FR801xH
      C
      ccc
    • RE: FR801HB白名单gap_set_wl设置不成功是什么原因

      @mars 可能是我没说明白,就是app通过权限去获取手机蓝牙MAC,然后传给mcu,mcu再传给801,在801中直接将手机蓝牙的MAC写入白名单地址,达到过滤效果

      发布在 FR801xH
      C
      ccc
    • RE: FR801HB白名单gap_set_wl设置不成功是什么原因

      @mars 这个也看过,但是这个好像是设备绑定之后自动把地址写入白名单,好像没有拦截策略,不可以直接用gap_set_wl去过滤吗大佬

      发布在 FR801xH
      C
      ccc
    • FR801HB白名单gap_set_wl设置不成功是什么原因

      我想通过白名单简单粗暴的过滤筛选可连接的设备,但是设置过地址后貌似gap_set_wl地址没成功,本地打印了一下gap_set_wl中的参数地址也是正确的,但是又看不到实际写进去没有,有无大佬答疑解惑一下。附上主要配置代码
      gap_mac_addr_t default_mac;
      uint8_t mac_bytes[6] = {0xFC, 0x84, 0x17, 0x31, 0xC7, 0xB0};
      //uint8_t mac_bytes[6] = {0xB0, 0xC7, 0x31, 0x17, 0x84, 0xFC};
      memcpy(default_mac.addr.addr, mac_bytes, 6);
      default_mac.addr_type = 0; // Public address
      gap_set_wl(&default_mac, 1);
      gap_adv_param_t adv_param;
      adv_param.adv_mode = GAP_ADV_MODE_UNDIRECT;
      adv_param.disc_mode = GAP_ADV_DISC_MODE_GEN_DISC;
      adv_param.adv_addr_type = GAP_ADDR_TYPE_PUBLIC;
      adv_param.adv_chnl_map = GAP_ADV_CHAN_ALL;
      adv_param.adv_filt_policy = GAP_ADV_ALLOW_SCAN_ANY_CON_WLST;
      adv_param.adv_intv_min = 160; // 200ms
      adv_param.adv_intv_max = 240; // 300ms
      gap_set_advertising_param(&adv_param);
      // Set broadcast data
      gap_set_advertising_data(adv_data, sizeof(adv_data));
      gap_set_advertising_rsp_data(scan_rsp_data, sizeof(scan_rsp_data));
      //Start broadcasting
      co_printf("Start broadcasting..\r\n");
      gap_start_advertising(0);

      发布在 FR801xH
      C
      ccc