Thread 中讨论的其他器件: EK-TM4C123GXL
工具/软件:TI C/C++编译器
您好、先生、
在 SPI 通信中、我遇到了一些问题。在我的程序中、将数据从主器件发送到从器件、从从从器件读取数据并将其显示在 UART 上。 主器件和从器件都使用相同的微控制器(TM4C123GH6PZ)。 我正在为主设备和从设备编写单独的程序。在主设备中,刷写程序用于发送字符,而从设备板,刷写程序用于通过 UART 读取和显示接收到的字符。
给定的吹气是我的主变速器程序
SysCtlPeripheralEnable (SYSCTL_Periph_SSI0);
while (!SysCtlPeripheralReady (SYSCTL_Periph_SSI0));
SysCtlPeripheralEnable (SYSCTL_Periph_GPIOA);
while (!SysCtlPeripheralReady (SYSCTL_Periph_GPIOA));
GPIOPinConfigure (GPIO_PA2_SSI0CLK);
GPIOPinConfigure (GPIO_PA3_SSI0FSS);
GPIOPinConfigure (GPIO_PA4_SSI0RX);
GPIOPinConfigure (GPIO_PA5_SSI0TX);
GPIOPinTypeSSI (GPIO_Porta_base、GPIO_PIN_5 | GPIO_PIN_4 |GPIO_PIN_3 | GPIO_PIN_2);
SSIConfigSetExpClk (SYSCTL_Periph_SSI0、SysCtlClockGet ()、SSI_FRF_MOTO_MOTO_MODE_0、SSI_MODE_MASTER、10000008);
SSIEnable (SYSCTL_Periph_SSI0);
SSIDataPut (SSI0_BASE、'A');
while (SSIBusy (SSI0_BASE));
下面给出了从器件中的接收程序
SysCtlPeripheralEnable (SYSCTL_Periph_SSI0);//启用两个外设:
while (!SysCtlPeripheralReady (SYSCTL_Periph_SSI0));
SysCtlPeripheralEnable (SYSCTL_Periph_GPIOA);
while (!SysCtlPeripheralReady (SYSCTL_Periph_GPIOA));
GPIOPinConfigure (GPIO_PA2_SSI0CLK);
GPIOPinConfigure (GPIO_PA3_SSI0FSS);
GPIOPinConfigure (GPIO_PA4_SSI0RX);
GPIOPinConfigure (GPIO_PA5_SSI0TX);
GPIOPinTypeSSI (GPIO_Porta_base、GPIO_PIN_5 | GPIO_PIN_4 |GPIO_PIN_3 | GPIO_PIN_2);
SSIConfigSetExpClk (SYSCTL_Periph_SSI0、SysCtlClockGet ()、SSI_FRF_MOTO_MOTO_MODE_0、SSI_MODE_SLAVE、10000008);
SSIEnable (SYSCTL_Periph_SSI0);
while (SSIDataGetNonBlocking (SSI0_BASE、&pui32DataRx));
SSIDataGet (SSI0_BASE、&pui32DataRx);
UARTCharPut (UART0_BASE、pui32DataRx);
空 InitConsole (void)//UART 初始化
{
UARTClockSourceSet (SYSCTL_Periph_UART0、UART_CLOCK_SYSTEM);
//
//启用 UART0模块。
//
SysCtlPeripheralEnable (SYSCTL_Periph_UART0);
//
//等待 UART0模块准备就绪。
//
while (!SysCtlPeripheralReady (SYSCTL_Periph_UART0));
GPIOPinConfigure (GPIO_PA0_U0RX);
GPIOPinConfigure (GPIO_PA1_U0TX);
GPIOPinTypeUART (GPIO_Porta_base、GPIO_PIN_0 | GPIO_PIN_1);
UARTConfigSetExpClk (UART0_BASE、SysCtlClockGet ()、115200、(UART_CONFIG_WLEN_8|UART_CONFIG_STOP_ONE|UART_CONFIG_PAR_NONE));
}