您当前的位置:首页 > IT编程 > C++
| C语言 | Java | VB | VC | python | Android | TensorFlow | C++ | oracle | 学术与代码 | cnn卷积神经网络 | gnn | 图像修复 | Keras | 数据集 | Neo4j | 自然语言处理 | 深度学习 | 医学CAD | 医学影像 | 超参数 | pointnet | pytorch | 异常检测 | Transformers | 情感分类 | 知识图谱 |

自学教程:C++ CLEAR_BIT函数代码示例

51自学网 2021-06-01 20:01:56
  C++
这篇教程C++ CLEAR_BIT函数代码示例写得很实用,希望能帮到您。

本文整理汇总了C++中CLEAR_BIT函数的典型用法代码示例。如果您正苦于以下问题:C++ CLEAR_BIT函数的具体用法?C++ CLEAR_BIT怎么用?C++ CLEAR_BIT使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。

在下文中一共展示了CLEAR_BIT函数的29个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。

示例1: HAL_DisableDBGStandbyMode

/**  * @brief  Disable the Debug Module during STANDBY mode         * @param  None  * @retval None  */void HAL_DisableDBGStandbyMode(void){  CLEAR_BIT(DBGMCU->CR, DBGMCU_CR_DBG_STANDBY);}
开发者ID:glocklueng,项目名称:STM32-1,代码行数:9,


示例2: HAL_PWR_DisableSEVOnPend

/**  * @brief Disables CORTEX M4 SEVONPEND bit.   * @note Clears SEVONPEND bit of SCR register. When this bit is set, this causes   *       WFE to wake up when an interrupt moves from inactive to pended.           * @retval None  */void HAL_PWR_DisableSEVOnPend(void){  /* Clear SEVONPEND bit of Cortex System Control Register */  CLEAR_BIT(SCB->SCR, ((uint32_t)SCB_SCR_SEVONPEND_Msk));}
开发者ID:HubertD,项目名称:feuchtwerk-fw,代码行数:11,


示例3: HAL_FLASH_IRQHandler

