导航

    Freqchip开发者论坛

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

    cai896695039 发布的帖子

    • 长按 关机 短按开机 相关按键配置(低电平触发)

      //============= 按钮任务函数,处理按钮事件 ===============
      static int user_task_func(os_event_t *param)
      {
      switch(param->event_id)
      {
      case USER_EVT_BUTTON:
      {
      struct button_msg_t *button_msg;
      const char *button_type_str[] = {
      "BUTTON_PRESSED",
      "BUTTON_RELEASED",
      "BUTTON_SHORT_PRESSED",
      "BUTTON_MULTI_PRESSED",
      "BUTTON_LONG_PRESSED",
      "BUTTON_LONG_PRESSING",
      "BUTTON_LONG_RELEASED",
      "BUTTON_LONG_LONG_PRESSED",
      "BUTTON_LONG_LONG_RELEASED",
      "BUTTON_COMB_PRESSED",
      "BUTTON_COMB_RELEASED",
      "BUTTON_COMB_SHORT_PRESSED",
      "BUTTON_COMB_LONG_PRESSED",
      "BUTTON_COMB_LONG_PRESSING",
      "BUTTON_COMB_LONG_RELEASED",
      "BUTTON_COMB_LONG_LONG_PRESSED",
      "BUTTON_COMB_LONG_LONG_RELEASED",
      };
      button_msg = (struct button_msg_t *)param->param;
      // co_printf("KEY 0x%08x, TYPE %s.\r\n", button_msg->button_index, button_type_str[button_msg->button_type]);

      							if(button_msg->button_type == BUTTON_PRESSED)		//短按按钮
      							{
      									//if(button_msg->button_index == GPIO_PD4 )					//Key1
      									{
      											co_printf("K2 Peleased A1\r\n");			Key_Num = 2;
      									}
      							}
      							else 
      									if(button_msg->button_type == BUTTON_LONG_PRESSING)			//长按按钮3S
      

      // if(button_msg->button_type == BUTTON_LONG_RELEASED) //长按后释放3S
      {
      //if(button_msg->button_index == GPIO_PD4 )
      {
      co_printf("K1 BUTTON_LONG_PRESSING 5\r\n"); Key_Num = 5;
      Power_OFF_After(); //关机前需要做的事
      system_power_off(0xc6); //进入关机模式,电流2uA;
      // system_sleep_enable(); //进入休眠;
      }
      }

              }
              break;
      }
      
      return EVT_CONSUMED;
      

      }

      GPIO初始化时如下配置:
      //---------按键初始化 按钮 PD4 ---------
      pmu_set_pin_dir(GPIO_PORT_D, BIT(4),GPIO_DIR_IN);
      pmu_port_wakeup_func_set(GPIO_PD4); //使能低功耗唤醒
      button_init(GPIO_PD4);

      发布在 FR801xH
      cai896695039
    • RE: 如何检测电池电量,有例程源码参考吗?

      uint16_t Batt_Vol_Detection(void) //电池电量内部检测
      {
      //------------------------------
      uint16_t result, ref_vol,vbat_vol;
      adc_get_result(ADC_TRANS_SOURCE_VBAT, 0, &result);
      ref_vol = adc_get_ref_voltage(ADC_REFERENCE_INTERNAL);
      vbat_vol = (result * 4 * ref_vol) / 1024;
      //------------------------------
      return vbat_vol;
      }

      发布在 FR801xH
      cai896695039
    • RE: 关于离线烧录器烧录的程序与串口程序在线烧录的程序不一致的问题

      @小杨先生 你好,我用的富芮坤官方的离线烧录器

      发布在 FR801xH
      cai896695039
    • 关于离线烧录器烧录的程序与串口程序在线烧录的程序不一致的问题

      #define RFID_Flash_Address1 0xFF0000

      在0xFF0000位置存储MAC地址数据

      。。。
      {
      if(char3data[0]==0xEE && char3data[1]==0x01) //接收到蓝牙发送的数据
      {
      for(i=0;i<20;i++) //6----20
      {
      flashdata[i] = char3data[i];
      }
      flash_write(RFID_Flash_Address1,20,flashdata);
      char3data[0] = 0;
      char3data[1] = 0;
      }
      }

      开机启动后在
      void user_custom_parameters(void)
      {
      //----- 设置本地设备MAC地址 ----
      uint8_t RFID_MAC[6]={0x0A,0xDD};
      flash_read(RFID_Flash_Address1,6,RFID_MAC);
      __jump_table.addr.addr[0] = RFID_MAC[5];
      __jump_table.addr.addr[1] = RFID_MAC[4];
      __jump_table.addr.addr[2] = RFID_MAC[3];
      __jump_table.addr.addr[3] = RFID_MAC[2];
      if(RFID_MAC[1]==0xFF && RFID_MAC[0] == 0xFF) //MAC地址全部0xFF会连接失败
      { __jump_table.addr.addr[4] = 0xDD;
      __jump_table.addr.addr[5] = 0x0A;
      }
      else
      { __jump_table.addr.addr[4] = RFID_MAC[1];
      __jump_table.addr.addr[5] = RFID_MAC[0];
      }
      。。。
      }
      读取写入的数据作为MAC地址进行运行

      串口下载程序到设备,设备运行正常,功能测试正常。

      但是!!!!!
      使用离线烧录器,下载同一个程序,功能部分测试都正常。flash存储部分,设备的MAC地址不能改变!不能改变!不能改变!
      一直为0x0ADD FFFFFFFF !!!
      离线烧录器也换了两个,程序也换过几个,设备也换过好几个,都一样!!!
      项目程序有三种,都是串口下载可以修改MAC地址存储数据正常,离线烧录器就是不行!不行!不行!
      这是为什么???????

      发布在 FR801xH
      cai896695039
    • RE: RF801X设置内部LDO稳压输出1.8V、2.1V、2.3V、2.5V、2.7V、3.0V、3.3V、3.5V,初始化稳压输出设置成功。但是负载电路启动停止变化后,电压莫名的自动升高,为什么?

      @刘流鎏 感谢回复 试过了没有用

      发布在 FR801xH
      cai896695039
    • RF801X设置内部LDO稳压输出1.8V、2.1V、2.3V、2.5V、2.7V、3.0V、3.3V、3.5V,初始化稳压输出设置成功。但是负载电路启动停止变化后,电压莫名的自动升高,为什么?

      在Proj_main.c 文件中设置如下:
      void user_entry_before_ble_init(void)
      {
      //------- 设置系统电源为BUCK模式 ------
      pmu_set_sys_power_mode(PMU_SYS_POW_BUCK); //设置芯片内部LDO供电选择 LDO降压输出 5.3mA 3.8mA
      //pmu_set_sys_power_mode(PMU_SYS_POW_LDO); //设置外部芯片LDO供电选择 7mA 5.3mA 高1.5mA
      //---------- 设置LDO输出电压 ----------
      pmu_set_aldo_voltage(PMU_ALDO_MODE_NORMAL,PMU_ALDO_VOL_2_1);
      //设置 ALDO 电压 :2_1 2_3 2_5 2_7 2_9 3_1 3_3 3_5 PMU_ALDO_OUT_1_8 PMU_ALDO_VOL_2_1
      //-------------------------------------
      。。。。。。
      }

      定时器里任务稳定开启负载SPI通讯,18ma负载电流,电压稳定输出设置的电压2.1V,但是SPI通讯设备进行低功耗后,LDO输出高出0.5V为什么?
      发送SPI指令,关闭外围电路的低功耗LDO电压不会恢复2.1,定时器内部设置LDO也不行。请求大能指点!!!

      发布在 FR801xH
      cai896695039
    • FR801XH的内部电池电压直接获取

      {

                             	struct adc_cfg_t cfg;
                             
                             	uint16_t result, ref_vol,vbat_vol;
                             
                             	memset((void*)&cfg, 0, sizeof(cfg));
                             
                             	cfg.src = ADC_TRANS_SOURCE_VBAT;
                             
                             	cfg.ref_sel = ADC_REFERENCE_INTERNAL;
                             
                             	cfg.int_ref_cfg = ADC_INTERNAL_REF_1_2;
                             
                             	cfg.clk_sel = ADC_SAMPLE_CLK_24M_DIV13;
                             
                             	cfg.clk_div = 0x3f;
                             
                             	adc_init(&cfg);
                             
                             	adc_enable(NULL, NULL, 0);
                             
                             	adc_get_result(ADC_TRANS_SOURCE_VBAT, 0, &result);
                             
                             	ref_vol = adc_get_ref_voltage(ADC_REFERENCE_INTERNAL);
                             
                             	vbat_vol = (result * 4 * ref_vol) / 1024;
                             
                             	
                             
                             	sprintf((char *)LCD_ShowStringBuff,"Batt_V = %d mV",vbat_vol);
                             
                             	LCD_ShowString(20,200,LCD_ShowStringBuff,BRRED);
      

      }

      发布在 FR801xH
      cai896695039
    • RE: 请问使用工程模板ble_simple_peripheral 修改mac地址在哪个位置?

      void user_custom_parameters(void)
      {
      //==========如果用户有需要修改的JUMP_TABLE中的参数,可以实现该函数,并且在该函数中进行调整
      //----- 设置本地设备MAC地址 ----
      uint8_t RFID_MAC[6]={0x0A,0xDD};
      flash_read(0xF020,6,RFID_MAC);
      //----------2021-05-13----------
      __jump_table.addr.addr[0] = RFID_MAC[5];
      __jump_table.addr.addr[1] = RFID_MAC[4];
      __jump_table.addr.addr[2] = RFID_MAC[3];
      __jump_table.addr.addr[3] = RFID_MAC[2];
      __jump_table.addr.addr[4] = RFID_MAC[1];
      __jump_table.addr.addr[5] = RFID_MAC[0];
      //------------------------------

      发布在 FR801xH
      cai896695039
    • 设置写入MAC地址

      void user_custom_parameters(void)
      {
      //==========如果用户有需要修改的JUMP_TABLE中的参数,可以实现该函数,并且在该函数中进行调整
      //----- 设置本地设备MAC地址 ----
      uint8_t RFID_MAC[6]={0x0A,0xDD};
      flash_read(0xF020,6,RFID_MAC);
      //----------2021-05-13----------
      __jump_table.addr.addr[0] = RFID_MAC[5];
      __jump_table.addr.addr[1] = RFID_MAC[4];
      __jump_table.addr.addr[2] = RFID_MAC[3];
      __jump_table.addr.addr[3] = RFID_MAC[2];
      __jump_table.addr.addr[4] = RFID_MAC[1];
      __jump_table.addr.addr[5] = RFID_MAC[0];
      //------------------------------

      发布在 FR801xH
      cai896695039
    • RE: 为什么我下载最新的sdk里的例程编译下载后图像是反的,颜色也错了?

      你下载的演示文件是1.4版本的 电路板是1.5的 你需要吧工程文件的1.4版本的显示驱动屏蔽掉

      发布在 FR801xH
      cai896695039
    • RE: 为什么我下载最新的sdk里的例程编译下载后图像是反的,颜色也错了?

      下载的程序和板子的版本不对,编译器出错是你的环境没搭好,尝试重新走一遍流程

      发布在 FR801xH
      cai896695039
    • RE: 开发板哪里购买?

      @郑祥光 微信公众号里有他们的商城可以购买

      发布在 FR801xH
      cai896695039