S32 Design Studio PE工具配置Power_Manager

工具配置

基本就是默认配置就行,就是在这6个状态里面跳转,重点就是前面2个状态.这个是芯片的电源管理,跟产品的电源管理是两回事。

生成代码

在Generated_Code/pwrMan1.c 里面,对应刚才配置的信息,一共有6个状态。

/* ************************************************************************** Configuration structure for Power Manager Configuration 0* ************************************************************************* */
/*! @brief User Configuration structure power_managerCfg_0 */
power_manager_user_config_t pwrMan1_InitConfig0 = {.powerMode = POWER_MANAGER_HSRUN,                                /*!< Power manager mode  */.sleepOnExitValue = false,                                       /*!< Sleep on exit value */
};        
/* ************************************************************************** Configuration structure for Power Manager Configuration 1* ************************************************************************* */
/*! @brief User Configuration structure power_managerCfg_1 */
power_manager_user_config_t pwrMan1_InitConfig1 = {.powerMode = POWER_MANAGER_RUN,                                  /*!< Power manager mode  */.sleepOnExitValue = false,                                       /*!< Sleep on exit value */
};        
/* ************************************************************************** Configuration structure for Power Manager Configuration 2* ************************************************************************* */
/*! @brief User Configuration structure power_managerCfg_2 */
power_manager_user_config_t pwrMan1_InitConfig2 = {.powerMode = POWER_MANAGER_VLPR,                                 /*!< Power manager mode  */.sleepOnExitValue = false,                                       /*!< Sleep on exit value */
};        
/* ************************************************************************** Configuration structure for Power Manager Configuration 3* ************************************************************************* */
/*! @brief User Configuration structure power_managerCfg_3 */
power_manager_user_config_t pwrMan1_InitConfig3 = {.powerMode = POWER_MANAGER_STOP1,                                /*!< Power manager mode  */.sleepOnExitValue = false,                                       /*!< Sleep on exit value */
};        
/* ************************************************************************** Configuration structure for Power Manager Configuration 4* ************************************************************************* */
/*! @brief User Configuration structure power_managerCfg_4 */
power_manager_user_config_t pwrMan1_InitConfig4 = {.powerMode = POWER_MANAGER_STOP2,                                /*!< Power manager mode  */.sleepOnExitValue = false,                                       /*!< Sleep on exit value */
};        
/* ************************************************************************** Configuration structure for Power Manager Configuration 5* ************************************************************************* */
/*! @brief User Configuration structure power_managerCfg_5 */
power_manager_user_config_t pwrMan1_InitConfig5 = {.powerMode = POWER_MANAGER_VLPS,                                 /*!< Power manager mode  */.sleepOnExitValue = false,                                       /*!< Sleep on exit value */
};        

统一放在powerConfigsArr数组里面,初始化的时候用。

/*! @brief Array of pointers to User configuration structures */
power_manager_user_config_t * powerConfigsArr[] = {&pwrMan1_InitConfig0,&pwrMan1_InitConfig1,&pwrMan1_InitConfig2,&pwrMan1_InitConfig3,&pwrMan1_InitConfig4,&pwrMan1_InitConfig5
};

另外会有一个powerStaticCallbacksConfigsArr结构体数组,把初始化之后的信息接出来,每个结构体就是三个函数,回调函数、回调类型和回调数据,一个结构体对应一个状态。

/*!* @brief callback configuration structure** This structure holds configuration of callbacks passed* to the Power manager during its initialization.* Structures of this type are expected to be statically* allocated.* This structure contains following application-defined data:*  callback - pointer to the callback function*  callbackType - specifies when the callback is called*  callbackData - pointer to the data passed to the callback* Implements power_manager_callback_user_config_t_Class*/
typedef struct
{power_manager_callback_t callbackFunction;power_manager_callback_type_t callbackType;power_manager_callback_data_t * callbackData;
} power_manager_callback_user_config_t;/*! @brief Array of pointers to User defined Callbacks configuration structures */
power_manager_callback_user_config_t * powerStaticCallbacksConfigsArr[] = {(void *)0};

