mirror of
https://gitee.com/dlmu-cone/bf_original_balance_chassis
synced 2026-07-24 03:27:45 +08:00
超级电容通信 VOFA
This commit is contained in:
@@ -0,0 +1,47 @@
|
||||
/*
|
||||
* @Descripttion:
|
||||
* @version:
|
||||
* @Author: Chenfu
|
||||
* @Date: 2022-12-02 21:32:47
|
||||
* @LastEditTime: 2022-12-05 15:29:49
|
||||
*/
|
||||
#include "super_cap.h"
|
||||
#include "memory.h"
|
||||
#include "stdlib.h"
|
||||
static SuperCapInstance *super_cap_instance = NULL;
|
||||
|
||||
static void SuperCapRxCallback(can_instance *_instance)
|
||||
{
|
||||
static uint8_t *rxbuff;
|
||||
static SuperCap_Msg_s *Msg;
|
||||
rxbuff = _instance->rx_buff;
|
||||
Msg = &super_cap_instance->cap_msg;
|
||||
Msg->vol = (uint16_t)(rxbuff[0] << 8 | rxbuff[1]);
|
||||
Msg->current = (uint16_t)(rxbuff[2] << 8 | rxbuff[3]);
|
||||
Msg->power = (uint16_t)(rxbuff[4] << 8 | rxbuff[5]);
|
||||
}
|
||||
|
||||
SuperCapInstance *SuperCapInit(SuperCap_Init_Config_s *supercap_config)
|
||||
{
|
||||
super_cap_instance = (SuperCapInstance *)malloc(sizeof(SuperCapInstance));
|
||||
memset(super_cap_instance, 0, sizeof(SuperCapInstance));
|
||||
super_cap_instance->recv_data_len = supercap_config->recv_data_len;
|
||||
super_cap_instance->send_data_len = supercap_config->send_data_len;
|
||||
|
||||
supercap_config->can_config.can_module_callback = SuperCapRxCallback;
|
||||
super_cap_instance->can_ins = CANRegister(&supercap_config->can_config);
|
||||
return super_cap_instance;
|
||||
}
|
||||
|
||||
void SuperCapSend(SuperCapInstance *instance, uint8_t *data)
|
||||
{
|
||||
|
||||
CANSetDLC(instance->can_ins, 8);
|
||||
memcpy(instance->can_ins->tx_buff, data, instance->send_data_len);
|
||||
CANTransmit(instance->can_ins);
|
||||
}
|
||||
|
||||
SuperCap_Msg_s SuperCapGet(SuperCapInstance *instance)
|
||||
{
|
||||
return instance->cap_msg;
|
||||
}
|
||||
Reference in New Issue
Block a user