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

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

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

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

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

示例1: can_init

void can_init(can_t* can_filters){  gpio_clock_init(GPIOA);  can_clock_init(CAN1);  GPIO_InitTypeDef GPIO_InitStructure =    {      .GPIO_Pin   = CAN_RX_PIN,      .GPIO_Speed = GPIO_Speed_50MHz,      .GPIO_Mode  = GPIO_Mode_IN_FLOATING,    };  GPIO_Init(GPIOA, &GPIO_InitStructure);  GPIO_InitStructure.GPIO_Pin = CAN_TX_PIN;  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;  GPIO_Init(GPIOA, &GPIO_InitStructure);  CAN_InitTypeDef CAN_InitStructure;  CAN_StructInit(&CAN_InitStructure);  CAN_InitStructure.CAN_Prescaler = 1;  CAN_InitStructure.CAN_Mode = CAN_Mode_Normal;  CAN_InitStructure.CAN_SJW = CAN_SJW_4tq;  CAN_InitStructure.CAN_BS1 = CAN_BS1_11tq;  CAN_InitStructure.CAN_BS2 = CAN_BS2_4tq;  CAN_InitStructure.CAN_ABOM = ENABLE;  CAN_InitStructure.CAN_RFLM = ENABLE;  CAN_Init(CAN1, &CAN_InitStructure);  CAN_ITConfig(CAN1, CAN_IT_FMP0, ENABLE);  CAN_ITConfig(CAN1, CAN_IT_FMP1, ENABLE);  NVIC_InitTypeDef NVIC_InitStructure =    {      .NVIC_IRQChannel = USB_LP_CAN1_RX0_IRQn,      .NVIC_IRQChannelPreemptionPriority = 7,      .NVIC_IRQChannelSubPriority = 0,      .NVIC_IRQChannelCmd = ENABLE,    };  NVIC_Init(&NVIC_InitStructure);  NVIC_InitStructure.NVIC_IRQChannel = CAN1_RX1_IRQn;  NVIC_Init(&NVIC_InitStructure);  for (int i = 0; i < can_filters->n_filters; i++)    CAN_FilterInit(can_filters->CAN_filterInit + i);  xCAN_receive_queue0 = xQueueCreate(10, sizeof(CanRxMsg));  xCAN_receive_queue1 = xQueueCreate(10, sizeof(CanRxMsg));}void USB_LP_CAN1_RX0_IRQHandler(){  CanRxMsg RxMessage;  portBASE_TYPE resch = pdFALSE;  CAN_Receive(CAN1, CAN_FIFO0,&RxMessage);  xQueueSendFromISR(xCAN_receive_queue0, &RxMessage, &resch);  portEND_SWITCHING_ISR(resch);}
开发者ID:RoseWheel,项目名称:RoseWheel,代码行数:60,


示例2: Can1_Init