接口使用

POWER_SYS_Init

初始化接口,传入配置结构体powerConfigsArr,用powerStaticCallbacksConfigsArr获取。

/*FUNCTION************************************************************************ Function Name : POWER_SYS_Init* Description   : Initializes the Power manager for operation.* This function initializes the Power manager and its run-time state structure.* Reference to an array of Power mode configuration structures has to be passed* as parameter along with parameter specifying its size. At least one power mode* configuration is required. Optionally, reference to array of predefined* call-backs can be passed with its size parameter.* For details about call-backs refer to the power_manager_callback_user_config_t.* As Power manager stores only references to array of these structures they have* to exist while Power manager is used.** Implements POWER_SYS_Init_Activity*END**************************************************************************/
status_t POWER_SYS_Init(power_manager_user_config_t * (*powerConfigsPtr)[],uint8_t configsNumber,power_manager_callback_user_config_t * (*callbacksPtr)[],uint8_t callbacksNumber)
{DEV_ASSERT(powerConfigsPtr != NULL);                  /* Reference to the power configurations is valid. */DEV_ASSERT(configsNumber != 0U);                      /* Power configuration index is valid. */DEV_ASSERT(gPowerManagerState.configs == NULL);       /* Driver is not initialized, reference to configuration is not valid. */DEV_ASSERT(gPowerManagerState.configsNumber == 0U);   /* Driver is not initialized, number of configurations is zero. *//* Store references to user-defined power mode configurations */gPowerManagerState.configs = (power_manager_user_config_t * (*)[])powerConfigsPtr;gPowerManagerState.configsNumber = configsNumber;gPowerManagerState.currentConfig = 0U;/* Store references to user-defined callback configurations and increment call-back handle counter */if (callbacksPtr != NULL){gPowerManagerState.staticCallbacks = (power_manager_callback_user_config_t * (*)[])callbacksPtr;gPowerManagerState.staticCallbacksNumber = callbacksNumber;/* Default value of handle of last call-back that returned error */gPowerManagerState.errorCallbackIndex = callbacksNumber;}else{gPowerManagerState.staticCallbacks = NULL;gPowerManagerState.staticCallbacksNumber = 0U;gPowerManagerState.errorCallbackIndex = 0U;}return POWER_SYS_DoInit();
}

举个例子,PWR_MAX是状态个数,一般就是6

POWER_SYS_Init(&powerConfigsArr, PWR_MAX, &powerStaticCallbacksConfigsArr, 0);

POWER_SYS_Deinit

逆初始化

/*FUNCTION************************************************************************ Function Name : POWER_SYS_Deinit* Description   : De-initializes the Power manager.** Implements POWER_SYS_Deinit_Activity*END**************************************************************************/
status_t POWER_SYS_Deinit(void)
{gPowerManagerState.configs = NULL;gPowerManagerState.configsNumber = 0U;gPowerManagerState.staticCallbacks = NULL;gPowerManagerState.staticCallbacksNumber = 0U;return POWER_SYS_DoDeinit();
}

POWER_SYS_SetMode

这个是最常用的,切换模式。

