Tool/software: TI C/C++ Compiler
My object is transmitting data 5V from TM4C123GH6PM to MCP4921. My code build well but I can not get the value from pin of MCP4921. Anybody know is that my data transmit is correct or not?
Thank you so much.
My code:
#include <stdbool.h>
#include <stdint.h>
#include "inc/hw_memmap.h"
#include "inc/hw_ints.h"
#include "driverlib/gpio.h"
#include "driverlib/pin_map.h"
#include "driverlib/ssi.h"
#include "driverlib/sysctl.h"
#include "driverlib/interrupt.h"
#include "driverlib/uart.h"
#include "utils/uartstdio.h"
//#define NUM_SSI_DATA 1
void SSI0_Interrupt(void);
uint32_t pui32DataTx;
uint32_t pui32DataRx;
uint32_t ui32Index;
volatile unsigned long g_ulSSI2RXTO = 0;
void
InitConsole(void)
{
SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOB);
GPIOPinConfigure(GPIO_PB0_U1RX);
GPIOPinConfigure(GPIO_PB1_U1TX);
SysCtlPeripheralEnable(SYSCTL_PERIPH_UART1);
GPIOPinTypeUART(GPIO_PORTB_BASE, GPIO_PIN_0 | GPIO_PIN_1);
UARTConfigSetExpClk(UART1_BASE, SysCtlClockGet(),115200,(UART_CONFIG_WLEN_8 | UART_CONFIG_STOP_ONE |UART_CONFIG_PAR_NONE));
UARTEnable(UART1_BASE);
}
int
main(void)
{
SysCtlClockSet(SYSCTL_SYSDIV_1 | SYSCTL_USE_OSC | SYSCTL_OSC_MAIN |
SYSCTL_XTAL_16MHZ);
InitConsole();
UARTprintf("SSI ->\n");
UARTprintf(" Mode: SPI\n");
UARTprintf(" Data: 8-bit\n\n");
SysCtlPeripheralEnable(SYSCTL_PERIPH_SSI0);
SysCtlPeripheralEnable(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(SSI0_BASE, SysCtlClockGet(), SSI_FRF_MOTO_MODE_3,
SSI_MODE_MASTER,2000000, 8);
SSIEnable(SSI0_BASE);
SSIIntEnable(SSI0_BASE,SSI_RXFF|SSI_RXTO);
while(SSIDataGetNonBlocking(SSI0_BASE, &pui32DataRx))
{
}
SSIIntClear(SSI0_BASE,SSI_RXFF|SSI_RXTO);
pui32DataTx = 0x00003005;
UARTprintf("Sent:\n ");
{UARTprintf("'%c' ", pui32DataTx);
SSIDataPut(SSI0_BASE, pui32DataTx);
}
while(SSIBusy(SSI0_BASE))
{
}
IntEnable(INT_SSI0);
while(g_ulSSI2RXTO == 0)
{
}
UARTprintf("\nReceived:\n ");
while(1)
{}
}