你好,
我可以使用SPS_DEVICE项目使用UART进行通信,但我想使用SPI。
这样做是什么措施?我取消关注#define cfg_hci_spi并注释出#define cfg_hci_uart在da14580_stack.h:
//#定义cfg_hci_uart
#define cfg_hci_spi.
在Arch_System.c:
#ifdef cfg_hci_spi.
//创建SPI外部接口API
const struct rwip_eif_api spi_api =
{
spi_hci_read_func,
spi_hci_write_func,
spi_hci_flow_on_func,
spi_hci_flow_off_func,
};
#万一
我想认为它会使用define(cfg_hci_spi)启用。但是没有映射SPI定义的映射端口引脚,因此我在perih_setup.c中定义:
gpio_configurepin(spi1_gpio_port,spi1_clk_pin,input_pullup,pid_spi_clk,false);
gpio_configurepin(spi1_gpio_port,spi1_cs_pin,输出,pid_spi_en,false);
gpio_configurepin(spi1_gpio_port,spi1_do_pin,输出,pid_spi_do,false);
gpio_configurepin(spi1_gpio_port,spi1_di_pin,input_pulldown,pid_spi_di,false);
gpio_configurepin(spi1_gpio_port,spi1_dready_pin,input_pulldown,pid_gpio,false);
所以我想我必须更换
UART_SPS_INIT(UART_SPS_BAUDRATE,3);//在UART中定义的精确波特率
经过
spi_hci_slave_init();
是正确的方法吗?是否可以准确地指示使用SPI而不是UART的所有更改。
谢谢
问候,
乔纳森
其他人可能会证明我错了,但我认为你不想用HCI的东西弄乱。这是为了在应用程序和BLE堆栈之间具有HCI(如使用对话框堆栈和无线电的外部微型)。你只是想用SPI结束替换UART PHY结束,对吗?app_sps_scheduler.c有ble_push()和uart_push()和ble_pull()/ uart_pull()的东西。这是BLE进入UART的地方,反之亦然。您需要初始化SPI接口而不是UART(set_pad_functions()中的periph_setup.c),然后更改app_sps_scheduler.c中的内容以进行SPI读取和写入而不是UART。
嗨jonathanratelle,
DSPS项目没有使用SPI接口的任何实现。使用DSP使用SPI是一个完全不同的项目,而不仅仅是不同的配置。joe.brackman是正确的,你试图改变是HCI接口的界面。如同善良的是joe所说,您需要用spi替换UART接口,如果您想要流量控制,您将必须以某种方式通过软件实现它。它是一个完全不同的设计。
谢谢mt_dialog.
谢谢你的回复,我想我会把这个保持为UART。