Toggle navigation
首页
问答
文章
积分商城
专家
专区
更多专区...
文档中心
返回主站
搜索
提问
会员
中心
登录
注册
SPI
WIZnet_W5500
N32G455使用w5500库初始化失败
发布于 2023-04-13 15:34:43 浏览:469
订阅该版
现在问题是这样的  会有这样报错 ``` [E/wiz] Wiznet chip not detected [E/wiz] RT-Thread WIZnet package (V2.1.0) initialize failed(-1). ``` 然后逻辑分析仪看了一下时序  cs引脚明显一直拉高。 在wiz.c中,需要用户对接`extern 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);`这句话 这里我的实现如下 ```c struct rt_spi_device *spi_device; /* attach the device to spi bus*/ spi_device = (struct rt_spi_device *)rt_malloc(sizeof(struct rt_spi_device)); RT_ASSERT(spi_device != RT_NULL); rt_base_t cs_pin = GET_PIN(A, 15); rt_pin_mode(cs_pin, PIN_MODE_OUTPUT); result = rt_spi_bus_attach_device(spi_device, WIZ_SPI_DEVICE, "spi3", (void*)cs_pin); if (result != RT_EOK) { LOG_E("%s attach to %s faild, %d\n", "spi3", WIZ_SPI_DEVICE, result); } RT_ASSERT(result == RT_EOK); LOG_D("%s attach to %s done", device_name, bus_name); ``` 针对rt_spi_bus_attach_device函数的最后一个参数我个人的理解有限,我照着别的ic源码传入了pin脚,这里好像没有起作用
查看更多
7
个回答
默认排序
按发布时间排序
kirto
2023-04-13
这家伙很懒,什么也没写!
后续进展,目前看了一下  xfer里标注的user_data是struct n32_spi_cs类型,那我改变了之前的注册代码  烧录进去问题还没消失,时序中cs还是没有被拉下来   通过log发现,message->cs_take好像是false,那么如何使用这里的cs_take呢
杨克宁
2023-11-19
这家伙很懒,什么也没写!
我是这样解决的: 在applications目录下(或者目录也可以)创建一个c文件,比如 hw_w5500.c, 把以下代码复制进入 ```c #include "drv_spi.h" // 使用PA6作为CS int w5500_spi_device_init() { /* 以下部分 参考了 STM32CubeMAX产生的代码 /Core/Src/gpio.c 中针对PA6的设置 */ GPIO_InitTypeDef GPIO_Initure; __HAL_RCC_GPIOA_CLK_ENABLE(); GPIO_Initure.Pin = GPIO_PIN_6; GPIO_Initure.Mode = GPIO_MODE_OUTPUT_PP; //推挽输出 GPIO_Initure.Pull = GPIO_PULLUP; //上拉 GPIO_Initure.Speed = GPIO_SPEED_HIGH; //高速 HAL_GPIO_Init(GPIOA, &GPIO_Initure); /* 设置PA6的状态 */ HAL_GPIO_WritePin(GPIOA, GPIO_PIN_6, GPIO_PIN_SET); //---------------- return rt_hw_spi_device_attach("spi2", "spi20", GPIOA, GPIO_PIN_6); } INIT_DEVICE_EXPORT(w5500_spi_device_init); ``` --- 另外: 1、如果wiz.c文件中 “I think you can attach w5500 into spi bus at here”... 之后,如果有添加自己的代码的话,请去掉。刚刚的代码就起到这个作用了; 2、刚刚的代码,假定使用的SPI2,请根据自己实际情况调整。
红枫
认证专家
2023-04-13
这家伙很懒,什么也没写!
CS脚时钟要打开,另外看看引脚需不需要配置重映射。代码如下: ```c RCC_EnableAPB2PeriphClk(RCC_APB2_PERIPH_GPIOA, ENABLE); rt_hw_spi_device_attach("spi1", "spi10", GPIOA, GPIO_PIN_4); ```
YZRD
2023-04-18
这家伙很懒,什么也没写!
裸机使用spi能调通么?
yc961213911
2023-04-18
这家伙很懒
w5500不应该这么难调吧。这个是裸机驱动,没有接入RTT框架,你试试 [w5500.rar](https://club.rt-thread.org/file_download/7490f8a4f23bdac8)
puwanyong
2023-09-01
这家伙很懒,什么也没写!
楼主的问题解决了吗?
梦笑真美
2023-09-26
这家伙很懒,什么也没写!
楼主问题怎么解决的
撰写答案
登录
注册新账号
关注者
1
被浏览
469
关于作者
kirto
这家伙很懒,什么也没写!
提问
2
回答
1
被采纳
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
本月问答贡献
出出啊
1501
个答案
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
次点赞
回到
顶部
发布
问题
分享
好友
手机
浏览
扫码手机浏览
投诉
建议
回到
底部