按照 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) ; 这一个寄存器有什么作用? 手册上没有提, 请大佬解答