28377s 的SPI 例程GPIO使用自发自收,未使用GPIO,是否配置有误?另外配置SPI和GPIO使用查询发送数据,示波器没有数据且无时钟信号。 |
您所在的位置:网站首页 › 自发自收是什么意思 › 28377s 的SPI 例程GPIO使用自发自收,未使用GPIO,是否配置有误?另外配置SPI和GPIO使用查询发送数据,示波器没有数据且无时钟信号。 |
问题:28377的例程中SPI的GPIO使用为GPIO16 GPIO17 GPIO18 GPIO19 ,但是实际上SPI使用的都是这几个。调试过程中我使用了SPIA,设置GPIO58 、59、60、61。使用的是查询方式发送数据,SPITXBUF寄存器的值为我设定的值,但是使用示波器没有时钟信号和数据信号。 GpioCtrlRegs.GPBPUD.bit.GPIO58 = 0; // Enable pull-up on GPIO16 (SPISIMOA) GpioCtrlRegs.GPBPUD.bit.GPIO59 = 0; // Enable pull-up on GPIO17 (SPISOMIA) GpioCtrlRegs.GPBPUD.bit.GPIO60 = 0; // Enable pull-up on GPIO18 (***) GpioCtrlRegs.GPBPUD.bit.GPIO61 = 0; // Enable pull-up on GPIO19 (SPISTEA) GpioCtrlRegs.GPBQSEL2.bit.GPIO58 = 3; // Asynch input GPIO16 (SPISIMOA) GpioCtrlRegs.GPBQSEL2.bit.GPIO59 = 3; // Asynch input GPIO17 (SPISOMIA) GpioCtrlRegs.GPBQSEL2.bit.GPIO60 = 3; // Asynch input GPIO18 (***) GpioCtrlRegs.GPBQSEL2.bit.GPIO61 = 3; // Asynch input GPIO19 (SPISTEA) GpioCtrlRegs.GPBMUX2.bit.GPIO58 = 3; // Configure GPIO16 as SPISIMOA GpioCtrlRegs.GPBMUX2.bit.GPIO59 = 3; // Configure GPIO17 as SPISOMIA GpioCtrlRegs.GPBMUX2.bit.GPIO60 = 3; // Configure GPIO18 as *** GpioCtrlRegs.GPBMUX2.bit.GPIO61 = 3; // Configure GPIO19 as SPISTEA SPI配置 SpiaRegs.***.all =0x004F; //CLKPOLARITY=1,16bit SpiaRegs.***.all =0x0006; //CLK_PHASE=0,master SpiaRegs.SPIBRR.all =0x001F; SpiaRegs.***.all =0x00CF; //CLKPOLARITY=1,Reset,16bit SpiaRegs.SPIPRI.bit.FREE = 1; 主函数 void main(void){ Uint16 sdata; // send data Uint16 rdata; // received data InitSysCtrl(); InitSpiaGpio(); DINT; InitPieCtrl(); IER = 0x0000; IFR = 0x0000; InitPieVectTable(); spi_init(); // init SPI sdata = 0x1011; for(;;) { spi_xmit(sdata); DELAY_US(100000L); }} |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |