Toggle navigation
首页
问答
文章
积分商城
专家
专区
更多专区...
文档中心
返回主站
搜索
提问
会员
中心
登录
注册
SPI
求个SPI上挂两个或多个设备的使用例子
发布于 2014-12-03 11:17:38 浏览:4291
订阅该版
RT,或者能在这里大概给我说说如何使用,我用的平台是STM32
查看更多
9
个回答
默认排序
按发布时间排序
修行墨者
2014-12-07
这家伙很懒,什么也没写!
我试了两三天也搞不定,没明白。用片选cs挂在spi_bus上,系统会出错。可能是总线驱动注册自己没有搞明白。 现在用一个折中的办法,注册多个用SPI的设备,用bus的设备锁住bus,现在个人觉得还方便点,因为要控制的不止一个CS脚,以后深入了解了再搞片选挂SPI_bus上。
Zitral
2014-12-16
这家伙很懒,什么也没写!
[quote]我试了两三天也搞不定,没明白。用片选cs挂在spi_bus上,系统会出错。可能是总线驱动注册自己没有搞明白。 现在用一个折中的办法,注册多个用SPI的设备,用bus的设备锁住bus,现在个人觉得还方便点,因为要控制的不止一个CS脚,以后深入了解了再搞片选挂SPI_bus上。[/quote]可否观摩一下代码?
bernard
2014-12-16
这家伙很懒,什么也没写!
SPI控制器是一个SPI bus设备,上面挂的一个SPI设备是一个SPI device。 所以多个SPI设备应该是多个SPI device。关键是在驱动上面,上层相当于使用不同的SPI device。
Zitral
2014-12-16
这家伙很懒,什么也没写!
> SPI控制器是一个SPI bus设备,上面挂的一个SPI设备是一个SPI device。 所以多个SPI设备应该是多个SPI device。关键是在驱动上面,上层相当于使用不同的SPI device。 ```c void rt_hw_spi_init(void) { static struct stm32_spi_bus stm32_spi2; static struct stm32_spi_bus stm32_spi3; /* register spi bus */ stm32_spi_register(SPI2,&stm32_spi2,"spi2"); /* attach cs */ /*spi_oled : PC8*/ { static struct rt_spi_device spi2_device1; static struct stm32_spi_cs spi2_cs1; spi2_cs1.GPIOx = GPIOC; spi2_cs1.GPIO_Pin = GPIO_Pin_8; rt_spi_bus_attach_device(&spi2_device1, "spi21", "spi2", (void*)&spi2_cs1); } /*spi_FONT : PB12*/ { static struct rt_spi_device spi2_device2; static struct stm32_spi_cs spi2_cs2; spi2_cs2.GPIOx = GPIOB; spi2_cs2.GPIO_Pin = GPIO_Pin_12; rt_spi_bus_attach_device(&spi2_device2, "spi22", "spi2", (void*)&spi2_cs2); } /* register spi bus */ stm32_spi_register(SPI3,&stm32_spi3,"spi3"); /* attach cs */ /*spi_fc8080 : PC8*/ { static struct rt_spi_device spi3_device1; static struct stm32_spi_cs spi3_cs1; spi3_cs1.GPIOx = GPIOA; spi3_cs1.GPIO_Pin = GPIO_Pin_15; rt_spi_bus_attach_device(&spi3_device1, "spi31", "spi3", (void*)&spi3_cs1); } } ``` 在SPI2上有两个device,然后使用的时候,我调用的是rt_spi_take,然后rt_spi_release,是否正确?
aozima
2014-12-16
调网络不抓包,调I2C等时序不上逻辑分析仪,就像电工不用万用表!
>>我调用的是rt_spi_take,然后rt_spi_release,是否正确? 一般使用 rt_spi_send/recv 等API就足够了。 只有很复杂的情况下,如SD卡,才用 rt_spi_take/release + xfer 完成功能。
james_s
2021-04-13
这家伙很懒,什么也没写!
设定两个推挽输出的GPIO, 分别控制两个设备的cs就可以了
kid
2021-06-02
这家伙很懒,什么也没写!
我用 一个 spi 总线 挂了一个flash , 一个屏幕, 正常使用, 两个设备操作在两个线程里面,目前没遇到过问题
XIAO ER
2022-09-05
这家伙很懒,什么也没写!
1.同一总线挂载多个设备,设备名要不一样,后续上层组件都会用到这个设备名来定位,这个就是官方文档对新手不是很友好地方,不直接明确说明。
撰写答案
登录
注册新账号
关注者
0
被浏览
4.3k
关于作者
Zitral
这家伙很懒,什么也没写!
提问
13
回答
19
被采纳
0
关注TA
发私信
相关问题
1
BBB的SPI驱动
2
SPI设备有个bug
3
spi flash 的fatfs使用一段时间后读写文件出现故障
4
SPI驱动
5
请教rt_spi_configure函数理解
6
SPI FLASH挂载的问题
7
SPI-FLASH 文件系统 SPIFFS
8
求助一个完整的 spi flash 驱动
9
关于同时使用文件系统与SPI FLASH的问题
10
RTT 可以移植到dsPIC单片机上么?
推荐文章
1
RT-Thread应用项目汇总
2
玩转RT-Thread系列教程
3
机器人操作系统 (ROS2) 和 RT-Thread 通信
4
五分钟玩转RT-Thread新社区
5
国产MCU移植系列教程汇总,欢迎查看!
6
【技术三千问】之《玩转ART-Pi》,看这篇就够了!干货汇总
7
关于STM32H7开发板上使用SDIO接口驱动SD卡挂载文件系统的问题总结
8
STM32的“GPU”——DMA2D实例详解
9
RT-Thread隐藏的宝藏之completion
10
【ART-PI】RT-Thread 开启RTC 与 Alarm组件
最新文章
1
如何用Ubuntu qemu跑zephyr_polling的蓝牙
2
分享一种很简单的不阻塞TCP发送方法
3
stm32c86使用串口3时无法正常读到中断的数据
4
如何用ART-PI跑zephyr_polling的蓝牙
5
掌上单片机实验室 – 基于 RTT 框架的第一个应用
热门标签
RT-Thread Studio
串口
LWIP
Env
SPI
AT
FinSH
Bootloader
CAN总线
ART-Pi
Hardfault
文件系统
USB
DMA
RT-Thread
线程
SCons
RT-Thread Nano
stm32
MQTT
ESP8266
ota
UART
RTC
freemodbus
rtthread
rt-smart
packages_软件包
I2C
WIZnet_W5500
flash
cubemx
FAL
定时器
BSP
AB32VG1
PWM
ADC
SDIO
msh
socket
LVGL
keil
Debug
C++_cpp
中断
编译报错
SFUD
SMP
MicroPython
本月问答贡献
出出啊
1431
个答案
317
次被采纳
小小李sunny
1342
个答案
267
次被采纳
crystal266
505
个答案
149
次被采纳
whj467467222
1212
个答案
142
次被采纳
张世争
590
个答案
135
次被采纳
本月文章贡献
出出啊
3
篇文章
5
次点赞
小小李sunny
1
篇文章
1
次点赞
crystal266
1
篇文章
3
次点赞
whj467467222
2
篇文章
4
次点赞
张世争
6
篇文章
14
次点赞
回到
顶部
发布
问题
分享
好友
手机
浏览
扫码手机浏览
投诉
建议
回到
底部