在drv_spi.c中还有rt_hw_spi_device_attach函数。这个函数需要传入总线名称、设备名称、SPI的CS脚信息 这里将我们要使用的SPI设备绑定到SPI总线上。 (补坑1)在如下函数有数据传输之前都会调用config函数 /* send data then receive data from SPI device */rt_err_trt_spi_send_then_recv(structrt_spi_device...
一般SPI 总线命名原则为 spix, SPI 设备命名原则为 spixy ,如 spi10 表示挂载在 spi1 总线上的 0 号设备。 user_data 一般为 SPI 设备的 CS 引脚指针,进行数据传输时 SPI控制器会操作此引脚进行片选。 对于我们测试使用的 STM32 而言,有专门的挂载函数rt_hw_spi_device_attach: /* 参数 描述 bus_name ...
INIT_DEVICE_EXPORT(spi_device_attach);//导出到自动初始化 初始化spi struct rt_spi_device *spi_dev_icm20602 = RT_NULL; /spi设备句柄/ int icm20602_spi_device_init(void) { structrt_spi_configuration spi_cfg;spi_dev_icm20602= (struct rt_spi_device *)rt_device_find(ICM20602_SPI_DEVICE_NA...
INIT_APP_EXPORT(wifi_spi_device_init); rt_err_t rt_hw_wifi_init(const char *spi_device_name) { static struct rt_wlan_device wlan_sta, wlan_ap; rt_err_t ret; wifi_sta.wlan = &wlan_sta; wifi_sta.hspi = &rw007_spi; wifi_ap.wlan = &wlan_ap; wifi_ap.hspi = &rw007_spi;...
若使用rt-thread/bsp/stm32 目录下的 BSP 则可以使用下面的函数挂载 SPI 设备到总线: rt_err_trt_hw_spi_device_attach(constchar*bus_name,constchar*device_name,GPIO_TypeDef*cs_gpiox,uint16_tcs_gpio_pin); 下面的示例代码挂载 SPI FLASH W25Q128 到 SPI 总线: ...
spi_core.c中实现的函数主要有:rt_spi_bus_register(); rt_spi_bus_attach_device(); rt_spi_configure(); rt_spi_send_then_send(); rt_spi_send_then_recv(); rt_spi_transfer(); rt_spi_transfer_message(); rt_spi_take_bus(); rt_spi_release_bus(); rt_spi_take(); rt_spi_release(...
}INIT_APP_EXPORT(wifi_spi_device_init);staticvoidint_wifi_irq(void*p){ ((void)p);spi_wifi_isr(0); }voidspi_wifi_hw_init(void){rt_pin_attach_irq(RA_RW007_INT_BUSY_PIN, PIN_IRQ_MODE_FALLING, int_wifi_irq,0);rt_pin_irq_enable(RA_RW007_INT_BUSY_PIN, RT_TRUE); ...
spi_cs.GPIO_Pin = GPIO_PIN_12; // 这个要根据SPI设备名字 来 查找 设备 功能1: 把spi20挂到spi2上 res = rt_hw_spi_device_attach(TempModule_SPI_BUS_NAME, TempModule_DEVICE_NAME, spi_cs.GPIOx, spi_cs.GPIO_Pin); if( res == RT_EOK ) ...
2.1 初始化相关函数 在工程文件中,与 RT-Thread 初始化驱动文件如下: 其提供的函数有(对于 RT-Thread 中初始化相关的函数使用,在本文后面使用测试小节会有详细示例说明): /** * Probe SPI flash by SFUD(Serial Flash Universal Driver) driver library and though SPI device. ...
(1);}}//省略...intmain(void){//省略...rt_hw_spi_device_attach("spi1","spi10",GPIOA,GPIO_PIN_4);// CS 脚:PA4/* 使用 SFUD 探测 spi10 从设备,并将 spi10 连接的 flash 初始化为块设备,名称 W25Q128 */if(RT_NULL==rt_sfud_flash_probe("W25Q64","spi10")){return-RT_ERROR;}...