void Can1_Init(void){    NVIC_InitTypeDef NVIC_InitStructure;      // 首先打开电源及时钟    RCC_APB1PeriphClockCmd(RCC_APB1Periph_CAN1, ENABLE);         NVIC_InitStructure.NVIC_IRQChannel = USB_LP_CAN1_RX0_IRQn;    NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 3;    NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0;    NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;    NVIC_Init(&NVIC_InitStructure);       NVIC_InitStructure.NVIC_IRQChannel = USB_HP_CAN1_TX_IRQn;    NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 3;    NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0;    NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;    NVIC_Init(&NVIC_InitStructure);    // 然后配置pin		Can_GPIO_Config();    CAN_config_init();    CAN_ITConfig(CAN1, CAN_IT_FMP0 | CAN_IT_FF0 | CAN_IT_FOV0, ENABLE);  // fifo0中断    CAN_ITConfig(CAN1, CAN_IT_FMP1 | CAN_IT_FF1 | CAN_IT_FOV1, ENABLE);  // fifo1中断    //CAN_ITConfig(CAN1, CAN_IT_TME, DISABLE);                // 发送中断}
开发者ID:EasternRise,项目名称:AGV,代码行数:25,


示例3: Can_Hw_DisableControllerInterrupts

EXPORT void Can_Hw_DisableControllerInterrupts(uint8 controller){	  imask_t state;	  Can_UnitType *canUnit;	  CAN_HW_t *canHw;	  canUnit = CAN_GET_PRIVATE_DATA(controller);	  VALIDATE_NO_RV( (canUnit->state!=CANIF_CS_UNINIT), 0x4, CAN_E_UNINIT );	  Irq_Save(state);	  if(canUnit->lock_cnt > 0 )	  {	    // Interrupts already disabled	    canUnit->lock_cnt++;	    Irq_Restore(state);	    return;	  }	  canUnit->lock_cnt++;	  Irq_Restore(state);	  /* Don't try to be intelligent, turn everything off */	  canHw = GetController(controller);	  /* Turn off the tx interrupt mailboxes */	   CAN_ITConfig(canHw, CAN_IT_TME, DISABLE);	   /* Turn off the bus off/tx warning/rx warning and error and rx  */	   CAN_ITConfig(canHw, CAN_IT_FMP0 | CAN_IT_BOF | CAN_IT_ERR | CAN_IT_WKU, DISABLE);}
开发者ID:SushMJ,项目名称:gainos-tk,代码行数:30,


示例4: hal_can_enable

extern hal_result_t hal_can_enable(hal_can_t id){	hal_result_t res;	//hal_can_internals_t *intitem = s_hal_can_internals[HAL_can_id2index(id)];    hal_can_internal_item_t* intitem = s_hal_can_theinternals.items[HAL_can_id2index(id)];    CAN_TypeDef* CANx = HAL_can_port2peripheral(id);    if(hal_false == s_hal_can_initted_is(id))    {        return(hal_res_NOK_generic);    }    if(NULL == intitem)    {        return(hal_res_NOK_generic);    }    //res = s_hal_can_hw_registers_init(id); // hardware setup        hl_can_enable((hl_can_t)id);    if(res != hal_res_OK)    {    	return(hal_res_NOK_generic);    }    // disable scheduling    hal_base_osal_scheduling_suspend();    intitem->enabled = 1;    // configure interrupts on rx (CAN_IT_FMP0 -> FIFO 0 message pending) and tx (CAN_IT_TME -> transmit mailbox empty)    // it is the same using only one call of CAN_ITConfig() or two ...    CAN_ITConfig(HAL_can_port2peripheral(id), (CAN_IT_FMP0 | CAN_IT_TME), ENABLE);    //CAN_ITConfig(HAL_can_port2peripheral(id), CAN_IT_FMP0, ENABLE);    //CAN_ITConfig(HAL_can_port2peripheral(id), CAN_IT_TME, ENABLE);    CAN_ITConfig( HAL_can_port2peripheral(id), CAN_IT_ERROR,  ENABLE); // VALE        // nvic     s_hal_can_isr_rx_enable(id);    // dont enable the nvic for the tx    //s_hal_can_tx_enable(id);    s_hal_can_isr_tx_disable(id);    intitem->txisrisenabled = 0;        s_hal_can_isr_err_enable(id);// VALE        // it is in can driver by K&%L. it was not in hal-1. it seems not be important. it does not make can2 work ..    CANx->MCR &= ~(1 << 0);             /* normal operating mode, reset INRQ   */    while (CANx->MSR & (1 << 0));    // enable scheduling     hal_base_osal_scheduling_restart();	return(hal_res_OK);}
开发者ID:Tarintote,项目名称:icub-firmware,代码行数:58,


示例5: Can_IT_Config

void Can_IT_Config(void){#if  USE_CAN1_R0	CAN_ITConfig(CAN1, CAN_IT_FMP0, ENABLE);#endif#if  USE_CAN1_R1	CAN_ITConfig(CAN1, CAN_IT_FMP1, ENABLE);#endif#if  USE_CAN2_R0	CAN_ITConfig(CAN2, CAN_IT_FMP0, ENABLE);#endif#if  USE_CAN2_R1	CAN_ITConfig(CAN2, CAN_IT_FMP1, ENABLE);#endif}
开发者ID:yangjian940712,项目名称:robot,代码行数:15,


示例6: can1_init

/* *************************************************************** * 名称: can1_init  * 功能: can1初始化 * 输入: 1.baud_num * 输出: NULL  * 返回: NULL  * 描述: 无  *************************************************************** */  void can1_init(u32 baud_num){	CAN_InitTypeDef CAN_InitStructure;		/* CAN register init */	CAN_NVIC_Configuration();	CAN_GPIO_Configuration();	CAN_Address_GPIO_Config();	CAN_StructInit(&CAN_InitStructure);	/* CAN cell init */	CAN_InitStructure.CAN_TTCM = DISABLE;	// 非时间触发通信模式 	CAN_InitStructure.CAN_ABOM = DISABLE;	// 软件自动离线管理		CAN_InitStructure.CAN_AWUM = DISABLE;	// 睡眠模式通过软件唤醒(清除CAN->MCR的SLEEP位)	CAN_InitStructure.CAN_NART = DISABLE;	// 禁止报文自动传送  	CAN_InitStructure.CAN_RFLM = DISABLE;	// 报文不锁定,新的覆盖旧的 	CAN_InitStructure.CAN_TXFP = ENABLE;	// 优先级由报文标识符决定	CAN_InitStructure.CAN_Mode = CAN_Mode_Normal;	CAN_InitStructure.CAN_SJW = BaudTable[baud_num].SJW;	CAN_InitStructure.CAN_BS1 = BaudTable[baud_num].BS1;	CAN_InitStructure.CAN_BS2 = BaudTable[baud_num].BS2;	CAN_InitStructure.CAN_Prescaler = BaudTable[baud_num].PreScale;	CAN_Init(CAN1, &CAN_InitStructure);		//设置CAN接收过滤器 	CAN_ConfigFilter(0, 0x7ff);	// 广播地址,接受广播命令	CAN_ConfigFilter(1, Read_CAN_Address()&0x7f);	// 本节点真实地址	//使能接收中断	CAN_ITConfig(CAN1, CAN_IT_FMP0, ENABLE);}
开发者ID:liuchaonuaa,项目名称:myucos,代码行数:43,


示例7: PIOS_CAN_TxGeneric

/** * @brief  This function handles CAN1 TX irq and sends more data if available */static void PIOS_CAN_TxGeneric(void){	CAN_ClearITPendingBit(can_dev->cfg->regs, CAN_IT_TME);	bool valid = PIOS_CAN_validate(can_dev);	PIOS_Assert(valid);	bool tx_need_yield = false;		if (can_dev->tx_out_cb) {		// Prepare CAN message structure		CanTxMsg msg;		msg.StdId = CAN_COM_ID;		msg.ExtId = 0;		msg.IDE = CAN_ID_STD;		msg.RTR = CAN_RTR_DATA;		msg.DLC = (can_dev->tx_out_cb)(can_dev->tx_out_context, msg.Data, MAX_SEND_LEN, NULL, &tx_need_yield);		// Send message and get mailbox number		if (msg.DLC > 0) {			CAN_Transmit(can_dev->cfg->regs, &msg);		} else {			CAN_ITConfig(can_dev->cfg->regs, CAN_IT_TME, DISABLE);		}		// TODO: deal with failure to send and keep the message to retransmit	}	#if defined(PIOS_INCLUDE_FREERTOS)	portEND_SWITCHING_ISR(tx_need_yield ? pdTRUE : pdFALSE);#endif /* defined(PIOS_INCLUDE_FREERTOS) */}
开发者ID:EvalZero,项目名称:TauLabs,代码行数:36,


示例8: RecvFrame

int RecvFrame(u8 type,u8 *pRecvFrame){	u8 os_err;	int iLength=0;//系统时间 有问题		while(1){				switch(type){		case OBD_TYPE_ISO:			iLength=Normal_RecvFrame(pRecvFrame,50);			break;		case OBD_TYPE_KWP:			iLength=KWP_RecvFrame(pRecvFrame);			break;		case OBD_TYPE_VPW:			iLength=VPW_RecvFrame(pRecvFrame);			break;		case OBD_TYPE_PWM:			iLength=PWM_RecvFrame(pRecvFrame);			break;		case OBD_TYPE_CAN1:		case OBD_TYPE_CAN2:			CAN_ITConfig(CAN1,CAN_IT_FMP0 | CAN_IT_FOV0, ENABLE);			OSSemPend(sem_obd_prot, 1*OS_TICKS_PER_SEC, &os_err);//timeout: 1 seconds			if(os_err)break;			iLength=CAN_RecvFrame(pRecvFrame);			break;		}		if(iLength==0)continue;		else break;	}	my_icar.event = 0;	return iLength;}
开发者ID:bg8wj,项目名称:icar-firmware,代码行数:34,


示例9: CAN_device_init_1

static void CAN_device_init_1(int baud){    CAN_DeInit(CAN1);    /* CAN GPIOs configuration ************************************************* */    /* Enable GPIO clock */    RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOB, ENABLE);    /* Connect CAN pins to Alternate Function */    GPIO_PinAFConfig(GPIOB, GPIO_PinSource8, GPIO_AF_9);    GPIO_PinAFConfig(GPIOB, GPIO_PinSource9, GPIO_AF_9);    initGPIO(GPIOB, GPIO_Pin_8 | GPIO_Pin_9);    /* CAN configuration ******************************************************* */    /* Enable CAN clock */    RCC_APB1PeriphClockCmd(RCC_APB1Periph_CAN1, ENABLE);    initCAN(CAN1, baud);    //set default filter    CAN_device_set_filter(0, 0, 0, 0, 0);    /* Enable FIFO 0 message pending Interrupt */    CAN_ITConfig(CAN1, CAN_IT_FMP0, ENABLE);    initCANInterrupts(CAN1, USB_LP_CAN1_RX0_IRQn);}
开发者ID:psallandre,项目名称:RaceCapture-Pro_firmware,代码行数:27,


示例10: CAN2_TX_IRQHandler

void 			CAN2_TX_IRQHandler(void){CanTxMsg	tx;					if(_buffer_pull(__can->tx,&tx,sizeof(CanTxMsg)))						CAN_Transmit(CAN2,&tx);					else						CAN_ITConfig(CAN2, CAN_IT_TME, DISABLE);						}
开发者ID:yallawalla,项目名称:stm32,代码行数:8,


示例11: CAN_Config

void CAN_Config(void) {    CAN_InitTypeDef CAN_InitStruct;    CAN_FilterInitTypeDef CAN_FilterInitStruct;    NVIC_InitTypeDef NVIC_InitStruct;    GPIO_InitTypeDef GPIO_InitStruct;    RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOB, ENABLE);    GPIO_PinAFConfig(GPIOB, GPIO_PinSource8, GPIO_AF_9);    GPIO_PinAFConfig(GPIOB, GPIO_PinSource9, GPIO_AF_9);    GPIO_StructInit(&GPIO_InitStruct);    GPIO_InitStruct.GPIO_Pin = GPIO_Pin_8 | GPIO_Pin_9;    GPIO_InitStruct.GPIO_Mode = GPIO_Mode_AF;    GPIO_InitStruct.GPIO_OType = GPIO_OType_PP;    GPIO_InitStruct.GPIO_PuPd = GPIO_PuPd_UP;    GPIO_InitStruct.GPIO_Speed = GPIO_Speed_50MHz;    GPIO_Init(GPIOB, &GPIO_InitStruct);    // can peripherial    RCC_APB1PeriphClockCmd(RCC_APB1Periph_CAN1, ENABLE);    CAN_StructInit(&CAN_InitStruct);    CAN_InitStruct.CAN_ABOM = DISABLE;    CAN_InitStruct.CAN_AWUM = DISABLE;    CAN_InitStruct.CAN_NART = DISABLE;    CAN_InitStruct.CAN_RFLM = DISABLE;    CAN_InitStruct.CAN_TTCM = DISABLE;    CAN_InitStruct.CAN_TXFP = DISABLE;    CAN_InitStruct.CAN_Prescaler = 18; // 125000 Baud rate assuimg CAN speed 36MHz    CAN_InitStruct.CAN_SJW = CAN_SJW_1tq;    CAN_InitStruct.CAN_BS1 = CAN_BS1_13tq;    CAN_InitStruct.CAN_BS2 = CAN_BS2_2tq;    CAN_InitStruct.CAN_Mode = CAN_Mode_Normal;    CAN_Init(CAN1, &CAN_InitStruct);    // can filter    CAN_FilterInitStruct.CAN_FilterNumber = 0;    CAN_FilterInitStruct.CAN_FilterMode = CAN_FilterMode_IdMask;    CAN_FilterInitStruct.CAN_FilterScale = CAN_FilterScale_32bit;    CAN_FilterInitStruct.CAN_FilterActivation = ENABLE;    CAN_FilterInitStruct.CAN_FilterFIFOAssignment = CAN_FIFO0;    CAN_FilterInitStruct.CAN_FilterIdHigh = 0;    CAN_FilterInitStruct.CAN_FilterIdLow = 0;    CAN_FilterInitStruct.CAN_FilterMaskIdHigh = 0;    CAN_FilterInitStruct.CAN_FilterMaskIdLow = 0;    CAN_FilterInit(&CAN_FilterInitStruct);    // can interrupt    CAN_ITConfig(CAN1, CAN_IT_FMP0, ENABLE);    NVIC_InitStruct.NVIC_IRQChannel = USB_LP_CAN1_RX0_IRQn;    NVIC_InitStruct.NVIC_IRQChannelCmd = ENABLE;    NVIC_InitStruct.NVIC_IRQChannelPreemptionPriority = 0;    NVIC_InitStruct.NVIC_IRQChannelSubPriority = 0;    NVIC_Init(&NVIC_InitStruct);}
开发者ID:kitaev,项目名称:can,代码行数:58,


示例12: RCC_AHB1PeriphClockCmd

void DST_CAN_1::CAN_Configuration_Init(void){	GPIO_InitTypeDef				GPIO_InitStructure;		CAN_InitTypeDef			 		CAN_InitStructure; 	CAN_FilterInitTypeDef 	CAN_FilterInitStructure;	NVIC_InitTypeDef 				NVIC_InitStructure; //使能相关时钟	RCC_AHB1PeriphClockCmd(RCC_CAN_1, ENABLE);//使能PORTA时钟	                   											 	RCC_APB1PeriphClockCmd(RCC_APB1Periph_CAN1, ENABLE);//使能CAN1时钟		//初始化GPIO	GPIO_InitStructure.GPIO_Pin = CAN_1_TX | CAN_1_RX;	GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF;//复用功能	GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;//推挽输出	GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;//100MHz	GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;//上拉	GPIO_Init(GPIO_CAN_1, &GPIO_InitStructure);//初始化CAN_1_TX,CAN_1_RX	//引脚复用映射配置	GPIO_PinAFConfig(GPIOD,GPIO_PinSource1,GPIO_AF_CAN1); //GPIOD1复用为CAN1_TX	GPIO_PinAFConfig(GPIOD,GPIO_PinSource0,GPIO_AF_CAN1); //GPIOD0复用为CAN1_RX	//CAN单元设置	CAN_InitStructure.CAN_TTCM=DISABLE;	//非时间触发通信模式   	CAN_InitStructure.CAN_ABOM=DISABLE;	//软件自动离线管理	  	CAN_InitStructure.CAN_AWUM=DISABLE;//睡眠模式通过软件唤醒(清除CAN->MCR的SLEEP位)	CAN_InitStructure.CAN_NART=ENABLE;	//禁止报文自动传送 	CAN_InitStructure.CAN_RFLM=DISABLE;	//报文不锁定,新的覆盖旧的  	CAN_InitStructure.CAN_TXFP=DISABLE;	//优先级由报文标识符决定 	CAN_InitStructure.CAN_Mode= CAN_Mode_Normal;	 //模式设置 	CAN_InitStructure.CAN_SJW=CAN_SJW_1tq;	//重新同步跳跃宽度(Tsjw)为tsjw+1个时间单位 CAN_SJW_1tq~CAN_SJW_4tq	CAN_InitStructure.CAN_BS1=CAN_BS1_9tq; //Tbs1范围CAN_BS1_1tq ~CAN_BS1_16tq	CAN_InitStructure.CAN_BS2=CAN_BS2_4tq;//Tbs2范围CAN_BS2_1tq ~	CAN_BS2_8tq	CAN_InitStructure.CAN_Prescaler=3;  //分频系数(Fdiv)为brp+1		CAN_Init(CAN1, &CAN_InitStructure);   // 初始化CAN1 		//配置过滤器	CAN_FilterInitStructure.CAN_FilterNumber=0;	  //过滤器0	CAN_FilterInitStructure.CAN_FilterMode=CAN_FilterMode_IdMask; 	CAN_FilterInitStructure.CAN_FilterScale=CAN_FilterScale_32bit; //32位 	CAN_FilterInitStructure.CAN_FilterIdHigh=0x0000;////32位ID	CAN_FilterInitStructure.CAN_FilterIdLow=0x0000;	CAN_FilterInitStructure.CAN_FilterMaskIdHigh=0x0000;//32位MASK	CAN_FilterInitStructure.CAN_FilterMaskIdLow=0x0000;	CAN_FilterInitStructure.CAN_FilterFIFOAssignment=CAN_Filter_FIFO0;//过滤器0关联到FIFO0	CAN_FilterInitStructure.CAN_FilterActivation=ENABLE; //激活过滤器0	CAN_FilterInit(&CAN_FilterInitStructure);//滤波器初始化		CAN_ITConfig(CAN1,CAN_IT_FMP0,ENABLE);//★FIFO0★消息挂号中断允许.		    	NVIC_InitStructure.NVIC_IRQChannel = CAN1_RX0_IRQn;	NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;     // 主优先级为1	NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0;            // 次优先级为0	NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;	NVIC_Init(&NVIC_InitStructure);}
开发者ID:wms124,项目名称:DST_RoboMaster,代码行数:58,


示例13: Can_Hw_EnableControllerInterrupts

EXPORT void Can_Hw_EnableControllerInterrupts( uint8 controller ){	 imask_t state;	  Can_UnitType *canUnit;	  CAN_HW_t *canHw;	  const Can_ControllerConfigType *canHwConfig;	  canUnit = CAN_GET_PRIVATE_DATA(controller);	  VALIDATE_NO_RV( (canUnit->state!=CANIF_CS_UNINIT), 0x5, CAN_E_UNINIT );	  Irq_Save(state);	  if( canUnit->lock_cnt > 1 )	  {	    // IRQ should still be disabled so just decrement counter	    canUnit->lock_cnt--;	    Irq_Restore(state);	    return;	  } else if (canUnit->lock_cnt == 1)	  {	    canUnit->lock_cnt = 0;	  }	  Irq_Restore(state);	  canHw = GetController(controller);	  canHwConfig = CAN_GET_CONTROLLER_CONFIG(Can_Global.channelMap[controller]);	   if( canHwConfig->CanRxProcessing == CAN_PROCESS_TYPE_INTERRUPT ) {	     /* Turn on the rx interrupt */	 	CAN_ITConfig(canHw, CAN_IT_FMP0, ENABLE);	   }	   if( canHwConfig->CanTxProcessing == CAN_PROCESS_TYPE_INTERRUPT ) {	 	/* Turn on the tx interrupt mailboxes */	   	CAN_ITConfig(canHw, CAN_IT_TME, ENABLE);	   }	   // BusOff here represents all errors and warnings	   if( canHwConfig->CanBusOffProcessing == CAN_PROCESS_TYPE_INTERRUPT ) {	 	/* Turn on the bus off/tx warning/rx warning and error and rx  */	 	CAN_ITConfig(canHw, CAN_IT_BOF | CAN_IT_ERR | CAN_IT_WKU, ENABLE);	   }	   return;}
开发者ID:SushMJ,项目名称:gainos-tk,代码行数:45,


示例14: PIOS_CAN_RxStart

static void PIOS_CAN_RxStart(uintptr_t can_id, uint16_t rx_bytes_avail){	struct pios_can_dev *can_dev = (struct pios_can_dev *)can_id;		bool valid = PIOS_CAN_validate(can_dev);	PIOS_Assert(valid);		CAN_ITConfig(can_dev->cfg->regs, CAN_IT_FMP1, ENABLE);}
开发者ID:EvalZero,项目名称:TauLabs,代码行数:9,


示例15: InitCAN

void InitCAN(void){	// Setup CAN Pins	RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOA, ENABLE);		GPIO_InitTypeDef  GPIO_InitStructure;	GPIO_InitStructure.GPIO_Pin = CAN_RX_PIN | CAN_TX_PIN;	GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF;	GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;	GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;	GPIO_InitStructure.GPIO_PuPd  = GPIO_PuPd_UP;	GPIO_Init(GPIOA, &GPIO_InitStructure);		// Alternate functions	GPIO_PinAFConfig(GPIOA, GPIO_PinSource11, GPIO_AF_CAN1);	GPIO_PinAFConfig(GPIOA, GPIO_PinSource12, GPIO_AF_CAN1);			// Setup CAN-modules	RCC_APB1PeriphClockCmd(RCC_APB1Periph_CAN1, ENABLE);	/* CAN register init */	CAN_DeInit(CAN1);	/* CAN cell init */	CAN_InitTypeDef CAN_InitStructure;	CAN_InitStructure.CAN_TTCM = DISABLE;	CAN_InitStructure.CAN_ABOM = DISABLE;	CAN_InitStructure.CAN_AWUM = DISABLE;	CAN_InitStructure.CAN_NART = DISABLE;	CAN_InitStructure.CAN_RFLM = DISABLE;	CAN_InitStructure.CAN_TXFP = DISABLE;	CAN_InitStructure.CAN_Mode = CAN_Mode_Normal;	CAN_InitStructure.CAN_SJW = CAN_SJW_3tq;	/* CAN Baudrate = 500 KBps (CAN clocked at 42 MHz) */	CAN_InitStructure.CAN_BS1 = CAN_BS1_4tq;	CAN_InitStructure.CAN_BS2 = CAN_BS2_2tq;	CAN_InitStructure.CAN_Prescaler = (42000000 / 7) / 500000;	CAN_Init(CAN1, &CAN_InitStructure);	/* CAN filter init */	CAN_FilterInitTypeDef CAN_FilterInitStructure;	CAN_FilterInitStructure.CAN_FilterNumber = 0;	CAN_FilterInitStructure.CAN_FilterMode = CAN_FilterMode_IdMask;	CAN_FilterInitStructure.CAN_FilterScale = CAN_FilterScale_32bit;	CAN_FilterInitStructure.CAN_FilterIdHigh = 0x0000;	CAN_FilterInitStructure.CAN_FilterIdLow = 0x0000;	CAN_FilterInitStructure.CAN_FilterMaskIdHigh = 0x0000;	CAN_FilterInitStructure.CAN_FilterMaskIdLow = 0x0000;	CAN_FilterInitStructure.CAN_FilterFIFOAssignment = 0;	CAN_FilterInitStructure.CAN_FilterActivation = ENABLE;	CAN_FilterInit(&CAN_FilterInitStructure);	/* Enable FIFO 0 message pending Interrupt */	CAN_ITConfig(CAN1, CAN_IT_FMP0, ENABLE);}
开发者ID:ION-Racing,项目名称:Sikkerhetsmodul,代码行数:57,


示例16: TSVN_CAN_Init

void TSVN_CAN_Init(void){	GPIO_InitTypeDef  GPIO_InitStructure;	CAN_InitTypeDef CAN_InitStructure;	CAN_FilterInitTypeDef CAN_FilterInitStructure;	NVIC_InitTypeDef  NVIC_InitStructure;		RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE);	RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOD, ENABLE);	RCC_APB1PeriphClockCmd(RCC_APB1Periph_CAN1, ENABLE);		GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0;  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU;  GPIO_Init(GPIOD, &GPIO_InitStructure);	GPIO_InitStructure.GPIO_Pin = GPIO_Pin_1;  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;  GPIO_Init(GPIOD, &GPIO_InitStructure);    GPIO_PinRemapConfig(GPIO_Remap2_CAN1 , ENABLE);  GPIO_PinRemapConfig(GPIO_Remap_PD01 , ENABLE);		CAN_DeInit(CAN1);		CAN_InitStructure.CAN_TTCM = DISABLE;  CAN_InitStructure.CAN_ABOM = DISABLE;  CAN_InitStructure.CAN_AWUM = DISABLE;  CAN_InitStructure.CAN_NART = DISABLE;  CAN_InitStructure.CAN_RFLM = DISABLE;  CAN_InitStructure.CAN_TXFP = DISABLE;  CAN_InitStructure.CAN_Mode = CAN_Mode_Normal;		CAN_InitStructure.CAN_SJW = CAN_SJW_1tq;  CAN_InitStructure.CAN_BS1 = CAN_BS1_3tq;  //3  CAN_InitStructure.CAN_BS2 = CAN_BS2_5tq;	//5  CAN_InitStructure.CAN_Prescaler = 4;		CAN_FilterInitStructure.CAN_FilterNumber = 0;	CAN_FilterInitStructure.CAN_FilterMode = CAN_FilterMode_IdMask;  CAN_FilterInitStructure.CAN_FilterScale = CAN_FilterScale_32bit;  CAN_FilterInitStructure.CAN_FilterIdHigh = 0x0000;  CAN_FilterInitStructure.CAN_FilterIdLow = 0x0000;  CAN_FilterInitStructure.CAN_FilterMaskIdHigh = 0x0000;  CAN_FilterInitStructure.CAN_FilterMaskIdLow = 0x0000;  CAN_FilterInitStructure.CAN_FilterFIFOAssignment = 0;  CAN_FilterInitStructure.CAN_FilterActivation = ENABLE;  CAN_FilterInit(&CAN_FilterInitStructure);	CAN_ITConfig(CAN1,CAN_IT_FMP0, ENABLE);  	CAN_Init(CAN1, &CAN_InitStructure);		NVIC_PriorityGroupConfig(NVIC_PriorityGroup_4);	NVIC_InitStructure.NVIC_IRQChannel = CAN1_RX0_IRQn;	NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0x0;  NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0x02;  NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;  NVIC_Init(&NVIC_InitStructure);	}
开发者ID:NguyenTrongThinh,项目名称:TestPIDAndSensor,代码行数:57,


示例17: main

/**  * @brief  Main program.  * @param  None  * @retval None  */int main(void){  /*!< At this stage the microcontroller clock setting is already configured,       this is done through SystemInit() function which is called from startup       file (startup_stm32f10x_xx.s) before to branch to application main.       To reconfigure the default setting of SystemInit() function, refer to       system_stm32f10x.c file  */  /* Configures LED 1..4 */  STM_EVAL_LEDInit(LED1);  STM_EVAL_LEDOff(LED1);  DFLASH  /* NVIC configuration */  NVIC_Config();  RCC_Configuration();  GPIO_Configuration();  USART_InitStructure.USART_BaudRate = 19200;  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(USART1, &USART_InitStructure);  USART_Cmd(USART1, ENABLE);  Debug("/nZZZZZZZZZZZZZZzzzzzzzzzzzzzzzzzz!!!!!!!!!!!!!!!!!!!!");  DFLASH  /* CAN configuration */  CAN_Config();  Delay();  CAN_ITConfig(CANx, CAN_IT_FMP0, ENABLE);  /* Infinite loop */  short int x,led;  while(1) {    x++;    if (x == 0) {      if (led) {          STM_EVAL_LEDOn(LED1);          Delay();      }      else {          STM_EVAL_LEDOff(LED1);          TxMessage.Data[0]++;          CAN_Transmit(CANx, &TxMessage);          Delay();      }      led ^= 1;    }  }//END While}//END main
开发者ID:lawsonkeith,项目名称:STM3210E-EVAL_CAN_Networking,代码行数:61,


示例18: main

/**  * @brief  Main program.  * @param  None  * @retval None  */int main(void){  /*!< At this stage the microcontroller clock setting is already configured,        this is done through SystemInit() function which is called from startup       file (startup_stm32f10x_xx.s) before to branch to application main.       To reconfigure the default setting of SystemInit() function, refer to       system_stm32f10x.c file     */              /* NVIC configuration */  NVIC_Config();  /* Configures LED 1..4 */  STM_EVAL_LEDInit(LED1);  STM_EVAL_LEDInit(LED2);  STM_EVAL_LEDInit(LED3);  STM_EVAL_LEDInit(LED4);    /* Configure Push button key */  STM_EVAL_PBInit(BUTTON_KEY, BUTTON_MODE_GPIO);      /* CAN configuration */  CAN_Config();    CAN_ITConfig(CANx, CAN_IT_FMP0, ENABLE);  /* turn off all leds*/  STM_EVAL_LEDOff(LED1);  STM_EVAL_LEDOff(LED2);  STM_EVAL_LEDOff(LED3);  STM_EVAL_LEDOff(LED4);   /* Infinite loop */  while(1)  {    while(STM_EVAL_PBGetState(BUTTON_KEY) == KEY_PRESSED)    {      if(KeyNumber == 0x4)       {        KeyNumber = 0x00;      }      else      {        LED_Display(++KeyNumber);        TxMessage.Data[0] = KeyNumber;        CAN_Transmit(CANx, &TxMessage);        Delay();                while(STM_EVAL_PBGetState(BUTTON_KEY) != KEY_NOT_PRESSED)        {        }      }    }  }}
开发者ID:Axis-Labs,项目名称:STM32,代码行数:60,


示例19: CAN_Configuration

 /**  * @file   CAN_Configuration  * @brief  Configures the CAN  * @param  无  * @retval 无  */void CAN_Configuration(void){  CAN_InitTypeDef        CAN_InitStructure;  CAN_FilterInitTypeDef  CAN_FilterInitStructure;  GPIO_Configuration();  /* CAN register init */  CAN_DeInit(CAN1);  CAN_StructInit(&CAN_InitStructure);  /* CAN cell init */  CAN_InitStructure.CAN_TTCM = DISABLE; /* 时间触发禁止, 时间触发:CAN硬件的内部定时器被激活,并且被用于产生时间戳 */  CAN_InitStructure.CAN_ABOM = DISABLE; /* 自动离线禁止,自动离线:一旦硬件监控到128次11个隐性位,就自动退出离线状态。在这里要软件设定后才能退出 */  CAN_InitStructure.CAN_AWUM = DISABLE; /* 自动唤醒禁止,有报文来的时候自动退出休眠	*/  CAN_InitStructure.CAN_NART = DISABLE; /* 报文重传, 如果错误一直传到成功止,否则只传一次 */  CAN_InitStructure.CAN_RFLM = DISABLE; /* 接收FIFO锁定, 1--锁定后接收到新的报文摘不要,0--接收到新的报文则覆盖前一报文	*/  CAN_InitStructure.CAN_TXFP = ENABLE;  /* 发送优先级  0---由标识符决定  1---由发送请求顺序决定	*/  CAN_InitStructure.CAN_Mode = CAN_Mode_Normal; /* 模式	*/  CAN_InitStructure.CAN_SJW = CAN_SJW_1tq;      /* 重新同步跳宽,只有can硬件处于初始化模式时才能访问这个寄存器 */  CAN_InitStructure.CAN_BS1 = CAN_BS1_4tq;      /* 时间段1 */  CAN_InitStructure.CAN_BS2 = CAN_BS2_3tq;      /* 时间段2 */  CAN_InitStructure.CAN_Prescaler = 45;         /* 波特率预分频数 */     /* 波特率计算方法 */  /* CANbps= Fpclk/((BRP+1)*((Tseg1+1)+(Tseg2+1)+1)  此处计算为  CANbps=36000000/(45*(4+3+1))=100kHz */   														  //此处Tseg1+1 = CAN_BS1_8tp  /* 配置大方向: Tseg1>=Tseg2  Tseg2>=tq; Tseg2>=2TSJW */      if (CAN_Init(CAN1,&CAN_InitStructure) == CANINITFAILED) 		  {    /* 初始化时先设置CAN_MCR的初始化位 */  														    /* 然后查看硬件是否真的设置了CAN_MSR的初始化位来确认是否进入了初始化模式  */		 													                    }	  /* 配置CAN过滤器 */  /* 32位对应的id */  /* stdid[10:0],extid[17:0],ide,rtr	*/  /* 16位对应的id */  /* stdid[10:0],ide,rtr,extid[17:15] */  /* 一般使用屏蔽模式	*/  /* 要注意的是fifo接收存满了中断,还有就是fifo的概念,即取的一直是最早那一个数据, 要释放才能取下一个数据 */  /* 常使用的中断有 */  /* 1,有信息中断,即fifo挂号中断 */  /* 2,fifo满中断	*/  /* 3,fifo满之后又有信息来则中断,即fifo溢出中断	*/  CAN_FilterInitStructure.CAN_FilterNumber=0;     /* 过滤器0 */  CAN_FilterInitStructure.CAN_FilterMode=CAN_FilterMode_IdMask;  /* 屏敝模式 */  CAN_FilterInitStructure.CAN_FilterScale=CAN_FilterScale_32bit; /* 32位 */  CAN_FilterInitStructure.CAN_FilterIdHigh=0x0000;  /* 以下四个都为0, 表明不过滤任何id */  CAN_FilterInitStructure.CAN_FilterIdLow=0x0000;  CAN_FilterInitStructure.CAN_FilterMaskIdHigh=0x0000;  CAN_FilterInitStructure.CAN_FilterMaskIdLow=0x0000;  CAN_FilterInitStructure.CAN_FilterFIFOAssignment=0;  /* 能够通过该过滤器的报文存到fifo0中 */  CAN_FilterInitStructure.CAN_FilterActivation=ENABLE;  CAN_ITConfig(CAN1,CAN_IT_FMP0, ENABLE);   /* 挂号中断, 进入中断后读fifo的报文函数释放报文清中断标志 */  CAN_FilterInit(&CAN_FilterInitStructure);}
开发者ID:pyjhhh,项目名称:stm32_f1x,代码行数:61,


示例20: PIOS_CAN_TxStart

static void PIOS_CAN_TxStart(uintptr_t can_id, uint16_t tx_bytes_avail){	struct pios_can_dev *can_dev = (struct pios_can_dev *)can_id;		bool valid = PIOS_CAN_validate(can_dev);	PIOS_Assert(valid); 	CAN_ITConfig(can_dev->cfg->regs, CAN_IT_TME, ENABLE);		USB_HP_CAN1_TX_IRQHandler();}
开发者ID:EvalZero,项目名称:TauLabs,代码行数:11,


示例21: CAN2_Configuration

void CAN2_Configuration(void){    CAN_InitTypeDef        can;    CAN_FilterInitTypeDef  can_filter;    GPIO_InitTypeDef       gpio;    NVIC_InitTypeDef       nvic;    RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOB, ENABLE);    RCC_APB1PeriphClockCmd(RCC_APB1Periph_CAN1, ENABLE);    RCC_APB1PeriphClockCmd(RCC_APB1Periph_CAN2, ENABLE);    GPIO_PinAFConfig(GPIOB, GPIO_PinSource12, GPIO_AF_CAN2);    GPIO_PinAFConfig(GPIOB, GPIO_PinSource13, GPIO_AF_CAN2);     gpio.GPIO_Pin = GPIO_Pin_12 | GPIO_Pin_13 ;    gpio.GPIO_Mode = GPIO_Mode_AF;    GPIO_Init(GPIOB, &gpio);    nvic.NVIC_IRQChannel = CAN2_RX0_IRQn;    nvic.NVIC_IRQChannelPreemptionPriority = 1;    nvic.NVIC_IRQChannelSubPriority = 0;    nvic.NVIC_IRQChannelCmd = ENABLE;    NVIC_Init(&nvic);    CAN_DeInit(CAN2);    CAN_StructInit(&can);    can.CAN_TTCM = DISABLE;    can.CAN_ABOM = DISABLE;        can.CAN_AWUM = DISABLE;        can.CAN_NART = DISABLE;        can.CAN_RFLM = DISABLE;        can.CAN_TXFP = ENABLE;         can.CAN_Mode = CAN_Mode_Normal;     can.CAN_SJW  = CAN_SJW_1tq;    can.CAN_BS1 = CAN_BS1_9tq;    can.CAN_BS2 = CAN_BS2_4tq;    can.CAN_Prescaler = 3;   //CAN BaudRate 42/(1+9+4)/3=1Mbps    CAN_Init(CAN2, &can);        can_filter.CAN_FilterNumber=14;    can_filter.CAN_FilterMode=CAN_FilterMode_IdMask;    can_filter.CAN_FilterScale=CAN_FilterScale_32bit;    can_filter.CAN_FilterIdHigh=0x0000;    can_filter.CAN_FilterIdLow=0x0000;    can_filter.CAN_FilterMaskIdHigh=0x0000;    can_filter.CAN_FilterMaskIdLow=0x0000;    can_filter.CAN_FilterFIFOAssignment=0;//the message which pass the filter save in fifo0    can_filter.CAN_FilterActivation=ENABLE;    CAN_FilterInit(&can_filter);        CAN_ITConfig(CAN2,CAN_IT_FMP0,ENABLE);}
开发者ID:Junhao6503,项目名称:RoboMasters_2016_Open_Source,代码行数:53,


示例22: Can_Hw_Write

EXPORT Can_ReturnType Can_Hw_Write( Can_HwHandleType/* Can_HTHType */ hth, const Can_PduType *pduInfo ) {	  Can_ReturnType rv = CAN_OK;	  CAN_HW_t *canHw;	  const Can_HardwareObjectType *hohObj;	  const Can_ControllerConfigType *canHwConfig;	  uint32 controller;	  imask_t state;	  hohObj = Can_FindHoh(hth, &controller);	  if (hohObj == NULL)	    return CAN_NOT_OK;	  Can_UnitType *canUnit = CAN_GET_PRIVATE_DATA(controller);	  canHw = GetController(controller);	  Irq_Save(state);	  CanTxMsg TxMessage;	  TxMessage.RTR=CAN_RTR_DATA;	  TxMessage.DLC=pduInfo->length;	  memcpy(TxMessage.Data, pduInfo->sdu, pduInfo->length);	  if (hohObj->CanIdType == CAN_ID_TYPE_EXTENDED) {		TxMessage.IDE=CAN_ID_EXT;		TxMessage.ExtId=pduInfo->id;	  } else {		TxMessage.IDE=CAN_ID_STD;		TxMessage.StdId=pduInfo->id;	  }	  // check for any free box	  if(CAN_Transmit(canHw,&TxMessage) != CAN_NO_MB) {	    canHwConfig = CAN_GET_CONTROLLER_CONFIG(Can_Global.channelMap[controller]);	    if( canHwConfig->CanTxProcessing == CAN_PROCESS_TYPE_INTERRUPT ) {	  	  /* Turn on the tx interrupt mailboxes */	    	CAN_ITConfig(canHw,CAN_IT_TME, ENABLE);	    }		// Increment statistics		canUnit->stats.txSuccessCnt++;	    // Store pdu handle in unit to be used by TxConfirmation	    canUnit->swPduHandle = pduInfo->swPduHandle;	  } else {	    rv = CAN_BUSY;	  }	  Irq_Restore(state);	  return rv;}
开发者ID:SushMJ,项目名称:gainos-tk,代码行数:53,


示例23: CAN_Transmit

/******************************************************************************** Function Name	: * Description		: * Output				:* Return				:*******************************************************************************/void			_CAN::TX_ISR(_CAN *p) {CanTxMsg	buf={0,0,CAN_ID_STD,CAN_RTR_DATA,0,0,0,0,0,0,0,0,0};					if(p) {																					// klic za prijavo instance						me=p;						me->tx=_buffer_init(100*sizeof(CanTxMsg));					} else {																				// klic iz ISR, instanca in buffer morata bit ze formirana						if(_buffer_pull(me->tx,&buf,sizeof(CanTxMsg)))							CAN_Transmit(__CAN__,&buf);									// oddaj, ce je kaj na bufferju						else							CAN_ITConfig(__CAN__, CAN_IT_TME, DISABLE);	// sicer zapri interrupt					}					}
开发者ID:yallawalla,项目名称:stm32,代码行数:18,


示例24: hal_can_disable

extern hal_result_t hal_can_disable(hal_can_t id) {    //hal_can_internals_t *intitem = s_hal_can_internals[HAL_can_id2index(id)];    hal_can_internal_item_t* intitem = s_hal_can_theinternals.items[HAL_can_id2index(id)];    if(hal_false == s_hal_can_initted_is(id))    {        return(hal_res_NOK_generic);    }    if(NULL == intitem)    {        return(hal_res_NOK_generic);    }    // disable scheduling    hal_base_osal_scheduling_suspend();    intitem->enabled = 0;    // deconfigure interrupts on rx (CAN_IT_FMP0 -> FIFO 0 message pending) and tx (CAN_IT_TME -> transmit mailbox empty)    // it is the same using only one call of CAN_ITConfig() or two ...    CAN_ITConfig(HAL_can_port2peripheral(id), (CAN_IT_FMP0 | CAN_IT_TME), DISABLE);    CAN_ITConfig(HAL_can_port2peripheral(id), CAN_IT_TME, DISABLE);    CAN_ITConfig(HAL_can_port2peripheral(id), CAN_IT_FMP0, DISABLE);    CAN_ITConfig( HAL_can_port2peripheral(id), CAN_IT_ERROR,  DISABLE); // VALE    // nvic     s_hal_can_isr_rx_disable(id);    // dont disable the nvic for the tx. it was never enabled    s_hal_can_isr_tx_disable(id);    intitem->txisrisenabled = 0;        s_hal_can_isr_err_disable(id); // VALE        // enable scheduling     hal_base_osal_scheduling_restart();    return(hal_res_OK);}
开发者ID:Tarintote,项目名称:icub-firmware,代码行数:39,


示例25: _buffer_push

/******************************************************************************** Function Name	: * Description		: * Output				:* Return				:*******************************************************************************/void			_CAN::Send(CanTxMsg *msg) {					if(_buffer_count(tx) > 0 || (__CAN__->TSR & CAN_TSR_TME) == 0) {						_buffer_push(tx,&msg,sizeof(msg));					} else						CAN_Transmit(__CAN__,msg);					CAN_ITConfig(__CAN__, CAN_IT_TME, ENABLE);		//________ debug print__________________________________________________________________					if(_BIT(_LM::debug, DBG_CAN_TX)) {//						_io *temp=_stdio(lm->io);						printf("/r/n:%04d>%02X ",__time__ % 10000,msg->StdId);						for(int i=0;i<msg->DLC;++i)							printf(" %02X",msg->Data[i]);						printf("/r/n:");//						_stdio(temp);					}}
开发者ID:yallawalla,项目名称:stm32,代码行数:22,


示例26: CAN_Initialise

void CAN_Initialise(){	CAN_InitTypeDef CAN_InitStruct;    CAN_FilterInitTypeDef  CAN_FilterInitStructure;		void GPIO_Initialise();		RCC_APB1PeriphClockCmd(RCC_APB1Periph_CAN1,ENABLE);    RCC_APB1PeriphClockCmd(RCC_APB1Periph_CAN2,ENABLE);		/* CAN register init */	CAN_DeInit(CAN2);		/* CAN cell init */	CAN_InitStruct.CAN_TTCM = DISABLE;	CAN_InitStruct.CAN_ABOM = DISABLE;	CAN_InitStruct.CAN_AWUM = DISABLE;	CAN_InitStruct.CAN_NART = DISABLE;	CAN_InitStruct.CAN_RFLM = DISABLE;	CAN_InitStruct.CAN_TXFP = DISABLE;	CAN_InitStruct.CAN_Mode = CAN_Mode_Normal;	CAN_InitStruct.CAN_SJW = CAN_SJW_3tq;    //Bus length 3-5m.    	/* CAN Baudrate = 500 KBps (CAN clocked at 42 MHz) */	CAN_InitStruct.CAN_BS1 = CAN_BS1_4tq;	CAN_InitStruct.CAN_BS2 = CAN_BS2_2tq;	CAN_InitStruct.CAN_Prescaler = (42000000 / 7) / 500000; //12	CAN_Init(CAN2, &CAN_InitStruct);	/* CAN filter init */	CAN_FilterInitStructure.CAN_FilterNumber = 0;	CAN_FilterInitStructure.CAN_FilterMode = CAN_FilterMode_IdMask;	CAN_FilterInitStructure.CAN_FilterScale = CAN_FilterScale_32bit;	CAN_FilterInitStructure.CAN_FilterIdHigh = 0x0000;	CAN_FilterInitStructure.CAN_FilterIdLow = 0x0000;	CAN_FilterInitStructure.CAN_FilterMaskIdHigh = 0x0000;	CAN_FilterInitStructure.CAN_FilterMaskIdLow = 0x0000;	CAN_FilterInitStructure.CAN_FilterFIFOAssignment = 0;	CAN_FilterInitStructure.CAN_FilterActivation = ENABLE;	CAN_FilterInit(&CAN_FilterInitStructure);	/* Enable FIFO 0 message pending Interrupt */	CAN_ITConfig(CAN2, CAN_IT_FMP0, ENABLE);}
开发者ID:fwjensen,项目名称:STM32_init,代码行数:47,


示例27: _CAN1_Init

void _CAN1_Init(){		CAN_InitTypeDef CAN_InitStructure;	CAN_FilterInitTypeDef  CAN_FilterInitStructure; 	NVIC_InitTypeDef NVIC_InitStructure;		_CAN1_GPIO_Init();	RCC_APB1PeriphClockCmd(RCC_APB1Periph_CAN1,ENABLE);	CAN_InitStructure.CAN_TTCM=DISABLE;	CAN_InitStructure.CAN_ABOM=DISABLE;	CAN_InitStructure.CAN_AWUM=DISABLE;	CAN_InitStructure.CAN_NART=DISABLE;	CAN_InitStructure.CAN_RFLM=DISABLE;	CAN_InitStructure.CAN_TXFP=DISABLE;	//CAN_InitStructure.CAN_Mode=CAN_Mode_Normal;	CAN_InitStructure.CAN_Mode=CAN_Mode_LoopBack;	CAN_InitStructure.CAN_SJW=CAN_SJW_1tq;/*重新同步跳宽*/	CAN_InitStructure.CAN_BS1=CAN_BS1_4tq;/*时间段1*/	CAN_InitStructure.CAN_BS2=CAN_BS2_3tq;/*时间段2*/	CAN_InitStructure.CAN_Prescaler=45;/*波特率预分频数*/	CAN_Init(CAN1,&CAN_InitStructure);		//允许所有报文通过	CAN_FilterInitStructure.CAN_FilterNumber=0; //设置过滤器组0,范围为0~13	CAN_FilterInitStructure.CAN_FilterMode=CAN_FilterMode_IdMask;//指定过滤器被设置为标识符屏蔽模式	CAN_FilterInitStructure.CAN_FilterScale=CAN_FilterScale_32bit;//给出过滤器位宽为32位	CAN_FilterInitStructure.CAN_FilterIdHigh=0x0000;	CAN_FilterInitStructure.CAN_FilterIdLow=0x0000;	CAN_FilterInitStructure.CAN_FilterMaskIdHigh=0x0000;	CAN_FilterInitStructure.CAN_FilterMaskIdLow=0x0000;	CAN_FilterInitStructure.CAN_FilterFIFOAssignment=0;//为过滤器分配缓存 此处到//fifo 因为 CAN_FilterInitStructure.CAN_FilterNumber=0;	CAN_FilterInitStructure.CAN_FilterActivation=ENABLE;	CAN_FilterInit(&CAN_FilterInitStructure);	CAN_ITConfig(CAN1,CAN_IT_FMP0, ENABLE);		NVIC_InitStructure.NVIC_IRQChannel=CAN1_RX1_IRQn;	NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;	NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0;	NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;	NVIC_Init(&NVIC_InitStructure);	}
开发者ID:RTOS-Developers,项目名称:TRTOS,代码行数:42,


示例28: CAN_Filter_Config

/* * 函数名:CAN_Filter_Config * 描述  :CAN的过滤器 配置 * 输入  :无 * 输出  : 无 * 调用  :内部调用 */static void CAN_Filter_Config(void){   CAN_FilterInitTypeDef  CAN_FilterInitStructure;	/*CAN过滤器初始化*/	CAN_FilterInitStructure.CAN_FilterNumber=0;						//过滤器组0    CAN_FilterInitStructure.CAN_FilterMode=CAN_FilterMode_IdMask;	//工作在标识符屏蔽位模式	CAN_FilterInitStructure.CAN_FilterScale=CAN_FilterScale_32bit;	//过滤器位宽为单个32位。	/* 使能报文标示符过滤器按照标示符的内容进行比对过滤,扩展ID不是如下的就抛弃掉,是的话,会存入FIFO0。 */    CAN_FilterInitStructure.CAN_FilterIdHigh= (((u32)0x1314<<3)&0xFFFF0000)>>16;				//要过滤的ID高位     CAN_FilterInitStructure.CAN_FilterIdLow= (((u32)0x1314<<3)|CAN_ID_EXT|CAN_RTR_DATA)&0xFFFF; //要过滤的ID低位     CAN_FilterInitStructure.CAN_FilterMaskIdHigh= 0xFFFF;			//过滤器高16位每位必须匹配    CAN_FilterInitStructure.CAN_FilterMaskIdLow= 0xFFFF;			//过滤器低16位每位必须匹配	CAN_FilterInitStructure.CAN_FilterFIFOAssignment=CAN_Filter_FIFO0 ;				//过滤器被关联到FIFO0	CAN_FilterInitStructure.CAN_FilterActivation=ENABLE;			//使能过滤器	CAN_FilterInit(&CAN_FilterInitStructure);	/*CAN通信中断使能*/	CAN_ITConfig(CAN1, CAN_IT_FMP0, ENABLE);}
开发者ID:coderick,项目名称:WildFireExample,代码行数:27,


示例29: CAN1_RX0_IRQHandler

void CAN1_RX0_IRQHandler() {  /* Advance buffer head. */  uint16_t tempRX_Head = ((&CAN1_Buf)->RX_Head + 1) & (CAN_BUFSIZE-1);  /* Check for overflow. */  uint16_t tempRX_Tail = (&CAN1_Buf)->RX_Tail;  CanRxMsg data;  CAN_Receive(CAN1, CAN_FIFO0, &data);  if (tempRX_Head == tempRX_Tail) {      /* Disable the CAN1 Receive interrupt */      CAN_ITConfig(CAN1, CAN_IT_FMP0, DISABLE);  }else{      (&CAN1_Buf)->RX[(&CAN1_Buf)->RX_Head] = data;      (&CAN1_Buf)->RX_Head = tempRX_Head;  }  __DSB();      // prevent erroneous recall of this handler due to delayed memory write}
开发者ID:ken-kentan,项目名称:SRC2015_Bteam_Manual,代码行数:20,


示例30: main

/**  * @brief  Main program  * @param  None  * @retval : None  */int main(void){ uint32_t i=0;    /* System clocks configuration ---------------------------------------------*/  RCC_Configuration();  /* NVIC configuration ------------------------------------------------------*/  NVIC_Configuration();  /* GPIO configuration ------------------------------------------------------*/  GPIO_Configuration();  /* CAN configuration */  CAN_Config();  CAN_ITConfig(CAN1, CAN_IT_FMP0, ENABLE);  /* turn off all leds*/  LED_Display(5);  /* Infinite loop*/  while(1)  {    while(Key_Status()== Key_Pressed)     {	if(Key_Pressed_Number==0x4)         {	   Key_Pressed_Number = 0x00;        }	else        {       	  LED_Display(++Key_Pressed_Number);          TxMessage.Data[0] = Key_Pressed_Number;          CAN_Transmit(CAN1, &TxMessage);	  for(i=0;i<0xFFFF;i++);          while(Key_Status()!= Key_NoPressed);        }     }  }}
开发者ID:jiesse,项目名称:time-meter,代码行数:46,



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


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