feat(ADC): 重构采样器初始化为构造函数
将 `sampler::init()` 方法改为构造函数 `sampler()`,并在其中完成 DMA 和 ADC 的初始化配置, 同时进行初始采样操作。 feat(CAN): 更新角度传感器类接口并修复拼写错误 将全局函数 `KHT7823_readAngle()` 替换为 `angle_sensor::readAngle()` 类成员函数调用, 统一命名风格并修正部分函数名中的拼写错误(如 KHT7823 -> KTH7823)。 refactor(Can): 移除冗余的 timeout 成员变量 在 `CAN_transmiter` 类中移除了未使用的 `timeout` 成员变量,减少资源占用。 refactor(Timer): 删除重复注释内容 清理 `Timer.cpp` 中关于定时器配置的重复注释信息,保留核心常量定义。 refactor(ADC): 修正头文件中函数声明 将 `adc.h` 中的 `init()` 函数声明更新为构造函数 `sampler()`,保持实现与声明一致。 refactor(ang_sensor): 将角度传感器相关功能封装为类 将原先分散的 C 风格函数封装进 `angle_sensor` 类中,提升代码结构清晰度和可维护性。 添加构造函数和读取角度的方法,并修正原有函数命名不一致问题。 refactor(main): 调整初始化顺序并移除多余包含 修改 `main.cpp` 中外设初始化顺序,移除对 `core_cm4.h` 的重复包含, 并将角度传感器和采样器通过类实例方式初始化。
This commit is contained in:
@@ -4,7 +4,6 @@
|
||||
#include "gd32c10x_spi.h"
|
||||
#include <stdint.h>
|
||||
|
||||
|
||||
#define SPI_CS_ENABLE() gpio_bit_reset(GPIOA, GPIO_PIN_15)
|
||||
#define SPI_CS_DISABLE() gpio_bit_set(GPIOA, GPIO_PIN_15)
|
||||
|
||||
@@ -179,7 +178,7 @@ extern "C" void DMA0_Channel1_IRQHandler(void) {
|
||||
* @brief 角度传感器初始化
|
||||
* @param 无
|
||||
*/
|
||||
void KHT7823_gpio_init(void) {
|
||||
void KTH7823_gpio_init(void) {
|
||||
rcu_periph_clock_enable(RCU_GPIOA);
|
||||
rcu_periph_clock_enable(RCU_GPIOB);
|
||||
rcu_periph_clock_enable(RCU_SPI0);
|
||||
@@ -204,7 +203,7 @@ void KHT7823_gpio_init(void) {
|
||||
*
|
||||
* @details Configures SPI hardware and initializes necessary settings
|
||||
*/
|
||||
void KHT7823_spi_init(void) {
|
||||
void KTH7823_spi_init(void) {
|
||||
spi_parameter_struct spi_init_str;
|
||||
spi_struct_para_init(&spi_init_str);
|
||||
|
||||
@@ -224,27 +223,34 @@ void KHT7823_spi_init(void) {
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief KHT7823 初始化
|
||||
* @brief KTH7823 初始化
|
||||
*/
|
||||
void KHT7823_init(void) {
|
||||
KHT7823_gpio_init(); // GPIO初始化
|
||||
KHT7823_spi_init(); // SPI初始化
|
||||
void angle_sensor::KTH7823_init(void) {
|
||||
KTH7823_gpio_init(); // GPIO初始化
|
||||
KTH7823_spi_init(); // SPI初始化
|
||||
spi_dma_init(); // DMA初始化
|
||||
}
|
||||
/**
|
||||
* @brief 角度传感器构造函数
|
||||
*/
|
||||
angle_sensor::angle_sensor(void) { KTH7823_init(); }
|
||||
|
||||
/**
|
||||
* @brief 读取传感器数据
|
||||
* @return 传感器数据
|
||||
*/
|
||||
float KHT7823_readAngle() {
|
||||
float angle_sensor::readAngle(void) {
|
||||
u16 u16data = FAULT_RECEIVE;
|
||||
|
||||
SPI_CS_ENABLE();
|
||||
// 使用DMA发送命令并接收数据
|
||||
u16 u16data;
|
||||
if (spi_rw_half_word_dma(SPI0, DEFAULT_COMMAND, &u16data) == 0) {
|
||||
SPI_CS_DISABLE();
|
||||
return u16data * ANGLE_FACTOR;
|
||||
} else {
|
||||
SPI_CS_DISABLE();
|
||||
// 处理读取错误
|
||||
printf("Error reading angle from sensor.\n");
|
||||
return FAULT_RECEIVE; // 错误返回
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user