完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
大家好,请教个问题: 项目中使用外部flash,qspi接口,仿真发现在rt_components_board_init中分别进行两次bus_init,首先是调用了drv_qspi.c中的rt_hw_qspi_bus_init(),后面又调用了drv_spi.c中的rt_hw_spi_init()。问题是既然我使用了qspi接口,那么是不是没有必要调用rt_hw_spi_init()? |
|
相关推荐
2个回答
|
|
不会啊,只有开启了 BSP_USING_SPIx 的宏定义之后才会自动初始化 rt_hw_spi_init(),代码如下:
// 文件 drivers/drv_spi.c #ifdef RT_USING_SPI #if defined(BSP_USING_SPI1) || defined(BSP_USING_SPI2) || defined(BSP_USING_SPI3) || defined(BSP_USING_SPI4) || defined(BSP_USING_SPI5) || defined(BSP_USING_SPI6) int rt_hw_spi_init(void) { stm32_get_dma_info(); return rt_hw_spi_bus_init(); } INIT_BOARD_EXPORT(rt_hw_spi_init); #endif /* BSP_USING_SPI1 || BSP_USING_SPI2 || BSP_USING_SPI3 || BSP_USING_SPI4 || BSP_USING_SPI5 */ #endif /* RT_USING_SPI */ 同样的只有开启了宏 BSP_USING_QSPI 和宏 RT_USING_QSPI,才会自动初始化 rt_hw_qspi_bus_init(),代码如下: #ifdef RT_USING_QSPI #define DRV_DEBUG #define LOG_TAG "drv.qspi" #include #if defined(BSP_USING_QSPI) static int rt_hw_qspi_bus_init(void) { return stm32_qspi_register_bus(&_stm32_qspi_bus, "qspi1"); } INIT_BOARD_EXPORT(rt_hw_qspi_bus_init); #endif /* BSP_USING_QSPI */ #endif /* RT_USING_QSPI */ 你看看你的工程是不是把即配置了 SPI 也配置了 QSPI。 |
|
|
|
您好,是我弄错了,我是为了在drv_spi.c中collapse block方便,所以把#ifdef RT_USING_SPI和#if defined(BSP_USING_SPI1)……都注释掉了。
感谢您! |
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
1056 浏览 0 评论
AI模型部署边缘设备的奇妙之旅:如何在边缘端部署OpenCV
3545 浏览 0 评论
tms320280021 adc采样波形,为什么adc采样频率上来波形就不好了?
1482 浏览 0 评论
2181 浏览 0 评论
1663 浏览 0 评论
75382 浏览 21 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-29 02:10 , Processed in 0.658336 second(s), Total 72, Slave 56 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号