完善资料让更多小伙伴认识你,还能领取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)……都注释掉了。
感谢您! |
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
1033 浏览 0 评论
2877 浏览 0 评论
图腾柱PFC无法上升至400V,且电感电流为正弦波形,但是幅值极小
9386 浏览 0 评论
飞凌嵌入式ElfBoard-Vim编辑器之静态链接和动态链接
2898 浏览 0 评论
使用 LinkBoy 将程序导出为 C 语言代码并烧录至 Arduino ESP32 开发板
2302 浏览 1 评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-2 01:02 , Processed in 0.682749 second(s), Total 74, Slave 57 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
1220