DRV8313兼容版

refactor(algorithm): 移除冗余头文件
移除不必要的stdint.h头文件引用,统一使用<cstdint>

refactor(sys): 清理系统级头文件依赖
移除未使用的头文件引用,统一整型类型定义,优化初始
化过程中的GPIO配置
This commit is contained in:
cbb
2026-01-24 01:50:39 +08:00
parent 3f24292ac1
commit 1596b2beb0
24 changed files with 76 additions and 64 deletions
+1 -2
View File
@@ -2,13 +2,12 @@
#include "Can.h"
#include "FOC.h"
#include "Filter.h"
#include "arm_math.h"
#include "config.h"
#include "math.h"
#include "systick.h"
#include <cstring>
#include <gd32c10x_dma.h>
#include <stdint.h>
#include <cstdint>
constexpr float ADC_SCALE = 3.3f / 4096.0f;
constexpr float TEMP_FACTOR = 1000.0f / 4.3f;
+5 -5
View File
@@ -17,9 +17,6 @@
#include <cstdlib>
#include <cstring>
#include <random>
#include <stdint.h>
#include <stdio.h>
#include <stdlib.h>
constexpr u16 CANX = CAN0;
@@ -55,8 +52,10 @@ u8 can_gpio_init() {
gpio_init(GPIOB, GPIO_MODE_AF_PP, GPIO_OSPEED_50MHZ, GPIO_PIN_9); // tx
gpio_pin_remap_config(GPIO_CAN0_PARTIAL_REMAP, ENABLE);
/* enable the EN GPIO clock */
gpio_init(GPIOB, GPIO_MODE_OUT_PP, GPIO_OSPEED_50MHZ, GPIO_PIN_13);
gpio_init(GPIOB, GPIO_MODE_OUT_PP, GPIO_OSPEED_50MHZ,
GPIO_PIN_13 | GPIO_PIN_14);
gpio_bit_reset(GPIOB, GPIO_PIN_13);
gpio_bit_reset(GPIOB, GPIO_PIN_14);
return 0;
}
@@ -604,7 +603,8 @@ void CAN_transmiter::communication_check() {
P_config = unpack_bytes_to_u16(receive_message.rx_data, 19);
FOC.angle_loop.set_P_percent(angle_loop_p * P_config / voltage);
P_config = unpack_bytes_to_u16(receive_message.rx_data, 21);
FOC.vel_inVelAngloop.set_P_percent(vel_angloop_p * P_config / voltage);
FOC.vel_inVelAngloop.set_P_percent(vel_angloop_p * P_config /
voltage);
} else if (receive_message.rx_efid == CANFD_RESET_ID) {
u8 first_byte = receive_message.rx_data[0];
u8 eigth_byte = receive_message.rx_data[7];
-2
View File
@@ -7,8 +7,6 @@ extern "C" {
#endif
#include "gd32c10x_can.h"
#include "stdint.h"
#include <stdio.h>
// 定义一个联合体类型用于float和byte数组之间的转换
typedef union {
-3
View File
@@ -8,9 +8,6 @@
#include "gd32c10x_rcu.h"
#include "gd32c10x_timer.h"
#include "initial.h"
#include <stdbool.h>
#include <stdint.h>
#include <stdio.h>
volatile u32 total_us100_counter = 0; // 总计数器,每100微秒增加1
extern u16 adc_value[7];
+2 -2
View File
@@ -5,10 +5,10 @@
extern "C" {
#endif
#include <stdint.h>
#include <cstdint>
void User_timer_init(void);
void Set_Pwm(uint16_t channel, float duty_cycle);
void Set_Pwm(u16 channel, float duty_cycle);
void Set_3Pwm(float duty_cycle0, float duty_cycle1,float duty_cycle2);
void TIMER2_IRQHandler(void);
-1
View File
@@ -5,7 +5,6 @@
extern "C" {
#endif
#include "stdint.h"
#include "config.h"
class sampler {
+1 -1
View File
@@ -4,7 +4,7 @@
extern "C" {
#endif
#include "gd32c10x_eval.h"
#include "stdio.h"
#include <cstring>
#include "config.h"
u16 spi_rw_half_word(u32 spi_periph, const u16 i_HalfWord);
+16 -2
View File
@@ -1,6 +1,7 @@
#include "motor.h"
#include "Timer.h"
#include "gd32c10x_eval.h"
#include "gd32c10x_gpio.h"
#include <cstdio>
/**
@@ -16,6 +17,11 @@ void motor_init(void) {
/* 配置GPIOB的PB14为推挽输出 SPICS */
gpio_init(GPIOB, GPIO_MODE_OUT_PP, GPIO_OSPEED_50MHZ,
GPIO_PIN_14 | GPIO_PIN_12);
// 使能GPIOC时钟,用于电机驱动使能引脚
rcu_periph_clock_enable(RCU_MOTOR_EN_GPIO);
// 配置PC13为推挽输出,用于控制电机驱动器使能
gpio_init(MOTOR_EN_GPIO_PORT, GPIO_MODE_OUT_PP, GPIO_OSPEED_50MHZ, MOTOR_EN_GPIO_PIN);
}
/**
@@ -30,9 +36,17 @@ void motor_reset(void) {
/**
* @brief 电机休眠
*/
void motor_sleep(void) { gpio_bit_reset(GPIOB, GPIO_PIN_12); }
void motor_sleep(void) {
gpio_bit_reset(GPIOB, GPIO_PIN_12);
// 同时禁用电机驱动器
gpio_bit_reset(MOTOR_EN_GPIO_PORT, MOTOR_EN_GPIO_PIN);
}
/**
* @brief 电机启动
*/
void motor_resume(void) { gpio_bit_set(GPIOB, GPIO_PIN_12); }
void motor_resume(void) {
gpio_bit_set(GPIOB, GPIO_PIN_12);
// 同时启用电机驱动器
gpio_bit_set(MOTOR_EN_GPIO_PORT, MOTOR_EN_GPIO_PIN);
}
+4 -1
View File
@@ -1,11 +1,14 @@
#ifndef _MOTOR_H
#define _MOTOR_H
// 定义电机驱动使能引脚
#define MOTOR_EN_GPIO_PORT GPIOC
#define MOTOR_EN_GPIO_PIN GPIO_PIN_13
#define RCU_MOTOR_EN_GPIO RCU_GPIOC
void motor_init(void);
void motor_reset(void);
void motor_resume(void);
void motor_sleep(void);
#endif