/*FUNCTION************************************************************************ Function Name : POWER_SYS_SetMode* Description   : Configures the power mode.** This function switches to one of the defined power modes. Requested mode number is passed* as an input parameter. This function notifies all registered callback functions before* the mode change (using  POWER_MANAGER_CALLBACK_BEFORE set as callback type parameter),* sets specific power options defined in the power mode configuration and enters the specified* mode. In case of success switch, this function also invokes all registered callbacks after* the mode change (using POWER_MANAGER_CALLBACK_AFTER).* The actual mode switch is performed by POWER_SYS_DoSetMode in the specific implementation.* Callbacks are invoked in the following order: All registered callbacks are notified* ordered by index in the callbacks array (see callbacksPtr parameter of POWER_SYS_Init()).* The same order is used for before and after switch notifications.* The notifications before the power mode switch can be used to obtain confirmation about* the change from registered callbacks. If any registered callback denies the power* mode change, further execution of this function depends on mode change policy: the mode* change is either forced(POWER_MANAGER_POLICY_FORCIBLE) or exited(POWER_MANAGER_POLICY_AGREEMENT).* When mode change is forced, the result of the before switch notifications are ignored. If* agreement is required, if any callback returns an error code then further notifications* before switch notifications are cancelled and all already notified callbacks are re-invoked* with POWER_MANAGER_CALLBACK_AFTER set as callback type parameter. The index of the callback* which returned error code during pre-switch notifications is stored(any error codes during* callbacks re-invocation are ignored) and POWER_SYS_GetErrorCallback() can be used to get it.* Regardless of the policies, if any callback returned an error code, an error code denoting in which phase* the error occurred is returned when POWER_SYS_SetMode() exits.* It is possible to enter any mode supported by the processor. Refer to the chip reference manual* for list of available power modes. If it is necessary to switch into intermediate power mode prior to* entering requested mode, then the intermediate mode is entered without invoking the callback mechanism.** Implements POWER_SYS_SetMode_Activity*END**************************************************************************/
status_t POWER_SYS_SetMode(uint8_t powerModeIndex,power_manager_policy_t policy)
{power_manager_user_config_t * configPtr; /* Local pointer to the requested user-defined power mode configuration */status_t returnCode; /* Function return */status_t errorCode;bool successfulSwitch;                                 /* Power mode switch is successful or not */uint8_t currentStaticCallback = 0U;                    /* Index to array of statically registered call-backs */power_manager_notify_struct_t notifyStruct;            /* Callback notification structure *//* Driver is already initialized. */DEV_ASSERT(gPowerManagerState.configs != NULL);DEV_ASSERT(gPowerManagerState.configsNumber != 0U);/* Power mode index is valid. */DEV_ASSERT(powerModeIndex < gPowerManagerState.configsNumber);/* Initialization of local pointer to the requested user-defined power mode configuration */configPtr = (*gPowerManagerState.configs)[powerModeIndex];/* Reference to the requested user-defined power mode configuration is valid. */DEV_ASSERT(configPtr != NULL);/* Default value of handle of last call-back that returned error */gPowerManagerState.errorCallbackIndex = gPowerManagerState.staticCallbacksNumber;/* Set the transaction policy in the notification structure */notifyStruct.policy = policy;/* Set the target power mode configuration in the notification structure */notifyStruct.targetPowerConfigIndex = powerModeIndex;notifyStruct.targetPowerConfigPtr = configPtr;/* Notify those which asked to be called before the power mode change */notifyStruct.notifyType = POWER_MANAGER_NOTIFY_BEFORE;returnCode = POWER_SYS_CallbacksManagement(&notifyStruct, &currentStaticCallback, policy);/* Power mode switch *//* In case that any call-back returned error code and  policy doesn't force the mode switch go to after switch call-backs */if ((policy == POWER_MANAGER_POLICY_FORCIBLE) || (returnCode == STATUS_SUCCESS)){returnCode = POWER_SYS_DoSetMode(configPtr);successfulSwitch = (STATUS_SUCCESS == returnCode);}else{/* Unsuccessful switch */successfulSwitch = false;}if (successfulSwitch){/* End of successful switch *//* Update current configuration index */gPowerManagerState.currentConfig = powerModeIndex;/* Notify those which asked to be called after the power mode change */notifyStruct.notifyType = POWER_MANAGER_NOTIFY_AFTER;returnCode = POWER_SYS_CallbacksManagement(&notifyStruct, &currentStaticCallback, POWER_MANAGER_POLICY_FORCIBLE);}else{/* End of unsuccessful switch *//* Notify those which have been called before the power mode change */notifyStruct.notifyType = POWER_MANAGER_NOTIFY_RECOVER;errorCode = POWER_SYS_CallbacksManagement(&notifyStruct, &currentStaticCallback, POWER_MANAGER_POLICY_FORCIBLE);(void)(errorCode);}return returnCode;
}

