请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
器件型号:TMS320F28027 嘿、我正在尝试为 Picolo F28027配置非 FIFO 模式下的 SPI、但似乎从未产生中断、我配置为从模式、我的主设备是 Arduino Mega、连续在循环中发送数据。 我也尝试配置中断。
这是代码
#include "DSP28x_Project.h" 中断 void SPI_RC_ISR (); void main () { InitSysCtrl(); /*中断配置*/ Dint; InitPieCtrl(); IER = 0x0000; IFR = 0x0000; InitPieVectTable(); EALLOW; PieVectTable.SPIRXINTA =&SPI_RC_ISR; PieCtrlRegs.PIECTRL.bit.ENPIE =1; PieCtrlRegs.PIEIER1.bit.INTx1 = 1;//表示螺旋 PieCtrlRegs.PIECTRL.bit.PIEVECT= 0x0D90; IER |= M_INT6;// spirx 的 CPU 中断6 EINT; ERTM; /* GPIO 上拉使能*/ GpioCtrlRegs.GPAPUD.bit.GPIO16=0; GpioCtrlRegs.GPAPUD.bit.GPIO17 = 0; GpioCtrlRegs.GPAPUD.bit.GPIO18=0; GpioCtrlRegs.GPAPUD.bit.GPIO19 = 0; /*资格选择*/ GpioCtrlRegs.GPAQSEL2.bit.GPIO16=3; GpioCtrlRegs.GPAQSEL2.bit.GPIO17 = 3; GpioCtrlRegs.GPAQSEL2.bit.GPIO18 = 3; GpioCtrlRegs.GPAQSEL2.bit.GPIO19 = 3; /*在 SPI 模式下设置 GPIO 引脚*/ GpioCtrlRegs.GPAMUX2.bit.GPIO16=1; GpioCtrlRegs.GPAMUX2.bit.GPIO17 = 1; GpioCtrlRegs.GPAMUX2.bit.GPIO18=1; GpioCtrlRegs.GPAMUX2.bit.GPIO19=1; /* SPI 配置*/ SpiaRegs.SPICCR.bit.SPISWRESET = 0;//复位 SpiaRegs.SPICTL.bit.MASTER_SLAVE = 0;//从模式 SpiaRegs.SPICCR.bit.CLKPOLARITY = 0;//数据输出在上升和下降 SpiaRegs.SPICTL.bit.CLK_PHASE = 0;//无延迟 //SpiaRegs.SPIBRR = 127;//最低波特率 SpiaRegs.SPICCR.bit.SPICHAR = 7;// 8位字 SpiaRegs.SPISTS.bit.overoverover_flag = 0; SpiaRegs.SPISTS.bit.INT_FLAG = 0; SpiaRegs.SPIPRI.bit.TRIWIRE = 0; SpiaRegs.SPIFFRX.bit.RXFFIENA=0; SpiaRegs.SPICTL.bit.OVERRUNINTENA=1;//启用接收器溢出 SpiaRegs.SPICTL.bit.SPIINTENA=1;// TX 和 Rx 中断使能 SpiaRegs.SPICCR.bit.SPISWRESET = 1;//从复位中释放 /*数据传输*/ uint16_t DATA_Rx = 0; // SpiaRegs.SPICTL.bit.Talk = 0;//传输关闭 while (SpiaRegs.SPISTS.bit.INT_flag!=1);//等待数据接收 DATA_Rx = SpiaRegs.SPIRXBUF; while (1); } 中断空 SPI_RC_ISR () { int DATA_Rx; DATA_Rx = SpiaRegs.SPIRXBUF; }