完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
向内核注册的操作
device->init = RT_NULL; device->open = RT_NULL; device->close = RT_NULL; device->read = _spi_bus_device_read; device->write = _spi_bus_device_write; device->control = _spi_bus_device_control; 其中的control函数 static rt_err_t _spi_bus_device_control(rt_device_t dev, int cmd, void *args) { /* TODO: add control command handle */ switch (cmd) { case 0: /* set device */ break; case 1: break; } return RT_EOK; } 其中init,open,close函数没有注册,control函数也没有进行填充 |
|
相关推荐
2个回答
|
|
在 SPI 驱动中,使用 rt_hw_spi_init 进行 SPI 总线的注册,然后使用 rt_hw_spi_device_attach 进行 SPI 设备的注册,使用 rt_spi_configure 对 SPI 的通讯参数进行配置,使用 rt_spi_send 进行发送。
SPI 的与串口的不太一样,串口注册驱动设备后,使用 open 进行通讯参数的配置。 SPI 驱动的注册流程如下 rt_hw_spi_init /* drivers/drv_spi.c */ |-> stm32_get_dma_info /* drivers/drv_spi.c */ |-> rt_hw_spi_bus_init /* rt_hw_spi_bus_init */ |-> rt_spi_bus_register /* rt-thread/components/drivers/spi/spi_core.c */ |-> rt_spi_bus_device_init /* rt-thread/components/drivers/spi/spi_dev.c */ |-> rt_device_register /* rt-thread/src/device.c */ |-> rt_object_init /* rt-thread/src/object.c */ rt_hw_spi_device_attach |-> rt_spi_bus_attach_device |-> rt_device_find |-> rt_spidev_device_init |-> rt_device_register static const struct rt_spi_ops stm_spi_ops = { .configure = spi_configure, .xfer = spixfer, }; rt_spi_configure /* rt-thread/components/drivers/spi/spi_core.c */ |-> device->bus->ops->configure /* rt-thread/components/drivers/spi/spi_core.c */ |-> spi_configure /* drivers/drv_spi.c */ |-> stm32_spi_init /* drivers/drv_spi.c */ |-> HAL_SPI_Init /* libraries/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.c */ |-> HAL_SPI_MspInit /* 硬件管脚复用初始化 cubemx/Src/stm32f4xx_hal |
|
|
|
可能是因为一个 spi 总线可以挂载多个 spi 设备
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
1080 浏览 0 评论
AI模型部署边缘设备的奇妙之旅:如何在边缘端部署OpenCV
3694 浏览 0 评论
tms320280021 adc采样波形,为什么adc采样频率上来波形就不好了?
1501 浏览 0 评论
2221 浏览 0 评论
1686 浏览 0 评论
75438 浏览 21 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-29 17:39 , Processed in 0.821119 second(s), Total 71, Slave 55 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号