| 4、发送数据: 
 /*使用can总线发送数据*/
uint8_t CANx_SendNormalData(CAN_TxHeaderTypeDef TxHeader,uint32_t std_id ,uint8_t *TxData ,uint16_t lengh)
{
    uint32_t TxMailbox; 
        uint8_t  FreeTxNum=0;//用来表示邮箱是否空闲
                
    TxHeader.RTR = CAN_RTR_DATA;
    TxHeader.IDE = CAN_ID_STD;            
    TxHeader.StdId = std_id;
    TxHeader.TransmitGlobalTime = DISABLE;
    TxHeader.DLC = lengh;
                
    FreeTxNum = HAL_CAN_GetTxMailboxesFreeLevel(&hcan);
                while(0==FreeTxNum)
                {
                        FreeTxNum=HAL_CAN_GetTxMailboxesFreeLevel(&hcan);
                }
                
    if (HAL_CAN_AddTxMessage(&hcan, &TxHeader, TxData, &TxMailbox) != HAL_OK)
    {
       /* Transmission request Error */
       Error_Handler();
    }
                return 1;
}
 |