首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PIC32 SPI连接

PIC32 SPI连接
EN

Stack Overflow用户
提问于 2019-07-24 16:44:18
回答 1查看 212关注 0票数 0

我有自己的带有PIC32MX795F512L的电路板,我正在尝试将它连接到SPI (M95128-DRE)。我正在写入一个字节(0x80)并读取它(在5ms延迟之后),但读取结果总是0xFF。我是不是做错了什么?代码:

代码语言:javascript
复制
while(true)
{
  YB_posX = 0;
  uint8_t ENA= 0b00000110; //ROM write-enable instruction
  uint8_t INS1=0b00000010; //ROM write instruction
  uint8_t add1=0x00; //address byte 1
  uint8_t add2=0xee; //address byte 2
  uint8_t INS2=0b00000011; //ROM read instruction
  uint8_t INS3=0b00000101; //read status register
  uint8_t DIS = 0b00000100; //write disable sequence
  PLIB_SPI_BufferClear(SPI_ID_4);
  LATEbits.LATE9= 0 ; // EEPROM Chip Select
  PLIB_SPI_BufferWrite (SPI_ID_4,ENA); // Write Enable
  LATEbits.LATE9= 1 ; // EEPROM Chip Select 
  LATEbits.LATE9= 0 ; // EEPROM Chip Select
  PLIB_SPI_BufferWrite (SPI_ID_4,INS1);
  PLIB_SPI_BufferWrite (SPI_ID_4,add1);
  PLIB_SPI_BufferWrite (SPI_ID_4,add2);
  PLIB_SPI_BufferWrite (SPI_ID_4,0x80); //the previous five instructions writed byte 0x50 to address(1+2)
  delay_ms(1); 
  //<-----------------
  LATEbits.LATE9=1; 
  delay_ms(5); 
  LATEbits.LATE9=0; 
  delay_ms(1); 
  PLIB_SPI_BufferWrite (SPI_ID_4,INS2); //reading instruction 
  PLIB_SPI_BufferWrite (SPI_ID_4,add1);
  PLIB_SPI_BufferWrite (SPI_ID_4,add2); 
  PLIB_SPI_BufferWrite (SPI_ID_4,0x00); //this line is necessary since the ROM needs clock signal to clock out the data.
  while(!PLIB_SPI_TransmitBufferIsEmpty(SPI_ID_4))
    {} 
  YB_posX = PLIB_SPI_BufferRead(SPI_ID_4); 
  PLIB_SPI_ReceiverOverflowClear(SPI_ID_4); 
  delay_ms(1);
  LATEbits.LATE9=1; //end of reading sequence 
  printNumI(YB_posX, 350, 235, 1, ' ');
  delay_ms(1000); 
 }

Needless to mention that the SPI is initialised and opened at the start of main.



   int main(void) {
       /* Initialise all MPLAB Harmony modules, including application(s). */
       SYS_Initialize(NULL);
      DRV_SPI0_Initialize(); // SPI initialise 
       DRV_SPI_Open(SPI_ID_4,DRV_IO_INTENT_EXCLUSIVE );

我使用的是MPLABXv.5.05,X32 v2.10和和谐配置器,附件是SPI设置的快照。欢迎任何建议。

EN

回答 1

Stack Overflow用户

发布于 2020-04-13 20:13:06

问题出在和声本身。不幸的是,如果你从Harmony开始一个项目,就没有回头路了。你必须从头开始重写整个代码。

解决方案:修改spi示例\MPLAB\microchip\harmony\v2_06\apps\driver\spi\serial_eeprom

建议不要转移到Harmony v.3!大多数示例都没有在那里运行。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57178779

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档