有人能不能向我解释一下 TM4C123x 的勘误表 SS#07。 SPMZ849F 文档中对此进行了介绍(链接)。
当 SSI 完成发送(SSI_TXEOT)时、我尝试获取中断。 无论我尝试什么、我都不会获得中断、或者得到无限量的中断。
设置 SSI0的代码:
void PinoutSet (void) { //启用外设时钟。 MAP_SysCtlPeripheralEnable (SYSCTL_Periph_GPIOA); // PA[5:2]用于 SSI0。 MAP_GPIOPinConfigure (GPIO_PA2_SSI0CLK); MAP_GPIOPinConfigure (GPIO_PA3_SSI0FSS); MAP_GPIOPinConfigure (GPIO_PA4_SSI0RX); MAP_GPIOPinConfigure (GPIO_PA5_SSI0TX); MAP_GPIOPinTypeSSI (GPIO_Porta_base、GPIO_PIN_5 | GPIO_PIN_4 | GPIO_PIN_3 | GPIO_PIN_2); }
初始化 SSI0的代码:
//启用 SSI0 MAP_SysCtlPeripheralDisable (SYSCTL_Periph_SSI0); MAP_SysCtlPeripheralReset (SYSCTL_Periph_SSI0); MAP_SysCtlPeripheralEnable (SYSCTL_Periph_SSI0); while (!MAP_SysCtlPeripheralReady (SYSCTL_SSIP0) ;SYSCTL_SysCtlPeripheralReady (SYSCIPH/ Configure) 1MHz、8位数据、主控模式。 SSIConfigSetExpClk (SSI0_BASE、SysCtlClockGet ()、SSI_FRF_TI、SSI_MODE_MASTER、1000000、 8); //启用 SSI0模块。 SSIEnable (SSI0_BASE); //启用中断 SSIIntDisable (SSI0_BASE、SSI_TXFF | SSI_RXFF | SSI_RXTO | SSI_RXINT); SSIIntClear (SSI0_BASE、SSI_TXFF | SSI_RXFF | SSI_RXOT | SSI_RXOT | SSI_RXOT | SSIOR_RXINT);SSIOR_0 (SSIREG_RESPONIFn)+ SSIOR_RESPONIFT/ SSIOR= SSIOR_RESPONIFT/ SSIOR_RESPONIFG (SSIOR_RESPONIFG)
和中断处理程序:
void SSI0IntHandler (void) { volatile unsigned long status = 0; STATUS = SSIIntStatus (SSI0_BASE、TRUE); SSIIntClear (SSI0_BASE、SSI_TXFF | SSI_RXFF | SSI_RXTO | SSI_RXOR); // HWREG (SSI0_BASE + SSI_O_IM)&&~SSI_IM_TXIM; }
当我确实得到无限量的中断时;状态被设置为8。
有什么提示/技巧可以帮助您解决这个问题? 或者、我是否误解了勘误表、这是不可能的?
