
使用SPI_Transmit发送指令来读取器件ID,但SPI_Receive收到的数据与SPI_Transmit一样,ID1[0]=0x81,ID1[1]=0x00,ID1[2]=0x00; uint8_t cmd[3] = {0x81,0x00,0x00}; uint8_t ID1[3] = {0x00,0x00,0x00}; uint16_t DACX61416_ID = 0; //0x81=23-16位,R/W读写位(1x)+DEVICEID Register 01h SPI1_1_NSS_Enable(); /* Send the read ID command */ HAL_SPI_Transmit(&hspi1, cmd, 3, DACx1416_Timeout_3); /* Reception of the data */ HAL_SPI_Receive(&hspi1,ID1, 3, DACx1416_Timeout_3); SPI1_1_NSS_Disable(); printf("%x%x\n",ID1[1],ID1[2]); |
猜测数据可能是卡在移位寄存器中,不清楚是什么原因? |
楼主的截图信息和传统的SPI描述不一样啊。 ST的HAL库有传统SPI例程,建议你跑一下,再比较看看。 |