入参有两个,一个是模式,就是上面那6个的其中一个,顺序对应配置界面从0-5。在power_manager_S32K1xx.h文件里面,把相应的枚举复制过去就行。

/*!* @brief Power modes enumeration.** Defines power modes. Used in the power mode configuration structure* (power_manager_user_config_t). From ARM core perspective, Power modes* can be generally divided into run modes (High speed run, Run and* Very low power run), sleep (Wait and Very low power wait) and deep sleep modes* (all Stop modes).* List of power modes supported by specific chip along with requirements for entering* and exiting of these modes can be found in chip documentation.* List of all supported power modes:\n*  \li POWER_MANAGER_HSRUN - High speed run mode.*  \li POWER_MANAGER_RUN - Run mode.*  \li POWER_MANAGER_VLPR - Very low power run mode.*  \li POWER_MANAGER_WAIT - Wait mode.*  \li POWER_MANAGER_VLPW - Very low power wait mode.*  \li POWER_MANAGER_PSTOP1 - Partial stop 1 mode.*  \li POWER_MANAGER_PSTOP2 - Partial stop 2 mode.*  \li POWER_MANAGER_PSTOP1 - Stop 1 mode.*  \li POWER_MANAGER_PSTOP2 - Stop 2 mode.*  \li POWER_MANAGER_VLPS - Very low power stop mode.* Implements power_manager_modes_t_Class*/
typedef enum
{
#if FEATURE_SMC_HAS_HIGH_SPEED_RUN_MODEPOWER_MANAGER_HSRUN,            /*!< High speed run mode.  */
#endifPOWER_MANAGER_RUN,              /*!< Run mode. */POWER_MANAGER_VLPR,             /*!< Very low power run mode.  */
#if FEATURE_SMC_HAS_WAIT_VLPWPOWER_MANAGER_WAIT,             /*!< Wait mode.  */POWER_MANAGER_VLPW,             /*!< Very low power wait mode.  */
#endif
#if FEATURE_SMC_HAS_PSTOPOPOWER_MANAGER_PSTOP1,           /*!< Partial stop 1 mode. */POWER_MANAGER_PSTOP2,           /*!< Partial stop 2 mode. */
#endif
#if FEATURE_SMC_HAS_STOPOPOWER_MANAGER_STOP1,           /*!< Stop 1 mode. */POWER_MANAGER_STOP2,           /*!< Stop 2 mode. */
#endifPOWER_MANAGER_VLPS,             /*!< Very low power stop mode.  */POWER_MANAGER_MAX
} power_manager_modes_t;

第二个入参是切换模式时候的方法,需要所有回调成功就用POWER_MANAGER_POLICY_AGREEMENT,我们一般用这个。不需要看回调结果就用POWER_MANAGER_POLICY_FORCIBLE。

/*!* @brief Power manager policies.** Defines whether the mode switch initiated by the POWER_SYS_SetMode() is agreed upon* (depending on the result of notification callbacks), or forced.* For POWER_MANAGER_POLICY_FORCIBLE the power mode is changed* regardless of the callback results, while for POWER_MANAGER_POLICY_AGREEMENT policy* any error code returned by one of the callbacks aborts the mode change.* See also POWER_SYS_SetMode() description.* Implements power_manager_policy_t_Class*/
typedef enum
{POWER_MANAGER_POLICY_AGREEMENT,      /*!< Power mode is changed if all of the callbacks return success. */POWER_MANAGER_POLICY_FORCIBLE        /*!< Power mode is changed regardless of the result of callbacks. */
} power_manager_policy_t;

