主题:SysConfig 中讨论的其他器件
工具/软件:
您好、专家。 目前我正在为 CCS-A 工程配置 SPI。 由于此工程没有 sisconfig、因此我必须自行配置。 目前、A 工程已成功配置 SCI、发送和接收正确、这证明 A 工程的低速时钟正确。 但是、SPI 的配置目前不正确。
我在项目 B 中正确配置了 SPI(在开发板上已成功验证)、但当我将代码从项目 B 传输到项目 A 以便运行时、它无法正常工作。 您能告诉我缺少什么配置、以及如何解决此问题吗?
void main (void)
{
//
//通过等待繁忙时间刷新 SCIA TX 端口、driverlib。
//
// sciaFlush ();
//
//初始化器件和 GPIO、driverlib。
//
设备初始化 ();
device_initGPIO();
//
//初始化中断和矢量表、drivelib。
//
interrupt_initModule();
Interrupt_initVectorTable();
//
//
//启用全局中断 (INTM) 和实时中断 (DBGM)
//
EINT;
ERTM;
//
//在 200MHz、外部振荡器的执行等待状态为 4。 修改
//更改系统时钟频率时的等待状态。
//
Flash_initModule (FLASH0CTRL_BASE、FLASH0ECC_BASE、4);
//
//泵访问必须由模芯使用泵信标获得
//
EALLOW;
IPC_claimFlashSemaphore (IPC_FLASHSEM_Owner_CPU1);
SysCtl_allocateFlashBank (SYSCTL_FLASH_BANK0、SYSCTL_CPUSEL_CPU1);
SysCtl_allocateFlashBank (SYSCTL_FLASH_BANK1、SYSCTL_CPUSEL_CPU1);
SysCtl_allocateFlashBank (SYSCTL_FLASH_BANK2、SYSCTL_CPUSEL_CPU1);
SysCtl_allocateFlashBank (SYSCTL_FLASH_BANK3、SYSCTL_CPUSEL_CPU1);
SysCtl_allocateFlashBank (SYSCTL_FLASH_BANK4、SYSCTL_CPUSEL_CPU1);
// Example_Call FlashAPI();
//
//初始化 FLASH_SECTORS、fapi + driverlib
//
initFlashSectors();
EDIS;
SysCtl_enablePeripheral (SYSCTL_PERIPH_CLK_SCIA);
SysCtl_setLowSpeedClock (SYSCTL_LSPCLK_PRESCALE_4);
/*SCIA*/
GPIO_setControllerCore (DEVICE_GPIO_PIN_UARTARXDA、GPIO_CORE_CPU1);
GPIO_setPinConfig (DEVICE_GPIO_CFG_UARTARXDA);
GPIO_setDirectionMode (DEVICE_GPIO_PIN_UARTARXDA、GPIO_DIR_MODE_IN);
GPIO_setPadConfig (DEVICE_GPIO_PIN_UARTARXDA、GPIO_PIN_TYPE_STD);
GPIO_setQualificationMode (DEVICE_GPIO_PIN_UARTARXDA、GPIO_QUAL_ASYNC);
//
// GPIO42 是 SCI Tx 引脚。
//
GPIO_setControllerCore (DEVICE_GPIO_PIN_UARTATXDA、GPIO_CORE_CPU1);
GPIO_setPinConfig (DEVICE_GPIO_CFG_UARTATXDA);
GPIO_setDirectionMode (DEVICE_GPIO_PIN_UARTATXDA、GPIO_DIR_MODE_OUT);
GPIO_setPadConfig (DEVICE_GPIO_PIN_UARTATXDA、GPIO_PIN_TYPE_STD);
GPIO_setQualificationMode (DEVICE_GPIO_PIN_UARTATXDA、GPIO_QUAL_ASYNC);
Sci_performSoftwareReset (SCIA_BASE);
initSCIA ();
INTERRUPT_REGISTER (INT_SCIA_RX、INT_SCIA_BASE_RX_ISR);
INTERRUPT_REGISTER (INT_SCIA_TX、INT_SCIA_BASE_TX_ISR);
SCI_enableTxModule (SCIA_BASE);
SCI_enableRxModule (SCIA_BASE);
INTERRUPT_ENABLE (INT_SCIA_RX);
INTERRUPT_ENABLE (INT_SCIA_TX);
INTERRUPT_CLEARACKGROUP (INTERRUPT_ACK_group9);
////uint32_t EntryAddr;
//
////
////对于 GPIO28 (RX)、29 (TX)、参数 SCI_BOOT_ALT5
////
////EntryAddr = sciGetFunction (SCI_BOOT_ALT5);
////return (EntryAddr);
//
memcpy (&RamfuncsLoadStart、&RamfuncsLoadEnd、RamfuncsRunStart);//将初始化Flash代码复制到RAM
//初始闪存 ();
memset (memset.RX Byte_Data_Buf_、0、sizeof (Byte_Data_Buf_));
memset (memset (Byte_Data_Buf_、0、sizeof (Byte_Data_Buf_));
memset (memset.RX Word_Data_Buf_、0、sizeof (Word_Data_Buf_));
memset (Word_Data_Buf_、0、sizeof (Word_Data_Buf_ TRX));
Bytes_RX_D=0;
bytes_cehsi=0;
// SysCtl_setPeripheralAccessControl (SYSCTL_ACCESS_SPIA、
// SysCtl_access_CPUx、SysCtl_access_full);
// SysCtl_setPeripheralAccessControl (SYSCTL_ACCESS_SPIA、
// SysCtl_ACCESS_CLA1、SysCtl_ACCESS_FULL);
// SysCtl_setPeripheralAccessControl (SYSCTL_ACCESS_SPIA、
// SysCtl_ACCESS_DMA1、SysCtl_ACCESS_FULL);
// SysCtl_enablePeripheral (SYSCTL_PERIPH_CLK_SPIA);
第 61 章
GPIO_setPadConfig (FLASH_CS、GPIO_PIN_TYPE_STD);
GPIO_setQualificationMode (FLASH_CS、GPIO_QUAL_SYNC);
GPIO_setDirectionMode (FLASH_CS、GPIO_DIR_MODE_OUT);
GPIO_setControllerCore (FLASH_CS、GPIO_CORE_CPU2);
//
// SPIA -> FLASH_SPIA Pinmux
//
//
// SPIA_PICO - GPIO 设置
//
#define GPIO_PIN_SPIA_PICO 16
#define FLASH_SPIA_SPIPICO_GPIO 16
#define FLASH_SPIA_SPIPICO_PIN_CONFIG GPIO_16_SPIA_PICO
//
// SPIA_POCI - GPIO 设置
//
#define GPIO_PIN_SPIA_POCI 17
define FLASH_SPIA_SPI_CI_GPIO 17
define FLASH_SPIA_SPIPOCI PIN_CONFIG GPIO_17_SPIA_POCI
//
// SPIA_CLK - GPIO 设置
//
#define GPIO_PIN_SPIA_CLK 18
#define FLASH_SPIA_SPIA_SPICLK_GPIO 18
#define FLASH_SPIA_SPIA_SPICLK_PIN_CONFIG GPIO_18_SPIA_CLK
//
// SPIA -> FLASH_SPIA Pinmux
//
GPIO_setPinConfig (FLASH_SPIA_SPIPICO_PIN_CONFIG);
GPIO_setPadConfig (FLASH_SPIA_SPIPICO_GPIO、GPIO_PIN_TYPE_STD);
GPIO_setQualificationMode (FLASH_SPIA_SPIPICO_GPIO、GPIO_QUAL_ASYNC);
GPIO_setPinConfig (FLASH_SPIA_SPIPOCI PIN_CONFIG);
GPIO_setPadConfig (FLASH_SPIA_SPI_CI_GPIO、GPIO_PIN_TYPE_STD);
GPIO_setQualificationMode (FLASH_SPIA_SPI_CI_GPIO、GPIO_QUAL_ASYNC);
GPIO_setPinConfig (FLASH_SPIA_SPICLK_PIN_CONFIG);
GPIO_setPadConfig (FLASH_SPIA_SPICLK_GPIO、GPIO_PIN_TYPE_STD);
GPIO_setQualificationMode (FLASH_SPIA_SPICLK_GPIO、GPIO_QUAL_ASYNC);
Flash_SPIA_init ();
FlashEnableWrite();
闪存擦除 (0x20、0);
FLASH_NVM Byte_Write(缓冲器,0、8);
FlashReadData (0、BufferA、8、0);
//
////////app_UPDATA_CHK();//FlashAPI. Example_Call
while (1)
{
}
}
}
void FLASH_SPIA_init (void)
{
//spi_disableModule (FLASH_SPIA_BASE);
SPI_setConfig (FLASH_SPIA_BASE、DEVICE_LSPCLK_FREQ、SPI_PROT_POL0PHA1、
SPI_MODE_CONTROLLER、11000000、8);
SPI_setPTESignalPolarity (FLASH_SPIA_BASE、SPI_Pte ACTIVE_LOW);
SPI_disableFIFO (FLASH_SPIA_BASE);
SPI_disableLoopback (FLASH_SPIA_BASE);
SPI_setEmulationMode (FLASH_SPIA_BASE、SPI_emulation_stop_midway);
//SPI_enableModule (FLASH_SPIA_BASE);
}