SPI

5 SPI1读写w25q64失败报错

发布于 2020-07-17 17:19:46

按照官网文档使用SPI设备(SPI1)访问W25Q64,spi初始化、rt_device_find皆无问题,但是到了读ID时也就是rt_spi_send_then_recv(spi_dev_w25q, &w25x_read_id, 1, id, 5);或者rt_spi_transfer_message(spi_dev_w25q, &msg1);就报错了,跟踪到报错地方为里面的result = rt_mutex_take(&(device->bus->lock), RT_WAITING_FOREVER);里面的RT_ASSERT(rt_object_get_type(&mutex->parent.parent) == RT_Object_Class_Mutex);说是传入的对象不是互斥信号量类型的,但是我跟踪了一下device->bus->lock就是rt_mutex(互斥信号量)为什么会报这个错呢?c8af80742a47bd76df7d093b0091ca07.jpg
d56374033e0d829f7a8755109ec2145b.jpg
9007e0c31ddd20fb4b20454cfc41e484.jpg
4bb8916ab406b722df5f5647dc987a28.jpg
3885dd3368908446e86cac1e9a49cda4.jpg
9ee180b51f60a1037e81215a98d5fb4f.jpg

查看更多

关注者
0
被浏览
260
4 个回答
JQRR_7669
JQRR_7669 认证专家 2020-07-17

spi_w25q_sample命令后面带上参数-你的设备名称,试试

fhqmcu
fhqmcu 认证专家 2020-07-17

程序其他地方有内存泄露,意外修改了这个信号量的数据空间

pkokoc
pkokoc 2020-07-18

SPI和QSPI是不同的,STM32F103RCT6只有SPI,看下是否选错了。设备名应类似spi10

dingzijie
dingzijie 2020-07-24

这步做了吗?rt_hw_spi_device_attach

撰写答案

请登录后再发布答案,点击登录

发布
问题

分享
好友