POWER_SYS_GetLastMode

获取切换前上次的模式

/*FUNCTION************************************************************************ Function Name : POWER_SYS_GetLastMode* Description   : This function returns power mode set as the last one.** This function returns index of power mode which was set using POWER_SYS_SetMode() as the last one.* If the power mode was entered although some of the registered call-back denied the mode change* or if any of the call-backs invoked after the entering/restoring run mode failed then the return* code of this function has STATUS_ERROR value.* value.** Implements POWER_SYS_GetLastMode_Activity*END**************************************************************************/
status_t POWER_SYS_GetLastMode(uint8_t * powerModeIndexPtr)
{status_t returnCode; /* Function return *//* Pass index of user-defined configuration structure of currently running power mode */*powerModeIndexPtr = gPowerManagerState.currentConfig;/* Return whether all call-backs executed without error */if (gPowerManagerState.errorCallbackIndex == gPowerManagerState.staticCallbacksNumber){returnCode = STATUS_SUCCESS;}else{returnCode = STATUS_ERROR;}return returnCode;
}

POWER_SYS_GetLastModeConfig

获取上次设置模式的配置内容

/*FUNCTION************************************************************************ Function Name : POWER_SYS_GetLastModeConfig* Description   : This function returns user configuration structure of power mode set as the last one.** This function returns reference to configuration structure which was set using POWER_SYS_SetMode()* as the last one. If the current power mode was entered although some of the registered call-back denied* the mode change or if any of the call-backs invoked after the entering/restoring run mode failed then* the return code of this function has STATUS_ERROR value.** Implements POWER_SYS_GetLastModeConfig_Activity*END**************************************************************************/
status_t POWER_SYS_GetLastModeConfig(power_manager_user_config_t ** powerModePtr)
{status_t returnCode; /* Function return *//* Pass reference to user-defined configuration structure of currently running power mode */*powerModePtr = (*gPowerManagerState.configs)[gPowerManagerState.currentConfig];/* Return whether all call-backs executed without error */if (gPowerManagerState.errorCallbackIndex == gPowerManagerState.staticCallbacksNumber){returnCode = STATUS_SUCCESS;}else{returnCode = STATUS_ERROR;}return returnCode;
}

POWER_SYS_GetCurrentMode

获取当前模式

