我尝试在28069M launchpad 上使用 HAL 启用 SCI FIFO、但无法使其正常工作。
这是迄今为止位于 hal.c 中的代码。
void HAL_setupSciB (HAL_Handle handle){
HAL_Obj * obj =(HAL_Obj *)句柄;
sci_reset (obj->sciHandle);
sci_enableTx (obj->sciHandle);
sci_enableRx (obj->sciHandle);
sci_disableParity (obj->sciHandle);
SCI_setNumStopBits (obj->sciHandle、SCI_NumStopBits);
SCI_setCharLength (obj->sciHandle、SCI_CharLength _8_Bits);
/////////////////////////////////// START:这是我从 HAL 教程中添加的用于启用 FIFO 的部分
sci_enableTxFifoEnh (obj->sciBHandle);
SCI_setRxFifoIntLevel (obj->sciBHandle、SCI_FifoLevel_1_Word);
SCI_setTxFifoIntLevel (obj->sciBHandle、SCI_FifoLevel_1_Word);
sci_enableRx (obj->sciHandle);
sci_enableTx (obj->sciHandle);
/////////////////////////////////// 结束
//将波特率设置为115200
SCI_setBaudRate (obj->sciHandle、(SCI_baudRate_e)(0x0061));
SCI_setPriority (obj->sciHandle、SCI_Priority_freRun);
sci_enable (obj->sciHandle);
注释中未包含的代码部分来自 HAL 教程。 我测试了非 FIFO 器件、它的工作方式是调用 SCI ISR、但一旦我添加了指示的 FIFO 代码、它就不会再调用 ISR。 我使用之前的外设头文件对28069M 进行了编程、它的工作原理是正常的、但它不能使用 HAL。
是否有某种称为我正在忽略的函数顺序、或者是否有其他东西?