Toggle navigation
首页
问答
文章
积分商城
专家
专区
更多专区...
文档中心
返回主站
搜索
提问
会员
中心
登录
注册
SPI
5
spi通信时钟线不正常
发布于 2022-05-05 22:10:23 浏览:923
订阅该版
调试单步运行这个函数的到波形如下: ```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); } ``` ![image.png](https://oss-club.rt-thread.org/uploads/20220505/220becc8437e5fc570a6763124d6cc8a.png) 请问时钟线波形为什么不对呢?
查看更多
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
被浏览
923
关于作者
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
国产MCU移植系列教程汇总,欢迎查看!
4
机器人操作系统 (ROS2) 和 RT-Thread 通信
5
五分钟玩转RT-Thread新社区
6
【技术三千问】之《玩转ART-Pi》,看这篇就够了!干货汇总
7
关于STM32H7开发板上使用SDIO接口驱动SD卡挂载文件系统的问题总结
8
STM32的“GPU”——DMA2D实例详解
9
RT-Thread隐藏的宝藏之completion
10
【ART-PI】RT-Thread 开启RTC 与 Alarm组件
最新文章
1
使用百度AI助手辅助编写一个rt-thread下的ONVIF设备发现功能的功能代码
2
RT-Thread 发布 EtherKit开源以太网硬件!
3
rt-thread使用cherryusb实现虚拟串口
4
《C++20 图形界面程序:速度与渲染效率的双重优化秘籍》
5
《原子操作:程序世界里的“最小魔法单位”解析》
热门标签
RT-Thread Studio
串口
Env
LWIP
SPI
AT
Bootloader
Hardfault
CAN总线
FinSH
ART-Pi
USB
DMA
文件系统
RT-Thread
SCons
RT-Thread Nano
线程
MQTT
STM32
RTC
FAL
rt-smart
ESP8266
I2C_IIC
WIZnet_W5500
UART
ota在线升级
PWM
cubemx
freemodbus
flash
packages_软件包
BSP
潘多拉开发板_Pandora
定时器
ADC
GD32
flashDB
socket
中断
Debug
编译报错
msh
SFUD
keil_MDK
rt_mq_消息队列_msg_queue
ulog
C++_cpp
at_device
本月问答贡献
踩姑娘的小蘑菇
7
个答案
3
次被采纳
a1012112796
13
个答案
2
次被采纳
张世争
9
个答案
2
次被采纳
rv666
5
个答案
2
次被采纳
用户名由3_15位
11
个答案
1
次被采纳
本月文章贡献
程序员阿伟
8
篇文章
2
次点赞
hhart
3
篇文章
4
次点赞
大龄码农
1
篇文章
4
次点赞
ThinkCode
1
篇文章
1
次点赞
Betrayer
1
篇文章
1
次点赞
回到
顶部
发布
问题
分享
好友
手机
浏览
扫码手机浏览
投诉
建议
回到
底部