/*FUNCTION************************************************************************ Function Name : POWER_SYS_GetCurrentMode* Description   : Returns currently running power mode.** Implements POWER_SYS_GetCurrentMode_Activity**END**************************************************************************/
power_manager_modes_t POWER_SYS_GetCurrentMode(void)
{power_manager_modes_t retVal;switch (SMC_GetPowerModeStatus(SMC)){
#if FEATURE_SMC_HAS_HIGH_SPEED_RUN_MODE/* High speed run mode */case STAT_HSRUN:retVal = POWER_MANAGER_HSRUN;break;
#endif/* Run mode */case STAT_RUN:retVal = POWER_MANAGER_RUN;break;/* Very low power run mode */case STAT_VLPR:retVal = POWER_MANAGER_VLPR;break;/* This should never happen - core has to be in some run mode to execute code */default:retVal = POWER_MANAGER_MAX;break;}return retVal;
}

POWER_SYS_GetErrorCallbackIndex

返回错误信息索引的回调函数,一般用不上。

/*FUNCTION************************************************************************ Function Name : POWER_SYS_GetErrorCallbackIndex* Description   : Returns the last failed notification callback.** This function returns index of the last call-back that failed during the power mode switch while* the last POWER_SYS_SetMode() was called. If the last POWER_SYS_SetMode() call ended successfully* value equal to callbacks number is returned. Returned value represents index in the array of* static call-backs.** Implements POWER_SYS_GetErrorCallbackIndex_Activity*END**************************************************************************/
uint8_t POWER_SYS_GetErrorCallbackIndex(void)
{return gPowerManagerState.errorCallbackIndex;
}

POWER_SYS_GetErrorCallback

获取错误的回调函数

/*FUNCTION************************************************************************ Function Name : POWER_SYS_GetErrorCallback* Description   : Get the callback which returns error in last mode switch.** Implements POWER_SYS_GetErrorCallback_Activity*END**************************************************************************/
power_manager_callback_user_config_t * POWER_SYS_GetErrorCallback(void)
{/* If all callbacks return success. */return (gPowerManagerState.errorCallbackIndex >=gPowerManagerState.staticCallbacksNumber) ? NULL : (*gPowerManagerState.staticCallbacks)[gPowerManagerState.errorCallbackIndex];
}

POWER_SYS_GetDefaultConfig

获取默认配置

/*FUNCTION************************************************************************ Function Name : POWER_SYS_GetDefaultConfig* Description   : Initializes the power_manager configuration structure.* This function returns a pointer of the power_manager configuration structure.* All structure members have default value when CPU is default power mode.** Implements    : POWER_SYS_GetDefaultConfig_Activity*END**************************************************************************/
void POWER_SYS_GetDefaultConfig(power_manager_user_config_t * const config)
{POWER_SYS_DoGetDefaultConfig(config);
}

POWER_SYS_GetResetSrcStatusCmd

获取指定源的当前复位源状态

/*FUNCTION************************************************************************ Function Name : POWER_SYS_GetResetSrcStatusCmd* Description   : This function will get the current reset source status for specified source** Implements POWER_SYS_GetResetSrcStatusCmd_Activity**END**************************************************************************/
bool POWER_SYS_GetResetSrcStatusCmd(const RCM_Type * const baseAddr , const rcm_source_names_t srcName)
{return RCM_GetSrcStatusCmd(baseAddr , srcName);
}

第一个入参是RCM寄存器基地址,S32K146.h里面有,

#define RCM   ((RCM_Type *)RCM_BASE)

第二个入参是唤醒源,在power_manager_S32K1xx.h里面。

/*!* @brief System Reset Source Name definitions* Implements rcm_source_names_t_Class*/
typedef enum
{RCM_LOW_VOLT_DETECT      = 1U,             /*!< Low voltage detect reset */RCM_LOSS_OF_CLK          = 2U,       /*!< Loss of clock reset */RCM_LOSS_OF_LOCK         = 3U,       /*!< Loss of lock reset */
#if FEATURE_RCM_HAS_CMU_LOSS_OF_CLOCKRCM_CMU_LOC              = 4U,        /*!< CMU Loss of lock reset */
#endifRCM_WATCH_DOG            = 5U,        /*!< Watch dog reset */RCM_EXTERNAL_PIN         = 6U,       /*!< External pin reset */RCM_POWER_ON             = 7U,       /*!< Power on reset */RCM_SJTAG                = 8U,       /*!< JTAG generated reset */RCM_CORE_LOCKUP          = 9U,       /*!< core lockup reset */RCM_SOFTWARE             = 10U,       /*!< Software reset */RCM_SMDM_AP              = 11U,       /*!< MDM-AP system reset */RCM_STOP_MODE_ACK_ERR    = 13U,       /*!< Stop mode ack error reset */RCM_SRC_NAME_MAX
} rcm_source_names_t;

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/475.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

土壤水分检测仪中应用的数字电容传感芯片

土壤水分检测仪&#xff0c;它是基于频域反射&#xff08;Frequency Domain Reflectometry&#xff0c;FDR&#xff09;原理&#xff0c;能够准确对传感器周围的土壤水分情况进行监测,可对10cm、20cm、30cm、40cm、50cm的较多5个监测层面进行测量。广泛应用于农田蒸散、作物耗水…

【话题】程序员如何搞副业,简单探讨下

大家好&#xff0c;我是全栈小5&#xff0c;欢迎阅读小5的系列文章&#xff0c;这是《话题》系列文章 目录 背景前提条件打造私域广结朋友平台 技能转化为价值1. 副业途径2. 如何开展3. 未来趋势与建议4. 挑战与策略5. 规划与发展 文章推荐 背景 程序员不仅拥有将抽象概念转化…

文献速递:深度学习胶质瘤诊断---使用深度学习在 MRI 图像中进行低级别胶质瘤的脑肿瘤分割和分级

Title 题目 Brain tumor segmentation and grading of lower-grade glioma using deeplearning in MRI images 使用深度学习在 MRI 图像中进行低级别胶质瘤的脑肿瘤分割和分级 01文献速递介绍 胶质瘤是最常见的脑肿瘤&#xff0c;根据肿瘤的恶性程度和生长速率具有不同的分级…

婴儿用的洗衣机买哪种好?四款超实用高质量婴儿洗衣机推荐!

近几年科技高速发展&#xff0c;我们的生活也因此变得更加便捷、健康高效。尤其是在家庭生活中&#xff0c;各种新兴家电的出现让我们的生活变得更加健康卫生。婴儿洗衣机也为现代家庭提供了极大的便捷。由于婴儿刚出生免疫力比较弱&#xff0c;所以建议婴儿的衣物尽量和大人的…

操作系统命令(贪吃蛇项目)

&#x1f3dd;1.获得句柄 GetStdHandle是⼀个Windows API函数。它用于从⼀个特定的标准设备&#xff08;标准输入、标准输出或标 准错误&#xff09;中取得⼀个句柄&#xff08;用来标识不同设备的数值&#xff09;&#xff0c;使用这个句柄可以操作设备。 ⛳️函数原型&…

力扣:219. 存在重复元素 II

力扣&#xff1a;219. 存在重复元素 II 给你一个整数数组 nums 和一个整数 k &#xff0c;判断数组中是否存在两个 不同的索引 i 和 j &#xff0c;满足 nums[i] nums[j] 且 abs(i - j) < k 。如果存在&#xff0c;返回 true &#xff1b;否则&#xff0c;返回 false 。 …

SIP-7035 隧道广播功率放大器 校园网络广播功放sip定压功放

SIP-7035 隧道广播功率放大器 校园网络广播功放sip定压功放 产品介绍18123651365微信 SIP-7035是我司的一款合并式定压功放&#xff0c;支持标准SIP协议&#xff0c;具有10/100M以太网接口&#xff0c;后面板上有2组AUX音源输入和6.35mm接口的麦克风输入&#xff0c;可以输入…

Grass注册不了、按钮灰色的解决方案

近期相信grass挂机项目不少人有所有接触。还有不了解这个项目的可以看看博客&#xff1a; http://t.csdnimg.cn/bI4UO 但是不少人注册时遇到无法注册的问题&#xff0c;或者是注册按钮显示灰色&#xff0c;放上鼠标时显示禁止。这也是博主在尝试时遇到的问题。 经过探索&…

二维数组之前缀和下篇

在此之前&#xff0c;可以先去看看二维数组之二维前缀和首篇和二维数组之前缀和中篇。 最大子数组和 给你一个整数数组 nums &#xff0c;请你找出一个具有最大和的连续子数组&#xff08;子数组最少包含一个元素&#xff09;&#xff0c;返回其最大和。 示例 1&#xff1a; …

GPT人工智能在线网页版大全

平民不参与内测&#xff0c;还能使用 ChatGPT 吗&#xff1f; 自去年 ChatGPT 爆红以来&#xff0c;关于它的消息铺天盖地。如果你真的想使用它&#xff0c;途径有很多。除了官方网站外国内还有许多 ChatGPT 的镜像网站&#xff0c;其中不乏免费的 3.5 版本。虽然有些网站需要…

2024年04月18日优雅草便民tools开源-git以及dcloud同步-长期更新

优雅草小工具-数据来自优雅草api赋能 优雅草小工具-数据来自优雅草api赋能-优雅草便民工具是一款由成都市一颗优雅草科技有限公司打造的便民查询公益工具&#xff0c;2024年1月17日正式发布v1.0.0版本&#xff0c;本工具为了方便大众免费使用&#xff0c;本生活小工具会陆续加入…

Pixverse:开启文生视频与图生视频新纪元

✨✨ 欢迎大家来访Srlua的博文&#xff08;づ&#xffe3;3&#xffe3;&#xff09;づ╭❤&#xff5e;✨✨ &#x1f31f;&#x1f31f; 欢迎各位亲爱的读者&#xff0c;感谢你们抽出宝贵的时间来阅读我的文章。 我是Srlua小谢&#xff0c;在这里我会分享我的知识和经验。&am…

Python基础02-掌握HTTP API的秘诀

在下面文案基础上扩展&#xff0c;写一篇技术博客&#xff0c;标题要有吸引力&#xff1f; 标题&#xff1a; 在Python中&#xff0c;使用HTTP API已成为一种常见的操作。本文将深入探讨如何使用Python的requests库与HTTP API进行交互。我们将学习如何发送GET和POST请求、处理…

怎么使用Python提取快递信息

目录 一、前言 二、准备工作 三、安装必要的库 四、编写代码 导入必要的库 定义快递查询函数 调用快递查询函数 五、进阶操作 定时查询快递信息 发送快递信息通知 六、注意事项 一、前言 在提取快递信息之前&#xff0c;我们需要了解快递查询的基本原理。大部分快递…

apache是什么

​Apache(音译为阿帕奇)是世界使用排名第一的Web服务器软件。它可以运行在几乎所有广泛使用的计算机平台上&#xff0c;由于其跨平台和安全性被广泛使用&#xff0c;是最流行的Web服务器端软件之一。它快速、可靠并且可通过简单的API扩充&#xff0c;将Perl/Python等解释器编译…

ARouter之kotlin build.gradle.kts

ARouter之kotlin build.gradle.kts kotlin的配置需要用到kapt 项目的build.gradle.kts plugins {id("com.android.application") version "8.1.2" apply falseid("org.jetbrains.kotlin.android") version "1.9.0" apply falseid(&…

亚马逊云挂机项目,单机600+,详细拆解

一、什么是亚马逊云挂机项目&#xff1f; 此项目有很多种叫法&#xff0c;也有人叫它亚马逊店铺挂机浏览项目。 二、赚钱原理&#xff1f; 新入驻的亚马逊商家往往是没有流量和曝光的&#xff0c;为了让店铺的商品更多的被人看到&#xff0c;花钱在平台直接买流量又不划算&a…

Vue 3 项目构建与效率提升:vite-plugin-vue-setup-extend 插件应用指南

一、Vue3项目创建 前提是已安装Node.js&#xff08;点击跳转Node官网&#xff09; npm create vuelatest这一指令将会安装并执行 create-vue&#xff0c;它是 Vue 官方的项目脚手架工具。你将会看到一些诸如 TypeScript 和测试支持之类的可选功能提示&#xff1a; ✔ Projec…

WPS的bug问题(解决方法->换成office吧):表格数据和透视图数据不一致问题,多次尝试确定该bug

1.软件版本 2.问题描述 我在原始表中对其中一列进行筛选&#xff0c;选择95%以上这个选项值&#xff0c;343个数据。 在筛选了95%以上这个选项之后&#xff0c;我的另一列的值全部是no&#xff0c;343个数据。 然后进行透视图之后&#xff0c;在绘制的图形中发现&#xff0c…

腾讯面试准备-2024.3.25

腾讯面试准备-2024.3.25 腾讯面试准备-2024.3.25自我介绍C11/14/17新特性C11新特性C14新特性C17新特性 struct和class的区别进程状态现代的流媒体通信协议栈流媒体协议详解extern "C"程序从编译到执行的过程进程、线程、协程进程线程协程 如何实现一个信号与槽系统&a…