28377s 的SPI 例程GPIO使用自发自收,未使用GPIO,是否配置有误?另外配置SPI和GPIO使用查询发送数据,示波器没有数据且无时钟信号。

您所在的位置:网站首页 自发自收是什么意思 28377s 的SPI 例程GPIO使用自发自收,未使用GPIO,是否配置有误?另外配置SPI和GPIO使用查询发送数据,示波器没有数据且无时钟信号。

28377s 的SPI 例程GPIO使用自发自收,未使用GPIO,是否配置有误?另外配置SPI和GPIO使用查询发送数据,示波器没有数据且无时钟信号。

2024-06-23 17:10| 来源: 网络整理| 查看: 265

问题: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