CAN 是 Controller Area Network 控制器局域网 的缩写,是 ISO 国际标准化的串行通信协议。CAN 总线由两根线(CANL 和 CANH)组成,允许挂载多个设备节点。CAN 协议经过 ISO 标准化后有两个标准:ISO11898 标准(高速 CAN)和 ISO11519-2 标准(低速 CAN)。其中 ISO11898 是针对通信速率为 125Kbps ~ 1Mbps ...
/* Request transmission */SET_BIT(hcan->Instance->sTxMailBox[transmitmailbox].TIR, CAN_TI0R_TXRQ); /* Return function status */returnHAL_OK;}else{/* Update error code */hcan->ErrorCode |= HAL_CAN_ERROR_PARAM;...
/* Return function status */ return HAL_OK; } else { /* Update error code */ hcan->ErrorCode |= HAL_CAN_ERROR_NOT_INITIALIZED; return HAL_ERROR; } } 3.5 例程——通过中断读取接收数据 int MX_CAN_Init(void) { /* USER CODE BEGIN CAN_Init 0 */ HAL_StatusTypeDef HAL_Status = HAL...
uint8_t MyCAN_ReceiveFlag(void) { if (CAN_MessagePending(CAN1, CAN_FIFO0) > 0)//判断是否接收到数据 { return 1; } return 0; } void MyCAN_Receive(uint32_t *ID, uint8_t *Length, uint8_t *Data) { CanRxMsg RxMessage; CAN_Receive(CAN1, CAN_FIFO0, &RxMessage); if (RxMessa...
of the Tx frame.* @param pTxMailbox pointer to a variable where the function will return* ...
CAN_FilterTypeDef sFilterConfig;//CAN初始化:/* CAN init function */ void MX_CAN_Init(void) {hcan1.Instance = CAN1;hcan1.Init.Prescaler = 9;hcan1.Init.Mode = CAN_MODE_LOOPBACK; // 回环模式,测试用。hcan1.Init.SyncJumpWidth = CAN_SJW_1TQ;hcan1.Init.TimeSeg1 = CAN_BS1_5TQ...
returnresult; } /*CAN发送数据测试函数*/ voidCAN1_Send_Test(uint32_tmsgid,uint8_t*data) { TxMessage.IDE = CAN_ID_STD;//设置ID类型 TxMessage.StdId = msgid;//设置ID号 TxMessage.RTR = CAN_RTR_DATA;//设置传送数据帧 TxMessage.DLC =4;//设置数据长度 ...
Std_ReturnType CanTrcv_CheckWakeFlag (uint8 Transceiver ) 7.1.15. CanTrcv_DeInit 说明: 取消初始化CanTrcv模块。 void CanTrcv_DeInit ( void ) 7.1.16. CanTrcv_MainFunction 说明: 用于扫描所有总线以查找唤醒事件并执行这些事件的服务。 void CanTrcv_MainFunction ( void ) 7.1.17. CanTrcv_MainFunct...
*/voidCO_EE_init_2( CO_EE_t *ee, CO_ReturnError_t eeStatus, CO_SDO_t *SDO, CO_EM_t *em);/** * Process eeprom object. * * Function must be called cyclically. It strores variables from OD_EEPROM data * block into eeprom byte by byte (only if values are different). ...
* check the return value of this function. Imagine that every * read{b,l}, write{b,l} and friends would be bracketed in "if ( < 0) * error();", it would be a great mess (well there are some situation * when exception handling C++ like could be useful after all). So we ...