fix(CAN): 使用DMA优化CAN通信数据收发

重新配置CAN引脚映射并实现基于DMA的数据收发机制,提升通信效率。增加了DMA通道4和5的中断处理函数,用于接收和发送CAN消息。修改了CAN发送函数以支持DMA传输,并去除了原有的轮询等待机制。

feat(ADC): 重新实现ADC与DMA初始化配置
将ADC和DMA的配置迁移至ADC.cpp文件中,完善了DMA循环采样模式配置及ADC多通道扫描功能。删除了initial.cpp中重复的初始化代码,并修正了相关头文件包含。

chore(headers): 清理冗余头文件引用
多个源文件中删除了不必要的标准库和硬件无关头文件引用,减少编译依赖,提高代码清晰度。
This commit is contained in:
cbb
2025-11-01 20:29:11 +08:00
parent 867a37ff79
commit 71a92fa68e
12 changed files with 258 additions and 171 deletions
+3 -10
View File
@@ -1,28 +1,22 @@
#include "main.h"
#include "Can.h"
#include "DengFOC.h"
#include "Filter.h"
#include "Timer.h"
#include "adc.h"
#include "core_cm4.h"
#include "core_cm4.h"
#include "ang_sensor.h"
#include "gd32c10x_gpio.h"
#include "initial.h"
#include "systick.h"
#include <cstdio>
// 全局变量定义
CAN_transmiter CAN0_transmiter;
FOC_Controlroller FOC;
sampler sampler;
CAN_transmiter CAN0_transmiter; //CAN初始化
FOC_Controlroller FOC; // FOC控制初始化
sampler sampler; // 采样器初始化
int main(void) {
systick_config(); // 系统时钟初始化
USART0_init(); // 调试串口初始化
User_timer_init(); // Timer初始化
adc_config(); // ADC初始化
dma_config(); // DMA采样ADC初始化
sampler.init(); // 采样器初始化
driver_init(); // 电机驱动初始化
@@ -32,7 +26,6 @@ int main(void) {
while (1) {
/* clear the FWDGT reset flag */
// std::printf("1\n");
// delay_1ms(100);
fwdgt_counter_reload();
CAN0_transmiter.communication_check();