搜索

[DSP] 关于DSP28335通过SPI使用外接键盘遇见的问题

[复制链接]
469|2
 楼主 | 2020-6-24 10:52 | 显示全部楼层 ||阅读模式
外接键盘使用74ls165来扩展8个按键,两个74HC595驱动数码管显示,目前spi配置程序及主程序如下:



SpiaRegs.SPICCR.all =0x0087;         // Reset on, rising edge, 16-bit char bits

SpiaRegs.SPICTL.all =0x000E;       // Enable master mode, normal phase,

                                         // enable talk, and SPI int disabled.

SpiaRegs.SPIBRR =0x0079;

SpiaRegs.SPICCR.all =0x008F;    // Relinquish SPI from Reset

SpiaRegs.SPIPRI.bit.FREE = 1;         // Set so breakpoints don't disturb xmission

SpiaRegs.SPIFFTX.all=0xE040;

SpiaRegs.SPIFFRX.all=0x204f;

SpiaRegs.SPIFFCT.all=0x0;

for(;;)

   {

  SpiaRegs.SPITXBUF = 0x00; //0x1F5B;

  GpioDataRegs.GPADAT.bit.GPIO19 = 0;

  DELAY_US(10); //delay_loop();

  GpioDataRegs.GPADAT.bit.GPIO19 = 1;



  while(SpiaRegs.SPIFFRX.bit.RXFFST !=1) { }

  sdata = SpiaRegs.SPIRXBUF<<8;

  SpiaRegs.SPITXBUF = 0x00;

  while(SpiaRegs.SPIFFRX.bit.RXFFST !=1) { }

  rdata= SpiaRegs.SPIRXBUF;

  xmy= sdata + rdata;

   }

}

能够正常发送想要显示的数到数码管上,但是全速运行时,按键在按下后从CCS中看SPIRXBUF寄存器一直显示是0xFFFF没有变化,RXFFST也没有显示有数据接收到。单步运行时,在DSP向spi发送一个数的同时,RXFFST会显示1,此时SPIRXBUF的值是0xFFFF,通过按下按键时用示波器测量SPI的SOMI引脚是有高低电平变化有数据的,但是为什么在SPIRXBUF中一直是0xFFFF,困扰很久了一直解决不了,恳请帮帮忙!万分感谢!

使用特权

评论回复
 楼主 | 2020-6-24 15:40 | 显示全部楼层
求助

使用特权

评论回复
| 2020-6-24 23:45 | 显示全部楼层
应该是SPI配置有问题   不行用IO口模拟  一个时钟 一个输入

使用特权

评论回复
扫描二维码,随时随地手机跟帖
您需要登录后才可以回帖 登录 | 注册

本版积分规则

我要发帖 投诉建议 创建版块 申请版主

快速回复

您需要登录后才可以回帖
登录 | 注册
高级模式

论坛热帖

在线客服 快速回复 返回顶部 返回列表