Toggle navigation
首页
问答
文章
积分商城
专家
专区
更多专区...
文档中心
返回主站
搜索
提问
会员
中心
登录
注册
SPI
5
spi通信时钟线不正常
发布于 2022-05-05 22:10:23 浏览:475
订阅该版
调试单步运行这个函数的到波形如下: ```c rt_inline rt_size_t rt_spi_send(struct rt_spi_device *device, const void *send_buf, rt_size_t length) { //发送一次数据 return rt_spi_transfer(device, send_buf, RT_NULL, length); } ```  请问时钟线波形为什么不对呢?
查看更多
5
个回答
默认排序
按发布时间排序
crystal266
2022-05-06
嵌入式
用的什么芯片?stm32 使用 spi 需要使用 CubeMX 对 spi 的 CLK、MISO、MOSI 三个引脚的复用功能进行配置,配置后会生成 `HAL_SPI_MspInit` 函数,这个函数对 spi 的引脚的复用功能进行了初始化。在使用时使用方法如下,也可以参考文章 [使用RT-Thread studio开启SPI框架驱动OLED](https://club.rt-thread.org/ask/question/365b0e76ddd49b3f.html) 和下面的代码对照一下,看看是不是有不同的地方 ```c { struct rt_spi_device* spi_dev; struct rt_spi_configuration cfg; __HAL_RCC_GPIOA_CLK_ENABLE(); // 使能时钟 //设备挂载到SPI总线,抽象为 spi10 设备,同时使用时还需进行 rt_spi_configure rt_hw_spi_device_attach("spi1", "spi10", GPIOA, GPIO_PIN_15); spi_dev= (struct rt_spi_device *)rt_device_find("spi10"); if (!spi_dev) { rt_kprintf("spi sample run failed! can't find %s device!\n", "spi10"); } else { // owner必须配置,因为默认为空,为空时无法进行初始化操作 spi_dev->bus->owner = spi_dev; // 必须!!! // 配置spi cfg.data_width = 8; cfg.mode = RT_SPI_MASTER | RT_SPI_MODE_3 | RT_SPI_MSB; // 主机,模式0,高位在前 cfg.max_hz = 20 * 1000 * 1000; // SPI 接口时钟频率 rt_spi_configure(spi_dev, &cfg); // 此时才进行MspInit相关的时钟及IO口初始化 } } ```
aozima
2022-05-05
调网络不抓包,调I2C等时序不上逻辑分析仪,就像电工不用万用表!多用整理的好的文字,比截图更省流量,还能在整理过程中思考。
SPI时钟多少?逻辑分析仪采样率多少?请设置8倍或以上采样率。 建议以CS为触发条件
paul096
2022-05-05
日拱一卒 功不唐捐
其他参数不知道怎么配置
lchnu
2022-05-06
Witness, Understand, Skill
不知道你的SPI的`HAL_SPI_MspInit`部分的代码是否配置正确?如果是基于CSP新建的工程,可以依次检查: - 是否通过cubemx配置了正确的spi口,并且将自动生成的代码`HAL_SPI_MspInit`复制到了board.c中。 - CS线是否配置好了?即通过`rt_hw_spi_device_attach`正确使能了spi device? 如,下方的GPIOA PIN0只是做个示例而已: ```c __HAL_RCC_GPIOA_CLK_ENABLE(); rt_hw_spi_device_attach("spi2", XX_SPI_DEVICE, GPIOA, GPIO_PIN_0); ``` - CS线不要配置成hardware nss形式,否则无法通信。相当于,`HAL_SPI_MspInit`函数中,只需要配置SCK,MISO,MOSI,不要配置NSS线。我看lz上方发出的波形,没看到有效的CS,clock也似乎有些问题。 - `SPI_MODE_0`依次修改为0~3进行测试。当然,更好的思路是去查看所接的硬件设备支持的模式。 祝顺利!
Assert
2022-05-06
这家伙很懒,什么也没写!
配置时不要使用 NSS,使用普通IO CS片选信号
撰写答案
登录
注册新账号
关注者
0
被浏览
475
关于作者
paul096
日拱一卒 功不唐捐
提问
11
回答
6
被采纳
0
关注TA
发私信
相关问题
1
BBB的SPI驱动
2
求个SPI上挂两个或多个设备的使用例子
3
SPI设备有个bug
4
spi flash 的fatfs使用一段时间后读写文件出现故障
5
SPI驱动
6
请教rt_spi_configure函数理解
7
SPI FLASH挂载的问题
8
SPI-FLASH 文件系统 SPIFFS
9
求助一个完整的 spi flash 驱动
10
关于同时使用文件系统与SPI FLASH的问题
推荐文章
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
ulog组件多端绑定的demo案例
2
记录rt-thread消息队列的调试方法
3
AT32的ADC使用
4
aht10 终端:The aht10 is under an abnormal status
5
github高阶加速,速度可达带宽峰值,测试到146Mbit/s
热门标签
RT-Thread Studio
串口
LWIP
Env
AT
SPI
Bootloader
FinSH
ART-Pi
CAN总线
Hardfault
USB
文件系统
RT-Thread
DMA
SCons
线程
MQTT
RT-Thread Nano
STM32
RTC
rt-smart
ESP8266
flash
ota在线升级
WIZnet_W5500
FAL
I2C
packages_软件包
UART
cubemx
freemodbus
潘多拉开发板_Pandora
定时器
BSP
PWM
ADC
socket
中断
rt_mq_消息队列_msg_queue
keil_MDK
SDIO
Debug
AB32VG1
MicroPython
C++_cpp
编译报错
msh
ulog
QEMU
本月问答贡献
出出啊
1500
个答案
338
次被采纳
小小李sunny
1390
个答案
276
次被采纳
张世争
715
个答案
157
次被采纳
crystal266
522
个答案
153
次被采纳
whj467467222
1216
个答案
146
次被采纳
本月文章贡献
出出啊
1
篇文章
12
次点赞
小小李sunny
1
篇文章
1
次点赞
张世争
2
篇文章
2
次点赞
crystal266
2
篇文章
5
次点赞
whj467467222
2
篇文章
1
次点赞
回到
顶部
发布
问题
分享
好友
手机
浏览
扫码手机浏览
投诉
建议
回到
底部