按照WM_W800_SDK_DEMO使用指導操作即可。
WM_W800_SDK_DEMO使用指導_V1.5.pdf
STM32_SOC_TEST_SLAVE_SPI.rar
我沒有32的板子,只有802 哭暈 自己一天了沒改出來,我對照的32的先發了8位的0x91,然後發送了一個cmd,您給看一下這個demo對嗎
int master_spi_send_data(int clk, int type)
{
int *p;
int i;
char *cmd_buf = NULL;
char *tx_buf = NULL;
/*MASTER SPI configuratioin*/
wm_spi_cs_config(WM_IO_PB_14);
wm_spi_ck_config(WM_IO_PB_15);
wm_spi_di_config(WM_IO_PB_16);
wm_spi_do_config(WM_IO_PB_17);
printf("\r\n");
if (clk < 0)
{
clk = 1000000; /* default 1M */
}
if (-1 == type)
{
type = 0;
}
if (0 == type)
{
tls_spi_trans_type(0);
}
else
{
tls_spi_trans_type(2);
}
tls_spi_setup(TLS_SPI_MODE_0, TLS_SPI_CS_LOW, clk);
cmd_buf = tls_mem_alloc(1);
memset(cmd_buf, 0, 1);
cmd_buf[0]=0x91;
char *buf = NULL;
buf = tls_mem_alloc(32);
printf("tx start cmdrn");
memset(buf, 0, sizeof(buf));
buf[0] = 0x5A;
buf[1] = 0x00;
buf[2] = 0x05;
buf[3] = 0x01;
buf[4] = 0x60;
// printf("SPI Master send 1500 byte, modeA, little endian\n");
tls_spi_write((u8 *)cmd_buf, 1);
printf("cmd=%02x\n",cmd_buf[0]);
tls_spi_write((u8 *)buf, (buf[1] << 8) | buf[2]);
tls_mem_free(cmd_buf);
tls_mem_free(tx_buf);
tls_mem_free(buf);
printf("after send\n");
return WM_SUCCESS;
}
RI指令用戶手冊.pdf
hspi的問題目前沒有解決,從機收到數據後發送數據不正常,miso沒有任何反應,這是什麼原因? 有什麼發送條件嗎?我使用的是w802的從機demo,裡面的tls_hspi_tx_data((char *)tx_buf, HSPI_BUF_SIZE);函數,但是發送不成功,主機提供了clk, tls_reg_write32(HR_SDIO_RXEN, 0x01);這一個寄存器有什麼作用?手冊上沒有提,請大佬解答