完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
我尝试挂载一个SPI设备,此前我并没有接触。模模糊糊搜了发现没有准确的导向。我修改了Kconfig,增加了SPI2这一项,然后MSP.c文件也有SPI的驱动。 于是的话,我定义个configuration结构体,和device设备结构体,不过当我挂载的时候,不管怎么样,我感觉也奇怪,明明是char *。而GPIO是GPIO_TYPEDEF,就不匹配。 我感觉我有点迷糊了,闯入了一片未知区域。希望大佬点醒我,该去如何的学。然后当前最主要的问题,还是如何挂载一个SPI设备。 当然,还要,那个SPI.h文件,还要I2C文件,如何加入,我看了一些博客,最前面的介绍还是能看懂,但是贴出的完整代码有drvI2C文件。呃呃,我有些困惑,后面的demo感觉就无法跟上了,当然我想问如何加入这些,作者貌似配置了env工具,和一些Kconfig,说真的,env那个我还真不熟,初学的时候,我尝试添加一些配置,发现有一些bug。emmm,我希望学会这个,然后在后面的加入一个WIFI模块或者其他组件。 希望有指引一下,这样能帮我走很多弯路,现在也有些急躁了,作为一个学生,了解的的确不是很多,贸然闯入。 |
|
相关推荐
5个回答
|
|
你图片中箭头指的地方,那个是cubemx生成的代码,不用改。
|
|
|
|
|
|
|
|
你把这两个函数弄混了吧
rt_err_t rt_spi_bus_attach_device(struct rt_spi_device *device, const char *name, const char *bus_name, void *user_data) rt_err_t rt_hw_spi_device_attach(const char *bus_name, const char *device_name, GPIO_TypeDef* cs_gpiox, uint16_t cs_gpio_pin); |
|
|
|
在RT-Studio中使用Cube MX的过程,我不熟悉。但是,相关硬件驱动部分,我是按照如下步骤处理:
使用CubeMX生成一个目标芯片的ioc工程,配置相关引脚成SPIx,生成工程。 按照官方驱动的过程,使用rt_spi_bus_attach_device挂载对应的SPI设备到SPI Bus上。 打开board.c,将第一步中的HAL_SPI_MspInit函数内容复制到board.c的最后空白处。如果程序中需要对相关引脚进行解除初始化,则将对应的HAL_SPI_MspDeInit也复制到board.c中。 其实,你可以这么理解RTT的device框架:(\rightarrow看成向右的箭头即可) RTT APP $\rightarrow$ RTT Device driver (device.c) $\rightarrow$ RTT Peripheral driver (drv_spi.c) $\rightarrow$ STM32 HAL SPI driver (HAL functions) $\rightarrow$ Specified PIN configuration (HAL_SPI_MspInit) 只有在上述过程的最后一步,将相关引脚配置成SPI模式,才能依次从底层到APP,完成SPI数据流驱动到SPI框架的对接。 |
|
|
|
很抱歉,我的回复中,函数写错了,应该是使用rt_hw_spi_device_attach挂载设备。
如 rt_hw_spi_device_attach("spi3", "SPI_ADC", GPIOA, GPIO_PIN_15); |
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
AI模型部署边缘设备的奇妙之旅:如何在边缘端部署OpenCV
1559 浏览 0 评论
tms320280021 adc采样波形,为什么adc采样频率上来波形就不好了?
1108 浏览 0 评论
1550 浏览 0 评论
1399 浏览 0 评论
1042 浏览 0 评论
74623 浏览 21 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-19 13:25 , Processed in 0.729634 second(s), Total 79, Slave 62 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号