主题中讨论的其他部件:SFRA, LAUNCHLL-F28.0025万C
您好,
我尝试将SCI用作调试输出,但无法使其在LAUNCXL-F28.0025万C评估板上运行。 我正在使用电机控制SDK V4,并且在符号中禁用了SFRA。 因此,我按如下所示配置SCI并使用示波器测量TX引脚(IO16):
设置SCI:
HAL.c:
void HAL_setupGPIOs(HAL_Handle handle)
{
...
//Define SCI Pins for normal SCI communication
// GPIO16->SCIA_TX
GPIO_setPinConfig(GPIO_16_SCIA_TX);
GPIO_setDirectionMode(16, GPIO_DIR_MODE_OUT);
GPIO_setPadConfig(16, GPIO_PIN_TYPE_STD);
// GPIO17->SCIA_RX
GPIO_setPinConfig(GPIO_17_SCIA_RX);
GPIO_setDirectionMode(17, GPIO_DIR_MODE_IN);
GPIO_setPadConfig(17, GPIO_PIN_TYPE_STD);
GPIO_setQualificationMode(16, GPIO_QUAL_ASYNC);
GPIO_setQualificationMode(17, GPIO_QUAL_ASYNC);
...
}
...
void HAL_setupSCIA(HAL_Handle halHandle)
{
HAL_Obj *obj = (HAL_Obj *)halHandle;
// Initialize SCIA and its FIFO.
SCI_performSoftwareReset(obj->sciHandle);
// Configure SCIA for echoback.
SCI_setConfig(obj->sciHandle, DEVICE_LSPCLK_FREQ, 115200,
( SCI_CONFIG_WLEN_8 |
SCI_CONFIG_STOP_ONE |
SCI_CONFIG_PAR_NONE ) ); //SFRA_GUI_VBUS_CLK DEVICE_LSPCLK_FREQ
SCI_resetChannels(obj->sciHandle);
SCI_resetRxFIFO(obj->sciHandle);
SCI_resetTxFIFO(obj->sciHandle);
SCI_disableLoopback(obj->sciHandle);
SCI_clearInterruptStatus(obj->sciHandle, SCI_INT_TXFF | SCI_INT_RXFF);
SCI_enableFIFO(obj->sciHandle);
SCI_enableModule(obj->sciHandle);
SCI_performSoftwareReset(obj->sciHandle);
return;
} // end of DRV_setupSci() function
我可以看到,UC正确运行设置。
然后在 sys_main.c:
switch(systemVars.timerBase_1ms)
{
case 1: // motor 1 protection check
runMotorMonitor(motorHandle_M1);
break;
case 2:
calculateRMSData(motorHandle_M1);
break;
case 3:
if(SCI_isTransmitterBusy(halHandle->sciHandle) == 0)
{
SCI_writeCharBlockingNonFIFO(halHandle->sciHandle, 'a');
}
break;
case 4: // calculate motor protection value
calcMotorOverCurrentThreshold(motorHandle_M1);
break;
case 5: // system control
systemVars.timerBase_1ms = 0;
systemVars.timerCnt_5ms++;
break;
}
所以根本没有输出,我真的不知道什么设置可能是错误的。
编辑:下面还有SCIA寄存器:

