feat(canfd): 添加通道使能控制和SPI握手信号支持
- 添加通道使能开关配置,通过sys/config.h中的CONFIG_CAN_CHx_ENABLE控制各通道 - 实现isChannelEnabled()方法用于查询通道使能状态 - 修正CAN1引脚映射配置,将RX/TX引脚对调并禁用重映射 - 修正错误计数器读取逻辑,REC字段从bit24开始提取而非bit8 - 修正busOff状态判断,使用CAN_ERR_BOERR标志位 - 调整滤波器配置时机,移到所有hardReset完成后防止共享寄存器被清零 - 在发送时增加总线健康检查,避免高错误计数时继续发送导致bus off - 添加SPI Ready握手信号(PB6)控制,改善主从机通信同步 fix(spi): 实现SPI命令处理中的READY信号握手协议 - 添加SPI Ready信号控制,PB6输出指示从机就绪状态 - CS下降沿立即拉低READY信号防主机抢跑 - 命令处理完成且无待处理命令时拉高READY信号 - 忽略无效事务后恢复READY信号避免超时 - 在繁忙期间保持READY信号低电平通知主机等待
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
#ifndef DEVICE_APP_SPI_COMMAND_H
|
||||
#ifndef DEVICE_APP_SPI_COMMAND_H
|
||||
#define DEVICE_APP_SPI_COMMAND_H
|
||||
|
||||
#include <cstdint>
|
||||
@@ -84,6 +84,12 @@ private:
|
||||
void onCsAssert();
|
||||
void onCsRelease();
|
||||
void processCommand();
|
||||
|
||||
/** @brief 翻转 SPI Ready 握手引脚(PB6)电平。
|
||||
* @param[in] ready true=就绪(HIGH), false=忙(LOW)。
|
||||
* @note GPIO BSRR/BRR 写入原子,无需临界区;可由 ISR 与主循环共同调用。
|
||||
*/
|
||||
void setSpiReady(bool ready);
|
||||
};
|
||||
|
||||
/** @brief 全局 SPI 命令总线实例。 */
|
||||
|
||||
Reference in New Issue
Block a user