This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] CC2541:电池电量状态

Guru**** 2874300 points

Other Parts Discussed in Thread: CC2541

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/918261/cc2541-battery-level-status

器件型号:CC2541

大家好、  

我使用的是具有 BLE 堆栈1.5.1.1的 CC2541、需要在应用中显示电池百分比。 我使用的是3.7V 6000 mAh 电池。 ADC 值的代码后执行该操作。 我得到的值是64、而不是其他值。  

我确定这里有问题、我需要有关这方面的帮助。

此致、

Yatin Baluja  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    我指派了一名专家发表意见。

    此致、
    Michael

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    好的、谢谢 Michael。  

    我有疑问。 是否可以在 CC2541中创建秒表? 比如、我想使用 CC2541在固件内部创建计时器、该计时器将用作秒表。 如果我暂停计时器、它将暂停、当我恢复计时器时、它将在暂停的位置恢复。

    此致、

    Yatin Baluja

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Yatin、

    1)

    首先、您需要验证正确的 ADC 设置。 也许您还可以使用隔离式 ADC 示例进行测试、以确保正确配置:

    https://www.ti.com/lit/zip/swrc257 

    此外、此主题可能也有用:

    https://e2e.ti.com/support/wireless-connectivity/bluetooth/f/538/p/910759/3366592

    2) 2)是的、应该可以创建类似于秒表的东西。 也许您可以从中找到灵感  

    16 TimeApp- BLE 监视 并使用 osal_timers.c (osal_start_timerEx/osal_stop_timerEx)。 您还可以尝试直接使用硬件计时器。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    已尝试在另 一个重复的帖子中帮助您

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    是的、YK Chen

    我要确认的事情很少。  

    首先、添加第8个蓝牙特性、我会得到"太多初始化器值"。

    其次、我有一个按钮、因此按下该按钮2秒钟-器件将打开、再次按下该按钮后、一个 LED 将打开、再次按下该按钮第二个 LED 将打开。 那么、如何在我已经尝试但不确定是否正确的情况下实现它。

    //*********
    IF (事件和 SBP_KEY_EVT)

    如果(key=0)

    key_dptr ++;
    if ((key_dptr >=2)&&(device_start_stop =device_stop))

    if (key == key_low)

    电源= 1;
    key_dptr = 0;
    DEVICE_START_STOP = DEVICE_START;
    LED=1;
    FIRST_Part (0、0);
    second_Part (0、0);
    third_Part (0、0);
    第四部分(0、0);
    第5部分(0、0);
    //osal_stop_timerEx (simpleBLEPeripheral_TaskID、SBP_KEY_EVT);
    OSAL_SET_EVENT (simpleBLEPeripheral_TaskID、SBP_Periode_EVT);
    返回(事件^ SBP_KEY_EVT);



    否则、如果((key_dptr >=1)&&(device_start_stop =device_stop))

    if (key == key_low)

    key_dptr = 0;
    DEVICE_START_STOP = DEVICE_START;
    FIRST_Part (1、0);
    second_Part (1、0);
    third_Part (1、0);
    第四部分(1、0);
    第5部分(1、0);
    OSAL_STOP_timerEx (simpleBLEPeripheral_TaskID、SBP_Period_EVT);
    // osal_stop_timerEx (simpleBLEPeripheral_TaskID、SBP_KEY_EVT);
    返回(事件^ SBP_KEY_EVT);



    否则、如果((key_dptr >=1)&&(device_start_stop =device_stop))

    if (key == key_low)

    key_dptr = 0;
    DEVICE_START_STOP = DEVICE_START;
    FIRST_Part (0、1);
    second_Part (0、1);
    third_Part (0、1);
    第四部分(0、1);
    第5部分(0、1);
    OSAL_STOP_timerEx (simpleBLEPeripheral_TaskID、SBP_Period_EVT);
    //osal_stop_timerEx (simpleBLEPeripheral_TaskID、SBP_KEY_EVT);
    返回(事件^ SBP_KEY_EVT);


    否则、如果((key_dptr >=1)&&(device_start_stop =device_start))

    if (key == key_low)

    key_dptr = 0;
    DEVICE_START_STOP = DEVICE_STOP;
    FIRST_Part (0、0);
    second_Part (0、0);
    third_Part (0、0);
    第四部分(0、0);
    第5部分(0、0);
    电源= 0;
    OSAL_STOP_timerEx (simpleBLEPeripheral_TaskID、SBP_Period_EVT);
    //osal_stop_timerEx (simpleBLEPeripheral_TaskID、SBP_KEY_EVT);
    返回(事件^ SBP_KEY_EVT);



    其他

    OSAL_START_timerEx (simpleBLEPeripheral_TaskID、SBP_KEY_EVT、SBP_KEY_EVT_PERIOD);
    返回(事件^ SBP_KEY_EVT);


    //周期性事件
    if (事件和 SBP_Periode_EVT)

    if (IN_5V = 1)//如果电池正在充电

    LED = 1;
    FIRST_Part (0、0);
    second_Part (0、0);
    third_Part (0、0);
    第四部分(0、0);
    第5部分(0、0);

    adc_handle();
    OSAL_START_timerEx (simpleBLEPeripheral_TaskID、SBP_PERIOD_EVT、SBP_PERIOD_EVT_PERIOD);
    返回(事件^ SBP_Periode_EVT);
    adc_handle();
    IEN2 |= 0x10;

    如果(IN_5V = 0)

    功率= 1;
    LED = 0;


    OSAL_START_timerEx (simpleBLEPeripheral_TaskID、SBP_PERIOD_EVT、SBP_PERIOD_EVT_PERIOD);
    返回(事件^ SBP_Periode_EVT);

    //丢弃未知事件
    返回0;

     

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    1.您的代码中必须存在错误、否则会导致"初始化程序值太多"。

    2.检测到按钮按压操作后、您可以启动计时器事件以检查按钮 GPI 引脚并计算其保持的时间。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    第一部分采用与其他7个特性类似的模式。

    2.您是否有任何参考链接或代码来检查它  

    此致、

    Yatin Baluja   

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    过去您说过增大阵列大小、但我不确定需要在何处增大阵列大小。 第一点

    此致、

    Yatin Baluja  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我在 e2e.ti.com/.../3391966上告诉过您如何解决此问题