/**  * @brief This function handles FLASH interrupt request.  * @retval None  */void HAL_FLASH_IRQHandler(void){  uint32_t addresstmp = 0;    /* Check FLASH operation error flags */  if( __HAL_FLASH_GET_FLAG(FLASH_FLAG_WRPERR)     ||       __HAL_FLASH_GET_FLAG(FLASH_FLAG_PGAERR)     ||       __HAL_FLASH_GET_FLAG(FLASH_FLAG_SIZERR)     || #if defined(FLASH_SR_RDERR)      __HAL_FLASH_GET_FLAG(FLASH_FLAG_RDERR)      || #endif /* FLASH_SR_RDERR */#if defined(FLASH_SR_OPTVERRUSR)      __HAL_FLASH_GET_FLAG(FLASH_FLAG_OPTVERRUSR) || #endif /* FLASH_SR_OPTVERRUSR */      __HAL_FLASH_GET_FLAG(FLASH_FLAG_OPTVERR) )  {    if(pFlash.ProcedureOnGoing == FLASH_PROC_PAGEERASE)    {      /* Return the faulty sector */      addresstmp = pFlash.Page;      pFlash.Page = 0xFFFFFFFFU;    }    else    {      /* Return the faulty address */      addresstmp = pFlash.Address;    }    /* Save the Error code */    FLASH_SetErrorCode();        /* FLASH error interrupt user callback */    HAL_FLASH_OperationErrorCallback(addresstmp);    /* Stop the procedure ongoing */    pFlash.ProcedureOnGoing = FLASH_PROC_NONE;  }  /* Check FLASH End of Operation flag  */  if(__HAL_FLASH_GET_FLAG(FLASH_FLAG_EOP))  {    /* Clear FLASH End of Operation pending bit */    __HAL_FLASH_CLEAR_FLAG(FLASH_FLAG_EOP);        /* Process can continue only if no error detected */    if(pFlash.ProcedureOnGoing != FLASH_PROC_NONE)    {      if(pFlash.ProcedureOnGoing == FLASH_PROC_PAGEERASE)      {        /* Nb of pages to erased can be decreased */        pFlash.NbPagesToErase--;        /* Check if there are still pages to erase */        if(pFlash.NbPagesToErase != 0)        {          addresstmp = pFlash.Page;          /*Indicate user which sector has been erased */          HAL_FLASH_EndOfOperationCallback(addresstmp);          /*Increment sector number*/          addresstmp = pFlash.Page + FLASH_PAGE_SIZE;          pFlash.Page = addresstmp;          /* If the erase operation is completed, disable the ERASE Bit */          CLEAR_BIT(FLASH->PECR, FLASH_PECR_ERASE);          FLASH_PageErase(addresstmp);        }        else        {          /* No more pages to Erase, user callback can be called. */          /* Reset Sector and stop Erase pages procedure */          pFlash.Page = addresstmp = 0xFFFFFFFFU;          pFlash.ProcedureOnGoing = FLASH_PROC_NONE;          /* FLASH EOP interrupt user callback */          HAL_FLASH_EndOfOperationCallback(addresstmp);        }      }      else      {          /* If the program operation is completed, disable the PROG Bit */          CLEAR_BIT(FLASH->PECR, FLASH_PECR_PROG);          /* Program ended. Return the selected address */          /* FLASH EOP interrupt user callback */          HAL_FLASH_EndOfOperationCallback(pFlash.Address);                  /* Reset Address and stop Program procedure */          pFlash.Address = 0xFFFFFFFFU;          pFlash.ProcedureOnGoing = FLASH_PROC_NONE;      }    }  }    if(pFlash.ProcedureOnGoing == FLASH_PROC_NONE)  {//.........这里部分代码省略.........
开发者ID:AlessandroA,项目名称:mbed,代码行数:101,


示例4: LL_ADC_DeInit

/**  * @brief  De-initialize registers of the selected ADC instance  *         to their default reset values.  * @note   To reset all ADC instances quickly (perform a hard reset),  *         use function @ref LL_ADC_CommonDeInit().  * @note   If this functions returns error status, it means that ADC instance  *         is in an unknown state.  *         In this case, perform a hard reset using high level  *         clock source RCC ADC reset.  *         Refer to function @ref LL_ADC_CommonDeInit().  * @param  ADCx ADC instance  * @retval An ErrorStatus enumeration value:  *          - SUCCESS: ADC registers are de-initialized  *          - ERROR: ADC registers are not de-initialized  */ErrorStatus LL_ADC_DeInit(ADC_TypeDef *ADCx){  ErrorStatus status = SUCCESS;    __IO uint32_t timeout_cpu_cycles = 0U;    /* Check the parameters */  assert_param(IS_ADC_ALL_INSTANCE(ADCx));    /* Disable ADC instance if not already disabled.                            */  if(LL_ADC_IsEnabled(ADCx) == 1U)  {    /* Set ADC group regular trigger source to SW start to ensure to not      */    /* have an external trigger event occurring during the conversion stop    */    /* ADC disable process.                                                   */    LL_ADC_REG_SetTriggerSource(ADCx, LL_ADC_REG_TRIG_SOFTWARE);        /* Stop potential ADC conversion on going on ADC group regular.           */    if(LL_ADC_REG_IsConversionOngoing(ADCx) != 0U)    {      if(LL_ADC_REG_IsStopConversionOngoing(ADCx) == 0U)      {        LL_ADC_REG_StopConversion(ADCx);      }    }        /* Wait for ADC conversions are effectively stopped                       */    timeout_cpu_cycles = ADC_TIMEOUT_STOP_CONVERSION_CPU_CYCLES;    while (LL_ADC_REG_IsStopConversionOngoing(ADCx) == 1U)    {      if(timeout_cpu_cycles-- == 0U)      {        /* Time-out error */        status = ERROR;      }    }        /* Disable the ADC instance */    LL_ADC_Disable(ADCx);        /* Wait for ADC instance is effectively disabled */    timeout_cpu_cycles = ADC_TIMEOUT_DISABLE_CPU_CYCLES;    while (LL_ADC_IsDisableOngoing(ADCx) == 1U)    {      if(timeout_cpu_cycles-- == 0U)      {        /* Time-out error */        status = ERROR;      }    }  }    /* Check whether ADC state is compliant with expected state */  if(READ_BIT(ADCx->CR,              (  ADC_CR_ADSTP | ADC_CR_ADSTART               | ADC_CR_ADDIS | ADC_CR_ADEN   )             )     == 0U)  {    /* ========== Reset ADC registers ========== */    /* Reset register IER */    CLEAR_BIT(ADCx->IER,              (  LL_ADC_IT_ADRDY               | LL_ADC_IT_EOC               | LL_ADC_IT_EOS               | LL_ADC_IT_OVR               | LL_ADC_IT_EOSMP               | LL_ADC_IT_AWD1 )             );        /* Reset register ISR */    SET_BIT(ADCx->ISR,            (  LL_ADC_FLAG_ADRDY             | LL_ADC_FLAG_EOC             | LL_ADC_FLAG_EOS             | LL_ADC_FLAG_OVR             | LL_ADC_FLAG_EOSMP             | LL_ADC_FLAG_AWD1 )           );        /* Reset register CR */    /* Bits ADC_CR_ADCAL, ADC_CR_ADSTP, ADC_CR_ADSTART are in access mode     */    /* "read-set": no direct reset applicable.                                */    /* No action on register CR */    //.........这里部分代码省略.........
开发者ID:ekawahyu,项目名称:HALMX_Arduino_STM32,代码行数:101,


示例5: HAL_OPAMPEx_SelfCalibrateAll

/**  * @brief  Run the self calibration of the 3 OPAMPs in parallel.  * @note   Trimming values (PMOS & NMOS) are updated and user trimming is   *         enabled is calibration is succesful.  * @note   Calibration is performed in the mode specified in OPAMP init  *         structure (mode normal or low-power). To perform calibration for  *         both modes, repeat this function twice after OPAMP init structure  *         accordingly updated.  * @note   Calibration runs about 10 ms (5 dichotmy steps, repeated for P    *         and N transistors: 10 steps with 1 ms for each step).  * @param  hopamp1 handle  * @param  hopamp2 handle  * @param  hopamp3 handle  * @retval HAL status  */HAL_StatusTypeDef HAL_OPAMPEx_SelfCalibrateAll(OPAMP_HandleTypeDef *hopamp1, OPAMP_HandleTypeDef *hopamp2, OPAMP_HandleTypeDef *hopamp3){  HAL_StatusTypeDef status = HAL_OK;    uint32_t* opamp1_trimmingvalue = 0;  uint32_t opamp1_trimmingvaluen = 0;  uint32_t opamp1_trimmingvaluep = 0;    uint32_t* opamp2_trimmingvalue = 0;  uint32_t opamp2_trimmingvaluen = 0;  uint32_t opamp2_trimmingvaluep = 0;    uint32_t* opamp3_trimmingvalue = 0;  uint32_t opamp3_trimmingvaluen = 0;  uint32_t opamp3_trimmingvaluep = 0;    uint32_t trimming_diff_pair = 0;          /* Selection of differential transistors pair high or low */  __IO uint32_t* tmp_opamp1_reg_trimming;   /* Selection of register of trimming depending on power mode: OTR or LPOTR */  __IO uint32_t* tmp_opamp2_reg_trimming;  __IO uint32_t* tmp_opamp3_reg_trimming;  uint32_t tmp_opamp1_otr_otuser = 0;       /* Selection of bit OPAMP_OTR_OT_USER depending on trimming register pointed: OTR or LPOTR */  uint32_t tmp_opamp2_otr_otuser = 0;  uint32_t tmp_opamp3_otr_otuser = 0;    uint32_t tmp_Opa1calout_DefaultSate = 0;  /* Bit OPAMP_CSR_OPA1CALOUT default state when trimming value is 00000b. Used to detect the bit toggling */  uint32_t tmp_Opa2calout_DefaultSate = 0;  /* Bit OPAMP_CSR_OPA2CALOUT default state when trimming value is 00000b. Used to detect the bit toggling */  uint32_t tmp_Opa3calout_DefaultSate = 0;  /* Bit OPAMP_CSR_OPA3CALOUT default state when trimming value is 00000b. Used to detect the bit toggling */  uint32_t tmp_OpaxSwitchesContextBackup = 0;    uint8_t trimming_diff_pair_iteration_count = 0;       /* For calibration loop algorithm: to repeat the calibration loop for both differential transistors pair high and low */  uint8_t delta = 0;                                    /* For calibration loop algorithm: Variable for dichotomy steps value */  uint8_t final_step_check = 0;                         /* For calibration loop algorithm: Flag for additional check of last trimming step */    /* Check the OPAMP handle allocation */  /* Check if OPAMP locked */  if((hopamp1 == NULL) || (hopamp1->State == HAL_OPAMP_STATE_BUSYLOCKED) ||     (hopamp2 == NULL) || (hopamp2->State == HAL_OPAMP_STATE_BUSYLOCKED) ||     (hopamp3 == NULL) || (hopamp3->State == HAL_OPAMP_STATE_BUSYLOCKED)   )   {    status = HAL_ERROR;  }  else  {      /* Check if OPAMP in calibration mode and calibration not yet enable */    if((hopamp1->State == HAL_OPAMP_STATE_READY) &&       (hopamp2->State == HAL_OPAMP_STATE_READY) &&       (hopamp3->State == HAL_OPAMP_STATE_READY)   )    {      /* Check the parameter */      assert_param(IS_OPAMP_ALL_INSTANCE(hopamp1->Instance));      assert_param(IS_OPAMP_ALL_INSTANCE(hopamp2->Instance));      assert_param(IS_OPAMP_ALL_INSTANCE(hopamp3->Instance));      assert_param(IS_OPAMP_POWERMODE(hopamp1->Init.PowerMode));      assert_param(IS_OPAMP_POWERMODE(hopamp2->Init.PowerMode));      assert_param(IS_OPAMP_POWERMODE(hopamp3->Init.PowerMode));            /* Update OPAMP state */      hopamp1->State = HAL_OPAMP_STATE_CALIBBUSY;      hopamp2->State = HAL_OPAMP_STATE_CALIBBUSY;      hopamp3->State = HAL_OPAMP_STATE_CALIBBUSY;            /* Backup of switches configuration to restore it at the end of the     */      /* calibration.                                                         */      tmp_OpaxSwitchesContextBackup = READ_BIT(OPAMP->CSR, OPAMP_CSR_ALL_SWITCHES_ALL_OPAMPS);            /* Open all switches on non-inverting input, inverting input and output */      /* feedback.                                                            */      CLEAR_BIT(OPAMP->CSR, OPAMP_CSR_ALL_SWITCHES_ALL_OPAMPS);            /* Set calibration mode to user programmed trimming values */      SET_BIT(OPAMP->OTR, OPAMP_OTR_OT_USER);            /* Select trimming settings depending on power mode */      if (hopamp1->Init.PowerMode == OPAMP_POWERMODE_NORMAL)      {        tmp_opamp1_otr_otuser = OPAMP_OTR_OT_USER;        tmp_opamp1_reg_trimming = &OPAMP->OTR;      }      else      {        tmp_opamp1_otr_otuser = 0x00000000;        tmp_opamp1_reg_trimming = &OPAMP->LPOTR;//.........这里部分代码省略.........
开发者ID:MOSAIC-LoPoW,项目名称:dash7-ap-open-source-stack,代码行数:101,


示例6: HAL_OPAMP_Init

/**  * @brief  Initializes the OPAMP according to the specified  *         parameters in the OPAMP_InitTypeDef and initialize the associated handle.  * @note   If the selected opamp is locked, initialization can't be performed.  *         To unlock the configuration, perform a system reset.  * @param  hopamp: OPAMP handle  * @retval HAL status  */HAL_StatusTypeDef HAL_OPAMP_Init(OPAMP_HandleTypeDef *hopamp){   HAL_StatusTypeDef status = HAL_OK;  uint32_t updateotrlpotr = 0;  /* Check the OPAMP handle allocation and lock status */  /* Init not allowed if calibration is ongoing */  if((hopamp == NULL) || (hopamp->State == HAL_OPAMP_STATE_BUSYLOCKED)                      || (hopamp->State == HAL_OPAMP_STATE_CALIBBUSY))  {    return HAL_ERROR;  }  else  {    /* Check the parameter */    assert_param(IS_OPAMP_ALL_INSTANCE(hopamp->Instance));           /* Set OPAMP parameters */    assert_param(IS_OPAMP_POWER_SUPPLY_RANGE(hopamp->Init.PowerSupplyRange));    assert_param(IS_OPAMP_POWERMODE(hopamp->Init.PowerMode));    assert_param(IS_OPAMP_FUNCTIONAL_NORMALMODE(hopamp->Init.Mode));    assert_param(IS_OPAMP_NONINVERTING_INPUT(hopamp->Init.NonInvertingInput));        if ((hopamp->Init.Mode) == OPAMP_STANDALONE_MODE)    {      assert_param(IS_OPAMP_INVERTING_INPUT_STANDALONE(hopamp->Init.InvertingInput));    }    if ((hopamp->Init.Mode) == OPAMP_PGA_MODE)          {      assert_param(IS_OPAMP_INVERTING_INPUT_PGA(hopamp->Init.InvertingInput));    }        if ((hopamp->Init.Mode) == OPAMP_PGA_MODE)    {      assert_param(IS_OPAMP_PGA_GAIN(hopamp->Init.PgaGain));    }        assert_param(IS_OPAMP_TRIMMING(hopamp->Init.UserTrimming));     if ((hopamp->Init.UserTrimming) == OPAMP_TRIMMING_USER)    {      if (hopamp->Init.PowerMode == OPAMP_POWERMODE_NORMAL)      {        assert_param(IS_OPAMP_TRIMMINGVALUE(hopamp->Init.TrimmingValueP));        assert_param(IS_OPAMP_TRIMMINGVALUE(hopamp->Init.TrimmingValueN));      }    else      {        assert_param(IS_OPAMP_TRIMMINGVALUE(hopamp->Init.TrimmingValuePLowPower));        assert_param(IS_OPAMP_TRIMMINGVALUE(hopamp->Init.TrimmingValueNLowPower));      }    }         if(hopamp->State == HAL_OPAMP_STATE_RESET)    {      /* Allocate lock resource and initialize it */      hopamp->Lock = HAL_UNLOCKED;    }    /* Call MSP init function */    HAL_OPAMP_MspInit(hopamp);    /* Set operating mode */    CLEAR_BIT(hopamp->Instance->CSR, OPAMP_CSR_CALON);                                                  if (hopamp->Init.Mode == OPAMP_PGA_MODE)    {      MODIFY_REG(hopamp->Instance->CSR, OPAMP_CSR_INIT_MASK_PGA, /                                        hopamp->Init.PowerMode | /                                        hopamp->Init.Mode | /                                        hopamp->Init.PgaGain | /                                        hopamp->Init.InvertingInput    | /                                        hopamp->Init.NonInvertingInput | /                                        hopamp->Init.UserTrimming);    }        if (hopamp->Init.Mode == OPAMP_FOLLOWER_MODE)    {    /* In Follower mode InvertingInput is Not Applicable  */    MODIFY_REG(hopamp->Instance->CSR, OPAMP_CSR_INIT_MASK_FOLLOWER, /                                        hopamp->Init.PowerMode | /                                        hopamp->Init.Mode | /                                        hopamp->Init.NonInvertingInput | /                                        hopamp->Init.UserTrimming);         }             if (hopamp->Init.Mode == OPAMP_STANDALONE_MODE)    {      MODIFY_REG(hopamp->Instance->CSR, OPAMP_CSR_INIT_MASK_STANDALONE, /                                        hopamp->Init.PowerMode | /                                        hopamp->Init.Mode | /                                        hopamp->Init.InvertingInput    | ///.........这里部分代码省略.........
开发者ID:CWBudde,项目名称:Espruino,代码行数:101,


示例7: HAL_FIREWALL_EnableFirewall

/**  * @brief Enable FIREWALL.   * @note Firewall is enabled in clearing FWDIS bit of SYSCFG CFGR1 register.  *       Once enabled, the Firewall cannot be disabled by software. Only a   *       system reset can set again FWDIS bit.             * @retval None  */void HAL_FIREWALL_EnableFirewall(void){  /* Clears FWDIS bit of SYSCFG CFGR1 register */  CLEAR_BIT(SYSCFG->CFGR2, SYSCFG_CFGR2_FWDISEN);  }
开发者ID:MOSAIC-LoPoW,项目名称:dash7-ap-open-source-stack,代码行数:13,


示例8: clock

void SSE::remove(docid_t docName, double& duration){//	docName = "/Users/naveed/BStore/datasets/testdir/" + docName + ".";	double diskTime = 0;	clock_t startTime = clock();	uint64_t docHash = getDocNameHash(boost::lexical_cast<string>(docName));	uint64_t docID0 = docHash;	CLEAR_BIT(docID0, 0);	uint64_t docID1 = docHash;	SET_BIT(docID1, 0);	duration += (double)(clock()-startTime)/(double)CLOCKS_PER_SEC;	OnlineSession session;	session.resetDiskAccessTime();	clock_t ignoredStartTime = clock();	if(fstore.isFilePresent(boost::lexical_cast<string>(docID0))){		fstore.remove(boost::lexical_cast<string>(docID0));//		duration -= (double)(clock()-ignoredStartTime)/(double)CLOCKS_PER_SEC;		/* Entries from Index will be delete using lazy delete*/	}	else if (fstore.isFilePresent(boost::lexical_cast<string>(docID1))){//	else if (fstore.isFilePresent(boost::lexical_cast<string>(docID))){		byte* doc;		double SKETime = 0;//		size_t size = fstore.get("/Users/naveed/BStore/datasets/test4MB/allen-p/straw/8.", doc, SKETime);		size_t size = fstore.get(boost::lexical_cast<string>(docID1), doc, SKETime);		cout << "SKE took " << SKETime << " seconds." << endl;		unordered_set<string, stringhash> keywords;		getKeywords(doc, size, keywords);		duration -= (double)(clock()-ignoredStartTime)/(double)CLOCKS_PER_SEC;				for(unordered_set<string, stringhash>::iterator it = keywords.begin(); it != keywords.end(); ++it){			string keyword = boost::lexical_cast<string>(1) + *it;			OnlineSession session;			byte* docIDs = NULL;			size_t size = session.updateRead(keyword, docIDs, -sizeof(docid_t), diskTime);//			cout << "Updating keyword " << keyword << endl;//			cout << "Number of files containing keyword /"" << keyword << "/" are " << size << endl << " " << size - sizeof(docid_t) << endl;//			uint32_t docIDtoRemove = findDocID(docIDs, size, docID1);			uint32_t docIDtoRemove = findDocID(docIDs, size, docName);			if(docIDtoRemove == -1){				std::cerr << "File present in filestore but is not present in BStore." << endl;				std::cerr << "This is probably due to the files stored from previoius runs. Try again after deleting files from previous runs." << endl;				exit(1);			}			deleteDocID(docIDs, size, docIDtoRemove);//			cout << "DocID to remove " << docIDtoRemove << endl;			session.updateWrite(keyword, docIDs, size, diskTime);			delete[] docIDs;			docIDs = NULL;		}			delete[] doc;		duration += (double)(clock()-startTime)/(double)CLOCKS_PER_SEC - diskTime;		cout << "Disk operations took " << session.getDiskAccessTime() << " seconds." << endl;		fstore.remove(boost::lexical_cast<string>(docID1));	}	else{		cout << "File not found!" << endl;	}	// TODO: delete docNameHash(document) from DocumentStore}
开发者ID:baddymaster,项目名称:se,代码行数:66,


示例9: LL_DMA_DeInit

/**  * @brief  De-initialize the DMA registers to their default reset values.  * @param  DMAx DMAx Instance  * @param  Channel This parameter can be one of the following values:  *         @arg @ref LL_DMA_CHANNEL_1  *         @arg @ref LL_DMA_CHANNEL_2  *         @arg @ref LL_DMA_CHANNEL_3  *         @arg @ref LL_DMA_CHANNEL_4  *         @arg @ref LL_DMA_CHANNEL_5  *         @arg @ref LL_DMA_CHANNEL_6  *         @arg @ref LL_DMA_CHANNEL_7  *         @arg @ref LL_DMA_CHANNEL_ALL  * @retval An ErrorStatus enumeration value:  *          - SUCCESS: DMA registers are de-initialized  *          - ERROR: DMA registers are not de-initialized  */uint32_t LL_DMA_DeInit(DMA_TypeDef *DMAx, uint32_t Channel){  DMA_Channel_TypeDef *tmp = (DMA_Channel_TypeDef *)DMA1_Channel1;  ErrorStatus status = SUCCESS;  /* Check the DMA Instance DMAx and Channel parameters*/  assert_param(IS_LL_DMA_ALL_CHANNEL_INSTANCE(DMAx, Channel) || (Channel == LL_DMA_CHANNEL_ALL));  if (Channel == LL_DMA_CHANNEL_ALL)  {    if (DMAx == DMA1)    {      /* Force reset of DMA clock */      LL_AHB1_GRP1_ForceReset(LL_AHB1_GRP1_PERIPH_DMA1);      /* Release reset of DMA clock */      LL_AHB1_GRP1_ReleaseReset(LL_AHB1_GRP1_PERIPH_DMA1);    }#if defined(DMA2)    else if (DMAx == DMA2)    {      /* Force reset of DMA clock */      LL_AHB1_GRP1_ForceReset(LL_AHB1_GRP1_PERIPH_DMA2);      /* Release reset of DMA clock */      LL_AHB1_GRP1_ReleaseReset(LL_AHB1_GRP1_PERIPH_DMA2);    }#endif    else    {      status = ERROR;    }  }  else  {    tmp = (DMA_Channel_TypeDef *)(__LL_DMA_GET_CHANNEL_INSTANCE(DMAx, Channel));    /* Disable the selected DMAx_Channely */    CLEAR_BIT(tmp->CCR, DMA_CCR_EN);    /* Reset DMAx_Channely control register */    LL_DMA_WriteReg(tmp, CCR, 0U);    /* Reset DMAx_Channely remaining bytes register */    LL_DMA_WriteReg(tmp, CNDTR, 0U);    /* Reset DMAx_Channely peripheral address register */    LL_DMA_WriteReg(tmp, CPAR, 0U);    /* Reset DMAx_Channely memory address register */    LL_DMA_WriteReg(tmp, CMAR, 0U);    /* Reset Request register field for DMAx Channel */    LL_DMA_SetPeriphRequest(DMAx, Channel, LL_DMA_REQUEST_0);    if (Channel == LL_DMA_CHANNEL_1)    {      /* Reset interrupt pending bits for DMAx Channel1 */      LL_DMA_ClearFlag_GI1(DMAx);    }    else if (Channel == LL_DMA_CHANNEL_2)    {      /* Reset interrupt pending bits for DMAx Channel2 */      LL_DMA_ClearFlag_GI2(DMAx);    }    else if (Channel == LL_DMA_CHANNEL_3)    {      /* Reset interrupt pending bits for DMAx Channel3 */      LL_DMA_ClearFlag_GI3(DMAx);    }    else if (Channel == LL_DMA_CHANNEL_4)    {      /* Reset interrupt pending bits for DMAx Channel4 */      LL_DMA_ClearFlag_GI4(DMAx);    }    else if (Channel == LL_DMA_CHANNEL_5)    {      /* Reset interrupt pending bits for DMAx Channel5 */      LL_DMA_ClearFlag_GI5(DMAx);    }    else if (Channel == LL_DMA_CHANNEL_6)    {      /* Reset interrupt pending bits for DMAx Channel6 *///.........这里部分代码省略.........
开发者ID:bigdinotech,项目名称:zephyr,代码行数:101,


示例10: register_event

/* Register an event handler and unmask the port */void register_event(evtchn_port_t port, evtchn_handler_t handler){	handlers[port] = handler;	CLEAR_BIT(shared_info.evtchn_mask, port);}
开发者ID:AnilVarmaBiruduraju,项目名称:xen-examples,代码行数:6,


示例11: HAL_RCC_DisableCSS

/**  * @brief  Disables the Clock Security System.  * @retval None  */void HAL_RCC_DisableCSS(void){  CLEAR_BIT(RCC->CR, RCC_CR_CSSON);}
开发者ID:El-Coder,项目名称:cantact-fw,代码行数:8,


示例12: HAL_SMARTCARD_Init

/**  * @brief  Initializes the SmartCard mode according to the specified  *         parameters in the SMARTCARD_HandleTypeDef and create the associated handle.  * @param  hsc: Pointer to a SMARTCARD_HandleTypeDef structure that contains  *              the configuration information for the specified SMARTCARD module.  * @retval HAL status  */HAL_StatusTypeDef HAL_SMARTCARD_Init(SMARTCARD_HandleTypeDef *hsc){  /* Check the SMARTCARD handle allocation */  if(hsc == NULL)  {    return HAL_ERROR;  }  /* Check Wordlength, Parity and Stop bits parameters */  if (  (!(IS_SMARTCARD_WORD_LENGTH(hsc->Init.WordLength)))      ||(!(IS_SMARTCARD_STOPBITS(hsc->Init.StopBits)))      ||(!(IS_SMARTCARD_PARITY(hsc->Init.Parity)))  )  {    return HAL_ERROR;  }  /* Check the parameters */  assert_param(IS_SMARTCARD_INSTANCE(hsc->Instance));  assert_param(IS_SMARTCARD_NACK_STATE(hsc->Init.NACKState));  assert_param(IS_SMARTCARD_PRESCALER(hsc->Init.Prescaler));  if(hsc->State == HAL_SMARTCARD_STATE_RESET)  {      /* Allocate lock resource and initialize it */    hsc->Lock = HAL_UNLOCKED;        /* Init the low level hardware */    HAL_SMARTCARD_MspInit(hsc);  }    hsc->State = HAL_SMARTCARD_STATE_BUSY;  /* Disable the Peripheral */  __HAL_SMARTCARD_DISABLE(hsc);    /* Set the Prescaler */  MODIFY_REG(hsc->Instance->GTPR, USART_GTPR_PSC, hsc->Init.Prescaler);  /* Set the Guard Time */  MODIFY_REG(hsc->Instance->GTPR, USART_GTPR_GT, ((hsc->Init.GuardTime)<<8));  /* Set the Smartcard Communication parameters */  SMARTCARD_SetConfig(hsc);  /* In SmartCard mode, the following bits must be kept cleared:   - LINEN bit in the USART_CR2 register  - HDSEL and IREN bits in the USART_CR3 register.*/  CLEAR_BIT(hsc->Instance->CR2, USART_CR2_LINEN);  CLEAR_BIT(hsc->Instance->CR3, (USART_CR3_IREN | USART_CR3_HDSEL));  /* Enable the Peripharal */  __HAL_SMARTCARD_ENABLE(hsc);  /* Configure the Smartcard NACK state */  MODIFY_REG(hsc->Instance->CR3, USART_CR3_NACK, hsc->Init.NACKState);  /* Enable the SC mode by setting the SCEN bit in the CR3 register */  SET_BIT(hsc->Instance->CR3, USART_CR3_SCEN);  /* Initialize the SMARTCARD state*/  hsc->ErrorCode = HAL_SMARTCARD_ERROR_NONE;  hsc->State= HAL_SMARTCARD_STATE_READY;  return HAL_OK;}
开发者ID:KitSprout,项目名称:RedBeanSprout,代码行数:72,


示例13: HAL_FLASH_IRQHandler

//.........这里部分代码省略.........    if(pFlash.ProcedureOnGoing == FLASH_PROC_SECTERASE)    {      /*return the faulty sector*/      addresstmp = pFlash.Sector;      pFlash.Sector = 0xFFFFFFFF;    }    else if(pFlash.ProcedureOnGoing == FLASH_PROC_MASSERASE)    {      /*return the faulty bank*/      addresstmp = pFlash.Bank;    }    else    {      /*return the faulty address*/      addresstmp = pFlash.Address;    }        /*Save the Error code*/    FLASH_SetErrorCode();        /* FLASH error interrupt user callback */    HAL_FLASH_OperationErrorCallback(addresstmp);        /*Stop the procedure ongoing*/    pFlash.ProcedureOnGoing = FLASH_PROC_NONE;  }    /* Check FLASH End of Operation flag  */  if(__HAL_FLASH_GET_FLAG(FLASH_FLAG_EOP) != RESET)  {    /* Clear FLASH End of Operation pending bit */    __HAL_FLASH_CLEAR_FLAG(FLASH_FLAG_EOP);        if(pFlash.ProcedureOnGoing == FLASH_PROC_SECTERASE)    {      /*Nb of sector to erased can be decreased*/      pFlash.NbSectorsToErase--;            /* Check if there are still sectors to erase*/      if(pFlash.NbSectorsToErase != 0)      {        addresstmp = pFlash.Sector;        /*Indicate user which sector has been erased*/        HAL_FLASH_EndOfOperationCallback(addresstmp);                /*Increment sector number*/        pFlash.Sector++;        addresstmp = pFlash.Sector;        FLASH_Erase_Sector(addresstmp, pFlash.VoltageForErase);      }      else      {        /*No more sectors to Erase, user callback can be called.*/        /*Reset Sector and stop Erase sectors procedure*/        pFlash.Sector = addresstmp = 0xFFFFFFFF;        pFlash.ProcedureOnGoing = FLASH_PROC_NONE;                /* Flush the caches to be sure of the data consistency */        FLASH_FlushCaches() ;                        /* FLASH EOP interrupt user callback */        HAL_FLASH_EndOfOperationCallback(addresstmp);      }    }    else     {      if(pFlash.ProcedureOnGoing == FLASH_PROC_MASSERASE)       {        /* MassErase ended. Return the selected bank */        /* Flush the caches to be sure of the data consistency */        FLASH_FlushCaches() ;        /* FLASH EOP interrupt user callback */        HAL_FLASH_EndOfOperationCallback(pFlash.Bank);      }      else      {        /*Program ended. Return the selected address*/        /* FLASH EOP interrupt user callback */        HAL_FLASH_EndOfOperationCallback(pFlash.Address);      }      pFlash.ProcedureOnGoing = FLASH_PROC_NONE;    }  }    if(pFlash.ProcedureOnGoing == FLASH_PROC_NONE)  {    /* Operation is completed, disable the PG, SER, SNB and MER Bits */    CLEAR_BIT(FLASH->CR, (FLASH_CR_PG | FLASH_CR_SER | FLASH_CR_SNB | FLASH_MER_BIT));    /* Disable End of FLASH Operation interrupt */    __HAL_FLASH_DISABLE_IT(FLASH_IT_EOP);        /* Disable Error source interrupt */    __HAL_FLASH_DISABLE_IT(FLASH_IT_ERR);        /* Process Unlocked */    __HAL_UNLOCK(&pFlash);  }}
开发者ID:PaxInstruments,项目名称:STM32CubeF2,代码行数:101,


示例14: HAL_PWREx_DisableSRAM2ContentRetention

/**  * @brief Disable SRAM2 content retention in Standby mode.  * @note  When RRS bit is reset, SRAM2 is powered off in Standby mode   *        and its content is lost.        * @retval None  */void HAL_PWREx_DisableSRAM2ContentRetention(void){  CLEAR_BIT(PWR->CR3, PWR_CR3_RRS);}
开发者ID:nosnav,项目名称:mastering-stm32,代码行数:10,


示例15: HAL_OPAMPEx_SelfCalibrateAll

//.........这里部分代码省略.........        MODIFY_REG(hopamp2->Instance->CSR, OPAMP_CSR_TRIMOFFSETP, trimmingvaluep2<<OPAMP_INPUT_NONINVERTING);                       /* OFFTRIMmax delay 2 ms as per datasheet (electrical characteristics */         /* Offset trim time: during calibration, minimum time needed between */        /* two steps to have 1 mV accuracy */        HAL_Delay(2U);        if (hopamp1->Instance->CSR & OPAMP_CSR_OUTCAL)         {           /* OPAMP_CSR_OUTCAL is HIGH try higher trimming */          trimmingvaluep1 += delta;        }        else        {          trimmingvaluep1 -= delta;        }                 if (hopamp2->Instance->CSR & OPAMP_CSR_OUTCAL)         {           /* OPAMP_CSR_OUTCAL is HIGH try higher trimming */          trimmingvaluep2 += delta;        }        else        {          trimmingvaluep2 -= delta;        }                              delta >>= 1U;      }            // Still need to check if righ calibration is current value or un step below      // Indeed the first value that causes the OUTCAL bit to change from 1 to 0       /* Set candidate trimming */      MODIFY_REG(hopamp1->Instance->CSR, OPAMP_CSR_TRIMOFFSETP, trimmingvaluep1<<OPAMP_INPUT_NONINVERTING);      MODIFY_REG(hopamp2->Instance->CSR, OPAMP_CSR_TRIMOFFSETP, trimmingvaluep2<<OPAMP_INPUT_NONINVERTING);       /* OFFTRIMmax delay 2 ms as per datasheet (electrical characteristics */        /* Offset trim time: during calibration, minimum time needed between */       /* two steps to have 1 mV accuracy */       HAL_Delay(2U);            if (hopamp1->Instance->CSR & OPAMP_CSR_OUTCAL)         {           /* OPAMP_CSR_OUTCAL is actually one value more */          trimmingvaluep1++;          /* Set right trimming */          MODIFY_REG(hopamp1->Instance->CSR, OPAMP_CSR_TRIMOFFSETP, trimmingvaluep1<<OPAMP_INPUT_NONINVERTING);        }          if (hopamp2->Instance->CSR & OPAMP_CSR_OUTCAL)         {           /* OPAMP_CSR_OUTCAL is actually one value more */          trimmingvaluep2++;          /* Set right trimming */          MODIFY_REG(hopamp2->Instance->CSR, OPAMP_CSR_TRIMOFFSETP, trimmingvaluep2<<OPAMP_INPUT_NONINVERTING);        }      /* Disable calibration */      CLEAR_BIT (hopamp1->Instance->CSR, OPAMP_CSR_CALON);      CLEAR_BIT (hopamp2->Instance->CSR, OPAMP_CSR_CALON);      /* Disable the OPAMPs */      CLEAR_BIT (hopamp1->Instance->CSR, OPAMP_CSR_OPAMPxEN);      CLEAR_BIT (hopamp2->Instance->CSR, OPAMP_CSR_OPAMPxEN);      /* Set operating mode back */      CLEAR_BIT(hopamp1->Instance->CSR, OPAMP_CSR_FORCEVP);      CLEAR_BIT(hopamp2->Instance->CSR, OPAMP_CSR_FORCEVP);            /* Self calibration is successful  */      /* Store calibration(user timming) results in init structure. */      /* Select user timming mode */      /* Write calibration result N */      hopamp1->Init.TrimmingValueN = trimmingvaluen1;      hopamp2->Init.TrimmingValueN = trimmingvaluen2;           /* Write calibration result P */      hopamp1->Init.TrimmingValueP = trimmingvaluep1;      hopamp2->Init.TrimmingValueP = trimmingvaluep2;                  /* Calibration */      hopamp1->Init.UserTrimming = OPAMP_TRIMMING_USER;      hopamp2->Init.UserTrimming = OPAMP_TRIMMING_USER;          /* Select user timming mode */            /* And updated with calibrated settings */      hopamp1->Init.UserTrimming = OPAMP_TRIMMING_USER;      hopamp2->Init.UserTrimming = OPAMP_TRIMMING_USER;            MODIFY_REG(hopamp1->Instance->CSR, OPAMP_CSR_TRIMOFFSETN, trimmingvaluen1<<OPAMP_INPUT_INVERTING);      MODIFY_REG(hopamp2->Instance->CSR, OPAMP_CSR_TRIMOFFSETN, trimmingvaluen2<<OPAMP_INPUT_INVERTING);           MODIFY_REG(hopamp1->Instance->CSR, OPAMP_CSR_TRIMOFFSETP, trimmingvaluep1<<OPAMP_INPUT_NONINVERTING);      MODIFY_REG(hopamp2->Instance->CSR, OPAMP_CSR_TRIMOFFSETP, trimmingvaluep2<<OPAMP_INPUT_NONINVERTING);                    }        else    {
开发者ID:Archcady,项目名称:mbed-os,代码行数:101,


示例16: HAL_PWREx_DisablePVM4

/**  * @brief Disable the Power Voltage Monitoring 4:  VDDA versus 2.2V.  * @retval None  */void HAL_PWREx_DisablePVM4(void){  CLEAR_BIT(PWR->CR2, PWR_PVM_4);    }
开发者ID:nosnav,项目名称:mastering-stm32,代码行数:8,


示例17: HAL_DAC_ConfigChannel

//.........这里部分代码省略.........      /* SHSR1 can be written when BWST1  equals RESET */      while (((hdac->Instance->SR) & DAC_SR_BWST1)!= RESET)      {        /* Check for the Timeout */        if((HAL_GetTick() - tickstart) > TIMEOUT_DAC_CALIBCONFIG)        {          /* Update error code */          SET_BIT(hdac->ErrorCode, HAL_DAC_ERROR_TIMEOUT);          /* Change the DMA state */          hdac->State = HAL_DAC_STATE_TIMEOUT;          return HAL_TIMEOUT;        }      }      HAL_Delay(1);      hdac->Instance->SHSR1 = sConfig->DAC_SampleAndHoldConfig.DAC_SampleTime;    }    else /* Channel 2 */    {      /* SHSR2 can be written when BWST2 equals RESET */      while (((hdac->Instance->SR) & DAC_SR_BWST2)!= RESET)      {        /* Check for the Timeout */        if((HAL_GetTick() - tickstart) > TIMEOUT_DAC_CALIBCONFIG)        {          /* Update error code */          SET_BIT(hdac->ErrorCode, HAL_DAC_ERROR_TIMEOUT);          /* Change the DMA state */          hdac->State = HAL_DAC_STATE_TIMEOUT;          return HAL_TIMEOUT;        }      }      HAL_Delay(1);      hdac->Instance->SHSR2 = sConfig->DAC_SampleAndHoldConfig.DAC_SampleTime;    }    /* HoldTime */    hdac->Instance->SHHR = (sConfig->DAC_SampleAndHoldConfig.DAC_HoldTime)<<Channel;    /* RefreshTime */    hdac->Instance->SHRR = (sConfig->DAC_SampleAndHoldConfig.DAC_RefreshTime)<<Channel;  }      if(sConfig->DAC_UserTrimming == DAC_TRIMMING_USER)  /* USER TRIMMING */  {  /* Get the DAC CCR value */  tmpreg1 = hdac->Instance->CCR;  /* Clear trimming value */  tmpreg1 &= ~(((uint32_t)(DAC_CCR_OTRIM1)) << Channel);  /* Configure for the selected trimming offset */  tmpreg2 = sConfig->DAC_TrimmingValue;  /* Calculate CCR register value depending on DAC_Channel */  tmpreg1 |= tmpreg2 << Channel;  /* Write to DAC CCR */  hdac->Instance->CCR = tmpreg1;  }  /* else factory trimming is used (factory setting are available at reset)*/  /* SW Nothing has nothing to do */    /* Get the DAC MCR value */  tmpreg1 = hdac->Instance->MCR;  /* Clear DAC_MCR_MODE2_0, DAC_MCR_MODE2_1 and DAC_MCR_MODE2_2 bits */  tmpreg1 &= ~(((uint32_t)(DAC_MCR_MODE1)) << Channel);   /* Configure for the selected DAC channel: mode, buffer output & on chip peripheral connect */  tmpreg2 = (sConfig->DAC_SampleAndHold | sConfig->DAC_OutputBuffer | sConfig->DAC_ConnectOnChipPeripheral);  /* Calculate MCR register value depending on DAC_Channel */  tmpreg1 |= tmpreg2 << Channel;  /* Write to DAC MCR */  hdac->Instance->MCR = tmpreg1;    /* DAC in normal operating mode hence clear DAC_CR_CENx bit */  CLEAR_BIT (hdac->Instance->CR, DAC_CR_CEN1 << Channel);    /* Get the DAC CR value */  tmpreg1 = hdac->Instance->CR;  /* Clear TENx, TSELx, WAVEx and MAMPx bits */  tmpreg1 &= ~(((uint32_t)(DAC_CR_MAMP1 | DAC_CR_WAVE1 | DAC_CR_TSEL1 | DAC_CR_TEN1)) << Channel);   /* Configure for the selected DAC channel: trigger */  /* Set TSELx and TENx bits according to DAC_Trigger value */  tmpreg2 = (sConfig->DAC_Trigger);  /* Calculate CR register value depending on DAC_Channel */  tmpreg1 |= tmpreg2 << Channel;  /* Write to DAC CR */  hdac->Instance->CR = tmpreg1;        /* Disable wave generation */  hdac->Instance->CR &= ~(DAC_CR_WAVE1 << Channel);    /* Change DAC state */  hdac->State = HAL_DAC_STATE_READY;    /* Process unlocked */  __HAL_UNLOCK(hdac);    /* Return function status */  return HAL_OK;}
开发者ID:Babody,项目名称:mbed,代码行数:101,


示例18: HAL_OPAMP_SelfCalibrate

HAL_StatusTypeDef HAL_OPAMP_SelfCalibrate(OPAMP_HandleTypeDef *hopamp){   HAL_StatusTypeDef status = HAL_OK;    uint32_t trimmingvaluen = 0;  uint32_t trimmingvaluep = 0;  uint32_t delta;  uint32_t opampmode;    __IO uint32_t* tmp_opamp_reg_trimming;   /* Selection of register of trimming depending on power mode: OTR or LPOTR */      /* Check the OPAMP handle allocation */  /* Check if OPAMP locked */  if((hopamp == NULL) || (hopamp->State == HAL_OPAMP_STATE_BUSYLOCKED))  {    status = HAL_ERROR;  }  else  {    /* Check if OPAMP in calibration mode and calibration not yet enable */    if(hopamp->State ==  HAL_OPAMP_STATE_READY)    {      /* Check the parameter */      assert_param(IS_OPAMP_ALL_INSTANCE(hopamp->Instance));      assert_param(IS_OPAMP_POWERMODE(hopamp->Init.PowerMode));      /* Save OPAMP mode as in                                       */      /* STM32L471xx STM32L475xx STM32L476xx STM32L485xx STM32L486xx */      /* the calibration is not working in PGA mode                  */      opampmode = READ_BIT(hopamp->Instance->CSR,OPAMP_CSR_OPAMODE);            /* Use of standalone mode */       MODIFY_REG(hopamp->Instance->CSR, OPAMP_CSR_OPAMODE, OPAMP_STANDALONE_MODE);       /*  user trimming values are used for offset calibration */      SET_BIT(hopamp->Instance->CSR, OPAMP_CSR_USERTRIM);            /* Select trimming settings depending on power mode */      if (hopamp->Init.PowerMode == OPAMP_POWERMODE_NORMAL)      {        tmp_opamp_reg_trimming = &hopamp->Instance->OTR;      }      else      {        tmp_opamp_reg_trimming = &hopamp->Instance->LPOTR;      }            /* Enable calibration */      SET_BIT (hopamp->Instance->CSR, OPAMP_CSR_CALON);        /* 1st calibration - N */      CLEAR_BIT (hopamp->Instance->CSR, OPAMP_CSR_CALSEL);            /* Enable the selected opamp */      SET_BIT (hopamp->Instance->CSR, OPAMP_CSR_OPAMPxEN);            /* Init trimming counter */          /* Medium value */      trimmingvaluen = 16;       delta = 8;                 while (delta != 0)      {        /* Set candidate trimming */        /* OPAMP_POWERMODE_NORMAL */        MODIFY_REG(*tmp_opamp_reg_trimming, OPAMP_OTR_TRIMOFFSETN, trimmingvaluen);                /* OFFTRIMmax delay 1 ms as per datasheet (electrical characteristics */         /* Offset trim time: during calibration, minimum time needed between */        /* two steps to have 1 mV accuracy */        HAL_Delay(OPAMP_TRIMMING_DELAY);        if (READ_BIT(hopamp->Instance->CSR, OPAMP_CSR_CALOUT) != RESET)        {           /* OPAMP_CSR_CALOUT is HIGH try higher trimming */          trimmingvaluen -= delta;        }        else        {          /* OPAMP_CSR_CALOUT is LOW try lower trimming */          trimmingvaluen += delta;        }        /* Divide range by 2 to continue dichotomy sweep */               delta >>= 1;      }      /* Still need to check if right calibration is current value or one step below */      /* Indeed the first value that causes the OUTCAL bit to change from 0 to 1  */      /* Set candidate trimming */      MODIFY_REG(*tmp_opamp_reg_trimming, OPAMP_OTR_TRIMOFFSETN, trimmingvaluen);                 /* OFFTRIMmax delay 1 ms as per datasheet (electrical characteristics */       /* Offset trim time: during calibration, minimum time needed between */      /* two steps to have 1 mV accuracy */      HAL_Delay(OPAMP_TRIMMING_DELAY);            if ((READ_BIT(hopamp->Instance->CSR, OPAMP_CSR_CALOUT)) == 0)      {         /* Trimming value is actually one value more *///.........这里部分代码省略.........
开发者ID:CWBudde,项目名称:Espruino,代码行数:101,


示例19: HAL_PWREx_DisableBatteryCharging

/**  * @brief Disable battery charging.    * @retval None  */void HAL_PWREx_DisableBatteryCharging(void){  CLEAR_BIT(PWR->CR4, PWR_CR4_VBE); }  
开发者ID:nosnav,项目名称:mastering-stm32,代码行数:8,


示例20: HAL_FIREWALL_DisablePreArmFlag

/**  * @brief Disable FIREWALL pre arm.  * @note When FPA bit is reset, any code executed outside the protected segment   *       when the Firewall is opened will generate a system reset.  * @note This API provides the same service as __HAL_FIREWALL_PREARM_DISABLE() macro  *       but can't be executed inside a code area protected by the Firewall.  * @note When the Firewall is disabled, user can resort to HAL_FIREWALL_EnablePreArmFlag() API any time.     * @note When the Firewall is enabled and NVDSL register is equal to 0 (that is,   *          when the non volatile data segment is not defined),  *          **  this API can be executed when the Firewall is closed  *          **  when the Firewall is opened, user should resort to   *              __HAL_FIREWALL_PREARM_DISABLE() macro instead  * @note When the Firewall is enabled and  NVDSL register is different from 0  *          (that is, when the non volatile data segment is defined)  *          **  FW_CR register can be accessed only when the Firewall is opened:   *              user should resort to  __HAL_FIREWALL_PREARM_DISABLE() macro instead.                           * @retval None  */void HAL_FIREWALL_DisablePreArmFlag(void){  /* Clear FPA bit */  CLEAR_BIT(FIREWALL->CR, FW_CR_FPA);}
开发者ID:MOSAIC-LoPoW,项目名称:dash7-ap-open-source-stack,代码行数:24,


示例21: HAL_PWREx_DisableVddUSB

/**  * @brief Disable VDDUSB supply.   * @retval None  */void HAL_PWREx_DisableVddUSB(void){  CLEAR_BIT(PWR->CR2, PWR_CR2_USV);}
开发者ID:nosnav,项目名称:mastering-stm32,代码行数:8,


示例22: CreateOverlaySurface

int CreateOverlaySurface(volatile STG4000REG * pSTGReg,			 u32 inWidth,			 u32 inHeight,			 int bLinear,			 u32 ulOverlayOffset,			 u32 * retStride, u32 * retUVStride){	u32 tmp;	u32 ulStride;	if (inWidth > STG4000_OVRL_MAX_WIDTH ||	    inHeight > STG4000_OVRL_MAX_HEIGHT) {		return -EINVAL;	}	/* Stride in 16 byte words - 16Bpp */	if (bLinear) {		/* Format is 16bits so num 16 byte words is width/8 */		if ((inWidth & 0x7) == 0) {	/* inWidth % 8 */			ulStride = (inWidth / 8);		} else {			/* Round up to next 16byte boundary */			ulStride = ((inWidth + 8) / 8);		}	} else {		/* Y component is 8bits so num 16 byte words is width/16 */		if ((inWidth & 0xf) == 0) {	/* inWidth % 16 */			ulStride = (inWidth / 16);		} else {			/* Round up to next 16byte boundary */			ulStride = ((inWidth + 16) / 16);		}	}	/* Set Overlay address and Format mode */	tmp = STG_READ_REG(DACOverlayAddr);	CLEAR_BITS_FRM_TO(0, 20);	if (bLinear) {		CLEAR_BIT(31);	/* Overlay format to Linear */	} else {		tmp |= SET_BIT(31);	/* Overlay format to Planer */	}	/* Only bits 24:4 of the Overlay address */	tmp |= (ulOverlayOffset >> 4);	STG_WRITE_REG(DACOverlayAddr, tmp);	if (!bLinear) {		u32 uvSize =		    (inWidth & 0x1) ? (inWidth + 1 / 2) : (inWidth / 2);		u32 uvStride;		u32 ulOffset;		/* Y component is 8bits so num 32 byte words is width/32 */		if ((uvSize & 0xf) == 0) {	/* inWidth % 16 */			uvStride = (uvSize / 16);		} else {			/* Round up to next 32byte boundary */			uvStride = ((uvSize + 16) / 16);		}		ulOffset = ulOverlayOffset + (inHeight * (ulStride * 16));		/* Align U,V data to 32byte boundary */		if ((ulOffset & 0x1f) != 0)			ulOffset = (ulOffset + 32L) & 0xffffffE0L;		tmp = STG_READ_REG(DACOverlayUAddr);		CLEAR_BITS_FRM_TO(0, 20);		tmp |= (ulOffset >> 4);		STG_WRITE_REG(DACOverlayUAddr, tmp);		ulOffset += (inHeight / 2) * (uvStride * 16);		/* Align U,V data to 32byte boundary */		if ((ulOffset & 0x1f) != 0)			ulOffset = (ulOffset + 32L) & 0xffffffE0L;		tmp = STG_READ_REG(DACOverlayVAddr);		CLEAR_BITS_FRM_TO(0, 20);		tmp |= (ulOffset >> 4);		STG_WRITE_REG(DACOverlayVAddr, tmp);		*retUVStride = uvStride * 16;	}
开发者ID:FelipeFernandes1988,项目名称:Alice-1121-Modem,代码行数:83,


示例23: HAL_PWREx_DisableVddIO2

/**  * @brief Disable VDDIO2 supply.   * @retval None  */void HAL_PWREx_DisableVddIO2(void){  CLEAR_BIT(PWR->CR2, PWR_CR2_IOSV);}
开发者ID:nosnav,项目名称:mastering-stm32,代码行数:8,


示例24: HAL_PWR_DisableSleepOnExit

/**  * @brief Disables Sleep-On-Exit feature when returning from Handler mode to Thread mode.   * @note Clears SLEEPONEXIT bit of SCR register. When this bit is set, the processor   *       re-enters SLEEP mode when an interruption handling is over.            * @retval None  */void HAL_PWR_DisableSleepOnExit(void){  /* Clear SLEEPONEXIT bit of Cortex System Control Register */  CLEAR_BIT(SCB->SCR, ((uint32_t)SCB_SCR_SLEEPONEXIT_Msk));}
开发者ID:HubertD,项目名称:feuchtwerk-fw,代码行数:11,


示例25: HAL_PWREx_DisableInternalWakeUpLine

/**  * @brief Disable Internal Wake-up Line.   * @retval None  */void HAL_PWREx_DisableInternalWakeUpLine(void){  CLEAR_BIT(PWR->CR3, PWR_CR3_EIWF);}
开发者ID:nosnav,项目名称:mastering-stm32,代码行数:8,


示例26: init_spi

void init_spi()/******************************************************************************   Function : See module specification (.h-file).*****************************************************************************/{	INT8U dummy;			// Pin setup	// Enable port A.	SYSCTL_RCGC2_R |= SYSCTL_RCGC2_GPIOA;	dummy = SYSCTL_RCGC2_R;		// HW control, Set pins in GPIO_PORTA_AFSEL_R	SET_BIT(GPIO_PORTA_AFSEL_R, SSI_CLK);	SET_BIT(GPIO_PORTA_AFSEL_R, SSI_SS);	SET_BIT(GPIO_PORTA_AFSEL_R, SSI_RX);	SET_BIT(GPIO_PORTA_AFSEL_R, SSI_TX);		// Configure PAD: 	2mA drive: set pins in GPIO_PORTA_DR2R_R	SET_BIT(GPIO_PORTA_DR2R_R, SSI_CLK);	SET_BIT(GPIO_PORTA_DR2R_R, SSI_SS);	SET_BIT(GPIO_PORTA_DR2R_R, SSI_RX);	SET_BIT(GPIO_PORTA_DR2R_R, SSI_TX);	//					Clear pins in GPIO_PORTA_ODR_R	CLEAR_BIT(GPIO_PORTA_ODR_R, SSI_CLK);	CLEAR_BIT(GPIO_PORTA_ODR_R, SSI_SS);	CLEAR_BIT(GPIO_PORTA_ODR_R, SSI_RX);	CLEAR_BIT(GPIO_PORTA_ODR_R, SSI_TX);	//					Clear pins in GPIO_PORTA_PUR_R	CLEAR_BIT(GPIO_PORTA_PUR_R, SSI_CLK);	CLEAR_BIT(GPIO_PORTA_PUR_R, SSI_SS);	CLEAR_BIT(GPIO_PORTA_PUR_R, SSI_RX);	CLEAR_BIT(GPIO_PORTA_PUR_R, SSI_TX);	//					Clear pins in GPIO_PORTA_PDR_R	CLEAR_BIT(GPIO_PORTA_PDR_R, SSI_CLK);	CLEAR_BIT(GPIO_PORTA_PDR_R, SSI_SS);	CLEAR_BIT(GPIO_PORTA_PDR_R, SSI_RX);	CLEAR_BIT(GPIO_PORTA_PDR_R, SSI_TX);	//					Set pins in GPIO_PORTA_DEN_R	SET_BIT(GPIO_PORTA_DEN_R, SSI_CLK);	SET_BIT(GPIO_PORTA_DEN_R, SSI_SS);	SET_BIT(GPIO_PORTA_DEN_R, SSI_RX);	SET_BIT(GPIO_PORTA_DEN_R, SSI_TX);		SET_BIT(GPIO_PORTA_DIR_R, SSI_CLK);	SET_BIT(GPIO_PORTA_DIR_R, SSI_SS);	SET_BIT(GPIO_PORTA_DIR_R, SSI_RX);	SET_BIT(GPIO_PORTA_DIR_R, SSI_TX);			// SSI setup		// SYSCTL_RCGC1_R 	== RCGC1	// SSI0_CR1_R 		== SSICR1	// SSI0_CPSR_R 		== SSICPSR	// SSI0_CR0_R		== SSICR0		// Enable SSI Clock	SYSCTL_RCGC1_R = SYSCTL_RCGC1_SSI0;		// 1 Disable SSI		// Clear SSI bit in SSICR1	spi_disable();		// 2 Select master or slave		// For master operations, set the SSICR1 register to 0x0000.0000	SSI0_CR1_R = 0x00000000;		// 3 Configure clock		// 50*10^6/(4*(1+12))		// SysClock * 10^6 / (CPSDVSR * (1 + SCR))		// (50 * (10^6)) / (4 * (1 + 9)) = 1 250 000 bit/sec					// SSICPSR = CPSDVSR = 0x4	SSI0_CPSR_R = 0x4;			// 4 Write to SSICR0:		// SCR: 	[15:8] SSI Serial Clock Rate		// SPH: 	[7] SSI Serial Clock Phase		// SPO:		[6]	SSI Serial Clock Polarity		// FRF:		[5:4] FrameFormat, 0x0 for Freescale		// DSS:		[3:0] Datasize		// SSI0_CR0_R = 0b00000000 0 0 00 0000	SSI0_CR0_R = 0b0000100111001000;				 //0b00000100 1 1 00 1111				// 5 Enable SSI			// Set SSI bit in SSICR1	spi_enable();}
开发者ID:lucasafonsobello,项目名称:LM3S6965-SPI,代码行数:93,


示例27: HAL_PWREx_DisablePullUpPullDownConfig

/**  * @brief Disable pull-up and pull-down configuration.  * @note  When APC bit is cleared, the I/O pull-up and pull-down configurations defined in   *        PWR_PUCRx and PWR_PDCRx registers are not applied in Standby and Shutdown modes.       * @retval None  */void HAL_PWREx_DisablePullUpPullDownConfig(void){  CLEAR_BIT(PWR->CR3, PWR_CR3_APC);}
开发者ID:nosnav,项目名称:mastering-stm32,代码行数:10,


示例28: HAL_ADCEx_MultiModeStart_DMA

/**  * @brief  Enables ADC DMA request after last transfer (Multi-ADC mode) and enables ADC peripheral  *   * @note   Caution: This function must be used only with the ADC master.    *  * @param  hadc: pointer to a ADC_HandleTypeDef structure that contains  *         the configuration information for the specified ADC.  * @param  pData:   Pointer to buffer in which transferred from ADC peripheral to memory will be stored.   * @param  Length:  The length of data to be transferred from ADC peripheral to memory.    * @retval HAL status  */HAL_StatusTypeDef HAL_ADCEx_MultiModeStart_DMA(ADC_HandleTypeDef* hadc, uint32_t* pData, uint32_t Length){  __IO uint32_t counter = 0;    /* Check the parameters */  assert_param(IS_FUNCTIONAL_STATE(hadc->Init.ContinuousConvMode));  assert_param(IS_ADC_EXT_TRIG_EDGE(hadc->Init.ExternalTrigConvEdge));  assert_param(IS_FUNCTIONAL_STATE(hadc->Init.DMAContinuousRequests));    /* Process locked */  __HAL_LOCK(hadc);    /* Check if ADC peripheral is disabled in order to enable it and wait during      Tstab time the ADC's stabilization */  if((hadc->Instance->CR2 & ADC_CR2_ADON) != ADC_CR2_ADON)  {      /* Enable the Peripheral */    __HAL_ADC_ENABLE(hadc);        /* Delay for temperature sensor stabilization time */    /* Compute number of CPU cycles to wait for */    counter = (ADC_STAB_DELAY_US * (SystemCoreClock / 1000000));    while(counter != 0)    {      counter--;    }  }    /* Start conversion if ADC is effectively enabled */  if(HAL_IS_BIT_SET(hadc->Instance->CR2, ADC_CR2_ADON))  {    /* Set ADC state                                                          */    /* - Clear state bitfield related to regular group conversion results     */    /* - Set state bitfield related to regular group operation                */    ADC_STATE_CLR_SET(hadc->State,                      HAL_ADC_STATE_READY | HAL_ADC_STATE_REG_EOC | HAL_ADC_STATE_REG_OVR,                      HAL_ADC_STATE_REG_BUSY);        /* If conversions on group regular are also triggering group injected,    */    /* update ADC state.                                                      */    if (READ_BIT(hadc->Instance->CR1, ADC_CR1_JAUTO) != RESET)    {      ADC_STATE_CLR_SET(hadc->State, HAL_ADC_STATE_INJ_EOC, HAL_ADC_STATE_INJ_BUSY);      }        /* State machine update: Check if an injected conversion is ongoing */    if (HAL_IS_BIT_SET(hadc->State, HAL_ADC_STATE_INJ_BUSY))    {      /* Reset ADC error code fields related to conversions on group regular */      CLEAR_BIT(hadc->ErrorCode, (HAL_ADC_ERROR_OVR | HAL_ADC_ERROR_DMA));             }    else    {      /* Reset ADC all error code fields */      ADC_CLEAR_ERRORCODE(hadc);    }        /* Process unlocked */    /* Unlock before starting ADC conversions: in case of potential           */    /* interruption, to let the process to ADC IRQ Handler.                   */    __HAL_UNLOCK(hadc);        /* Set the DMA transfer complete callback */    hadc->DMA_Handle->XferCpltCallback = ADC_MultiModeDMAConvCplt;        /* Set the DMA half transfer complete callback */    hadc->DMA_Handle->XferHalfCpltCallback = ADC_MultiModeDMAHalfConvCplt;        /* Set the DMA error callback */    hadc->DMA_Handle->XferErrorCallback = ADC_MultiModeDMAError ;        /* Manage ADC and DMA start: ADC overrun interruption, DMA start, ADC     */    /* start (in case of SW start):                                           */        /* Clear regular group conversion flag and overrun flag */    /* (To ensure of no unknown state from potential previous ADC operations) */    __HAL_ADC_CLEAR_FLAG(hadc, ADC_FLAG_EOC);    /* Enable ADC overrun interrupt */    __HAL_ADC_ENABLE_IT(hadc, ADC_IT_OVR);        if (hadc->Init.DMAContinuousRequests != DISABLE)    {      /* Enable the selected ADC DMA request after last transfer */      ADC->CCR |= ADC_CCR_DDS;    }    else    {      /* Disable the selected ADC EOC rising on each regular channel conversion *///.........这里部分代码省略.........
开发者ID:sunkaizhu,项目名称:zephyr,代码行数:101,


示例29: HAL_DisableDBGStopMode

/**  * @brief  Disable the Debug Module during STOP mode         * @param  None  * @retval None  */void HAL_DisableDBGStopMode(void){  CLEAR_BIT(DBGMCU->CR, DBGMCU_CR_DBG_STOP);}
开发者ID:glocklueng,项目名称:STM32-1,代码行数:9,



注:本文中的CLEAR_BIT函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


C++ CLEAR_CBUS_REG_MASK函数代码示例
C++ CLEARBIT函数代码示例
万事OK自学网:51自学网_软件自学网_CAD自学网自学excel、自学PS、自学CAD、自学C语言、自学css3实例,是一个通过网络自主学习工作技能的自学平台,网友喜欢的软件自学网站。