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

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

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

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

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

示例1: DMA1_Channel1_IRQHandler

void DMA1_Channel1_IRQHandler(void) {	uint8_t ii;	/* Test DMA1 TC flag */	if((DMA_GetFlagStatus(DMA1_FLAG_TC1)) != RESET ) 	{		/* Clear DMA TC flag */		DMA_ClearFlag(DMA1_FLAG_TC1);					if(Motor_State==INIT)		{			ADCTemp_Init(ADC_Tab);		}		else		{									//LED_ON();			if(FOC_Flag)			{				for(ii=0;ii<6;ii++)  TPWM_Cnt[ii+1]++;								PWM_Cnt++;								if(Limit_angle<(ANGLE_60D+ANGLE_60D/8))				{					SVM_Angle=SVM_Angle+Delta_angle;									Limit_angle+=Delta_angle;				} 					//  				SVM_Angle_Test=0;//  				IQ_Reference=0;// 				ID_Reference=1000;// 				Test_Hall=HALL_DATA();											SVPWM_2ShuntGetPhaseCurrentValues(&Curr_a_b);				Clarke(&Curr_alfa_beta,&Curr_a_b);				Park(&Curr_q_d,&Curr_alfa_beta,SVM_Angle); 	//				#ifdef OPEN_I												Volt_q_d.qV_Component1=VQ_Reference;	#else				Volt_q_d.qV_Component1=PID_Regulator(IQ_Reference,Curr_q_d.qI_Component1,&IQ_PID_t);				//				#endif				Volt_q_d.qV_Component2=PID_Regulator(ID_Reference,Curr_q_d.qI_Component2,&ID_PID_t);								RevPark_Circle_Limitation(&Volt_q_d);				Rev_Park(&Volt_alfa_beta,&Volt_q_d);				SVPWM_2ShuntCalcDutyCycles(&Volt_alfa_beta);											  							} else PWM_Cnt=1000;			//LED_OFF();			DAC_SetChannel1Data(DAC_Align_12b_R,SVM_Angle/16);			}							if(++T2ms_Temp>T2MSTEMP)			//2ms		{				T2ms_Temp=0;			T2ms_Flag=1;		}			if(++T100ms_Temp>T100MSTEMP)	//100ms 		{							T100ms_Temp=0;			T100ms_Flag=1;		}else{}	}}
开发者ID:Sailorwu,项目名称:HallFocF051Focv7,代码行数:65,


示例2: I2C_Master_BufferWrite

/*** @brief  Writes buffer of bytes.* @param pBuffer: Buffer of bytes to be sent to the slave.* @param NumByteToWrite: Number of bytes to be sent by the Master.* @param Mode: Polling or DMA or Interrupt having the highest priority in the application.* @param SlaveAddress: The address of the slave to be addressed by the Master.* @retval : None.*/Status I2C_Master_BufferWrite(uint8_t* pBuffer,  uint32_t NumByteToWrite, uint8_t SlaveAddress ){    __IO uint32_t temp = 0;  __IO uint32_t Timeout = 0;    /* Enable Error IT (used in all modes: DMA, Polling and Interrupts */  I2C1->CR2 |= I2C_IT_ERR;#if I2C_METHOD == DMA   /* I2C1 Master Transmission using DMA */  {    Timeout = 0xFFFF;    /* Configure the DMA channel for I2C1 transmission */    I2CDMA_Set (pBuffer,NumByteToWrite, I2C_DIRECTION_TX);    /* Enable the I2C1 DMA requests */    I2C1->CR2 |= CR2_DMAEN_Set;    /* Send START condition */    I2C1->CR1 |= CR1_START_Set;    /* Wait until SB flag is set: EV5 */    while ((I2C1->SR1&0x0001) != 0x0001)    {      if (Timeout-- == 0)        return Error;    }    Timeout = 0xFFFF;    /* Send slave address */    /* Reset the address bit0 for write */    SlaveAddress &= OAR1_ADD0_Reset;    Address = SlaveAddress;    /* Send the slave address */    I2C1->DR = Address;    /* Wait until ADDR is set: EV6 */    while ((I2C1->SR1&0x0002) != 0x0002)    {      if (Timeout-- == 0)        return Error;    }        /* Clear ADDR flag by reading SR2 register */    temp = I2C1->SR2;    while (!DMA_GetFlagStatus(DMA1_FLAG_TC6));    DMA_Cmd(DMA1_Channel6, DISABLE);    DMA_ClearFlag(DMA1_FLAG_TC6);                /* EV8_2: Wait until BTF is set before programming the STOP */    while ((I2C1->SR1 & 0x00004) != 0x000004);    /* Program the STOP */    I2C1->CR1 |= CR1_STOP_Set;    /* Make sure that the STOP bit is cleared by Hardware */    while ((I2C1->CR1&0x200) == 0x200);      }#endif    #if I2C_METHOD == POLLING /* I2C1 Master Transmission using Polling */  {        Timeout = 0xFFFF;    /* Send START condition */    I2C1->CR1 |= CR1_START_Set;    /* Wait until SB flag is set: EV5 */    while ((I2C1->SR1&0x0001) != 0x0001)    {      if (Timeout-- == 0)        return Error;    }        /* Send slave address */    /* Reset the address bit0 for write*/    SlaveAddress &= OAR1_ADD0_Reset;    Address = SlaveAddress;    /* Send the slave address */    I2C1->DR = Address;    Timeout = 0xFFFF;    /* Wait until ADDR is set: EV6 */    while ((I2C1->SR1 &0x0002) != 0x0002)    {      if (Timeout-- == 0)        return Error;    }        /* Clear ADDR flag by reading SR2 register */    temp = I2C1->SR2;    /* Write the first data in DR register (EV8_1) */    I2C1->DR = *pBuffer;    /* Increment */    pBuffer++;    /* Decrement the number of bytes to be written */    NumByteToWrite--;    /* While there is data to be written */    while (NumByteToWrite--)    {//.........这里部分代码省略.........
开发者ID:003900107,项目名称:wpa900-base,代码行数:101,


示例3: I2C_Master_BufferWrite

/** * @brief  Writes buffer of bytes. * @param pBuffer: Buffer of bytes to be sent to the slave. * @param NumByteToWrite: Number of bytes to be sent by the Master. * @param Mode: Polling or DMA or Interrupt having the highest priority in the application. * @param SlaveAddress: The address of the slave to be addressed by the Master. * @retval : None. */ErrorStatus I2C_Master_BufferWrite(I2C_TypeDef* I2Cx, uint8_t* pBuffer,    uint32_t NumByteToWrite, I2C_ProgrammingModel Mode, uint8_t SlaveAddress,    uint32_t timeoutMs){  __IO uint32_t temp = 0;  __IO uint32_t Timeout = 0;  /* Enable Error IT (used in all modes: DMA, Polling and Interrupts */  I2Cx->CR2 |= I2C_IT_ERR;  if (Mode == DMA) /* I2Cx Master Transmission using DMA */  {    Timeout = 0xFFFF;    /* Configure the DMA channel for I2Cx transmission */    I2C_DMAConfig(I2Cx, pBuffer, NumByteToWrite, I2C_DIRECTION_TX);    /* Enable the I2Cx DMA requests */    I2Cx->CR2 |= CR2_DMAEN_Set;    /* Send START condition */    I2Cx->CR1 |= CR1_START_Set;    /* Wait until SB flag is set: EV5 */    while ((I2Cx->SR1 & 0x0001) != 0x0001)    {      if (Timeout-- == 0)        return ERROR;    }    Timeout = 0xFFFF;    /* Send slave address */    /* Reset the address bit0 for write */    SlaveAddress &= OAR1_ADD0_Reset;    Address = SlaveAddress;    /* Send the slave address */    I2Cx->DR = Address;    /* Wait until ADDR is set: EV6 */    while ((I2Cx->SR1 & 0x0002) != 0x0002)    {      if (Timeout-- == 0)        return ERROR;    }    /* Clear ADDR flag by reading SR2 register */    temp = I2Cx->SR2;    if (I2Cx == I2C1)    {      /* Wait until DMA end of transfer *///            while (!DMA_GetFlagStatus(DMA1_FLAG_TC6));      xSemaphoreTake(i2cdevDmaEventI2c1, M2T(5));      /* Disable the DMA1 Channel 6 */      DMA_Cmd(I2C1_DMA_CHANNEL_TX, DISABLE);      /* Clear the DMA Transfer complete flag */      DMA_ClearFlag(DMA1_FLAG_TC6);    }    else /* I2Cx = I2C2 */    {      /* Wait until DMA end of transfer */      //while (!DMA_GetFlagStatus(DMA1_FLAG_TC4))      xSemaphoreTake(i2cdevDmaEventI2c2, M2T(5));      /* Disable the DMA1 Channel 4 */      DMA_Cmd(I2C2_DMA_CHANNEL_TX, DISABLE);      /* Clear the DMA Transfer complete flag */      DMA_ClearFlag(DMA1_FLAG_TC4);    }    /* EV8_2: Wait until BTF is set before programming the STOP */    while ((I2Cx->SR1 & 0x00004) != 0x000004)      ;    /* Program the STOP */    I2Cx->CR1 |= CR1_STOP_Set;    /* Make sure that the STOP bit is cleared by Hardware */    while ((I2Cx->CR1 & 0x200) == 0x200)      ;  }  /* I2Cx Master Transmission using Interrupt with highest priority in the application */  else  {    /* Enable EVT IT*/    I2Cx->CR2 |= I2C_IT_EVT;    /* Enable BUF IT */    I2Cx->CR2 |= I2C_IT_BUF;    /* Set the I2C direction to Transmission */    I2CDirection = I2C_DIRECTION_TX;    Buffer_Tx1 = pBuffer;    SlaveAddress &= OAR1_ADD0_Reset;    Address = SlaveAddress;    if (I2Cx == I2C1)      NumbOfBytes1 = NumByteToWrite;    else      NumbOfBytes2 = NumByteToWrite;    /* Send START condition */    I2Cx->CR1 |= CR1_START_Set;    Timeout = timeoutMs * I2CDEV_LOOPS_PER_MS;    /* Wait until the START condition is generated on the bus: the START bit is cleared by hardware */    while ((I2Cx->CR1 & 0x100) == 0x100 && Timeout)//.........这里部分代码省略.........
开发者ID:cross-sky,项目名称:4axis,代码行数:101,


示例4: COMInit

void COMInit(COM_TypeDef COM){	DMA_InitTypeDef DMA_InitStructure;	NVIC_InitTypeDef NVIC_InitStructure;	USART_InitTypeDef USART_InitStructure;	GPIO_InitTypeDef GPIO_InitStructure;	/* Enable GPIO clock */	RCC_AHB1PeriphClockCmd(COM_TX_PORT_CLK[COM] | COM_RX_PORT_CLK[COM] | RCC_AHB1Periph_GPIOD, ENABLE);	if (COM == USART_COM1)	{		/* Enable UART clock */		RCC_APB2PeriphClockCmd(COM_USART_CLK[COM], ENABLE);	}	/* Connect PXx to USARTx_Tx*/	GPIO_PinAFConfig(COM_TX_PORT[COM], COM_TX_PIN_SOURCE[COM], COM_TX_AF[COM]);	/* Connect PXx to USARTx_Rx*/	GPIO_PinAFConfig(COM_RX_PORT[COM], COM_RX_PIN_SOURCE[COM], COM_RX_AF[COM]);	/* Configure USART Tx as alternate function  */	GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;	GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;	GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF;	GPIO_InitStructure.GPIO_Pin = COM_TX_PIN[COM];	GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;	GPIO_Init(COM_TX_PORT[COM], &GPIO_InitStructure);	GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF;	GPIO_InitStructure.GPIO_Pin = COM_RX_PIN[COM];	GPIO_Init(COM_RX_PORT[COM], &GPIO_InitStructure);	/*USART Init code*/	USART_OverSampling8Cmd(COM_USART[COM], ENABLE);	USART_InitStructure.USART_BaudRate = 115200;	USART_InitStructure.USART_WordLength = USART_WordLength_8b;	USART_InitStructure.USART_StopBits = USART_StopBits_1;	USART_InitStructure.USART_Parity = USART_Parity_No;	USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None;	USART_InitStructure.USART_Mode = USART_Mode_Rx | USART_Mode_Tx;	USART_Init(COM_USART[COM], &USART_InitStructure);	/*USART Interrupt code*/	/*USART TX interrupt*/	NVIC_InitStructure.NVIC_IRQChannel = COM_DMA_TX_IRQn[COM];	NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = COM_TX_DMA_PREPRIO[COM];	NVIC_InitStructure.NVIC_IRQChannelSubPriority = COM_TX_DMA_SUBPRIO[COM];	NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;	NVIC_Init(&NVIC_InitStructure);	/*USART RX interrupt*/	NVIC_InitStructure.NVIC_IRQChannel = COM_DMA_RX_IRQn[COM];	NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = COM_RX_DMA_PREPRIO[COM];	NVIC_InitStructure.NVIC_IRQChannelSubPriority = COM_RX_DMA_SUBPRIO[COM];	NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;	NVIC_Init(&NVIC_InitStructure);	RCC_AHB1PeriphClockCmd(COM_DMA_CLK[COM], ENABLE);	/*USART TX clean up*/	DMA_ClearFlag(COM_TX_DMA_STREAM[COM], COM_TX_DMA_FLAG_FEIF[COM] | COM_TX_DMA_FLAG_DMEIF[COM] | COM_TX_DMA_FLAG_TEIF[COM] | COM_TX_DMA_FLAG_HTIF[COM] | COM_TX_DMA_FLAG_TCIF[COM]);	DMA_Cmd(COM_TX_DMA_STREAM[COM], DISABLE);	DMA_DeInit(COM_TX_DMA_STREAM[COM]);	/*USART RX Clean up*/	DMA_ClearFlag(COM_RX_DMA_STREAM[COM], COM_RX_DMA_FLAG_FEIF[COM] | COM_RX_DMA_FLAG_DMEIF[COM] | COM_RX_DMA_FLAG_TEIF[COM] | COM_RX_DMA_FLAG_HTIF[COM] | COM_RX_DMA_FLAG_TCIF[COM]);	DMA_Cmd(COM_RX_DMA_STREAM[COM], DISABLE);	DMA_DeInit(COM_RX_DMA_STREAM[COM]);	/*USART TX Config*/	DMA_InitStructure.DMA_Channel = COM_TX_DMA_CHANNEL[COM];	DMA_InitStructure.DMA_PeripheralBaseAddr = (uint32_t) COM_DR_ADDRESS[COM];	DMA_InitStructure.DMA_Memory0BaseAddr = COM_TX_BUFFER[COM]; /* This parameter will be configured durig communication */	DMA_InitStructure.DMA_DIR = DMA_DIR_MemoryToPeripheral; /* This parameter will be configured durig communication */	DMA_InitStructure.DMA_BufferSize = 0xFF; /* This parameter will be configured durig communication */	DMA_InitStructure.DMA_PeripheralInc = DMA_PeripheralInc_Disable;	DMA_InitStructure.DMA_MemoryInc = DMA_MemoryInc_Enable;	DMA_InitStructure.DMA_PeripheralDataSize = DMA_PeripheralDataSize_Byte;	DMA_InitStructure.DMA_MemoryDataSize = DMA_MemoryDataSize_Byte;	DMA_InitStructure.DMA_Mode = DMA_Mode_Normal;	DMA_InitStructure.DMA_Priority = DMA_Priority_High;	DMA_InitStructure.DMA_FIFOMode = DMA_FIFOMode_Enable;	DMA_InitStructure.DMA_FIFOThreshold = DMA_FIFOThreshold_Full;	DMA_InitStructure.DMA_MemoryBurst = DMA_MemoryBurst_Single;	DMA_InitStructure.DMA_PeripheralBurst = DMA_PeripheralBurst_Single;	DMA_Init(COM_TX_DMA_STREAM[COM], &DMA_InitStructure);	//DMA_ITConfig(COM_TX_DMA_STREAM[COM], DMA_IT_TC, ENABLE);	/*USART RX Config*/	DMA_InitStructure.DMA_Channel = COM_RX_DMA_CHANNEL[COM];	DMA_InitStructure.DMA_PeripheralBaseAddr = (uint32_t) COM_DR_ADDRESS[COM];	DMA_InitStructure.DMA_Memory0BaseAddr = COM_RX_BUFFER[COM]; /* This parameter will be configured durig communication *///.........这里部分代码省略.........
开发者ID:imawolfking,项目名称:narwhalroboticsquad,代码行数:101,


示例5: analogRead

/* * @brief Read the analog value of a pin. * Should return a 16-bit value, 0-65536 (0 = LOW, 65536 = HIGH) * Note: ADC is 12-bit. Currently it returns 0-4096 */int32_t analogRead(uint16_t pin){	// Allow people to use 0-7 to define analog pins by checking to see if the values are too low.	if (pin < FIRST_ANALOG_PIN)	{		pin = pin + FIRST_ANALOG_PIN;	}	// SPI safety check	if (SPI.isEnabled() == true && (pin == SCK || pin == MOSI || pin == MISO))	{		return LOW;	}	// I2C safety check	if (Wire.isEnabled() == true && (pin == SCL || pin == SDA))	{		return LOW;	}	// Serial1 safety check	if (Serial1.isEnabled() == true && (pin == RX || pin == TX))	{		return LOW;	}	if (pin >= TOTAL_PINS || PIN_MAP[pin].adc_channel == NONE )	{		return LOW;	}	int i = 0;	if (adcChannelConfigured != PIN_MAP[pin].adc_channel)	{		digitalPinModeSaved = PIN_MAP[pin].pin_mode;		pinMode(pin, AN_INPUT);	}	if (adcInitFirstTime == true)	{		ADC_DMA_Init();		adcInitFirstTime = false;	}	if (adcChannelConfigured != PIN_MAP[pin].adc_channel)	{		// ADC1 regular channel configuration		ADC_RegularChannelConfig(ADC1, PIN_MAP[pin].adc_channel, 1, ADC_Sample_Time);		// ADC2 regular channel configuration		ADC_RegularChannelConfig(ADC2, PIN_MAP[pin].adc_channel, 1, ADC_Sample_Time);		// Save the ADC configured channel		adcChannelConfigured = PIN_MAP[pin].adc_channel;	}	for(i = 0 ; i < ADC_DMA_BUFFERSIZE ; i++)	{		ADC_DualConvertedValues[i] = 0;	}	// Reset the number of data units in the DMA1 Channel1 transfer	DMA_SetCurrDataCounter(DMA1_Channel1, ADC_DMA_BUFFERSIZE);	// Enable ADC2 external trigger conversion	ADC_ExternalTrigConvCmd(ADC2, ENABLE);	// Enable DMA1 Channel1	DMA_Cmd(DMA1_Channel1, ENABLE);	// Enable ADC1 DMA	ADC_DMACmd(ADC1, ENABLE);	// Start ADC1 Software Conversion	ADC_SoftwareStartConvCmd(ADC1, ENABLE);	// Test on Channel 1 DMA1_FLAG_TC flag	while(!DMA_GetFlagStatus(DMA1_FLAG_TC1));	// Clear Channel 1 DMA1_FLAG_TC flag	DMA_ClearFlag(DMA1_FLAG_TC1);	// Disable ADC1 DMA	ADC_DMACmd(ADC1, DISABLE);	// Disable DMA1 Channel1	DMA_Cmd(DMA1_Channel1, DISABLE);	uint16_t ADC1_ConvertedValue = 0;	uint16_t ADC2_ConvertedValue = 0;	uint32_t ADC_SummatedValue = 0;	uint16_t ADC_AveragedValue = 0;	for(int i = 0 ; i < ADC_DMA_BUFFERSIZE ; i++)	{		// Retrieve the ADC2 converted value and add to ADC_SummatedValue//.........这里部分代码省略.........
开发者ID:kevinkessler,项目名称:core-firmware,代码行数:101,


示例6: SPI_DMA_Transmit8

/* Envía y recibe datos de 8 bits (SPI-DMA) */uint8_t SPI_DMA_Transmit8(SPI_TypeDef* SPIx, const uint8_t* pTData, uint8_t* pRData, uint16_t pSize){	uint32_t Dummy = 0xFF;		/* Establece el tama
C++ DMA_Cmd函数代码示例
C++ DMA_CCR函数代码示例
万事OK自学网:51自学网_软件自学网_CAD自学网自学excel、自学PS、自学CAD、自学C语言、自学css3实例,是一个通过网络自主学习工作技能的自学平台,网友喜欢的软件自学网站。