Toggle navigation
首页
问答
文章
积分商城
专家
专区
更多专区...
文档中心
返回主站
搜索
提问
会员
中心
登录
注册
SPI
MISO
74HC165
SPI无法读取多个引脚电位的问题
发布于 2021-08-23 11:29:05 浏览:983
订阅该版
目前已经成功使用了SPI输出,是可以使用的。但是在SPI接收的时候出现了问题,电路如下: ![1.png](https://oss-club.rt-thread.org/uploads/20210823/277d02ca22bae959c5d0e550b55ec760.png.webp) 目前只能读取到一个输入口MI7,例如如果MI7为高电平,则读取结果为0xff,如果MI7为低电平,则读取结果为0X00,和MI0~MI6的电平没有任何关系。 使用逻辑分析仪的结果也是只有一个脉冲,但是代码用的是文档中的例程,只做了简单修改。如下: ![de377e1d22791e7868b461a2ffff970a.png.webp](https://oss-club.rt-thread.org/uploads/20210823/de377e1d22791e7868b461a2ffff970a.png.webp) ```c include
include
include "drv_spi.h" include "drv_gpio.h" define MI_CS_PIN GET_PIN(3,4) // SPI接收的CS引脚,P304, define RECV_SPI_DEVICE_NAME "spi32" struct rt_spi_device *spi_dev_recv; uint8_t recv = 0; void rt_hw_spi_recv_init_entry(void *parameter) { rt_thread_delay(1); rt_spi_recv(spi_dev_recv,&recv,1); rt_kprintf("spi_recv is 0x%x\n",recv); } void rt_hw_spi_recv_init(void) { rt_thread_t tid_recv; rt_err_t res; res = rt_hw_spi_device_attach("spi3",RECV_SPI_DEVICE_NAME, MI_CS_PIN); /* 绑定输入的CS片选引脚 */ if(res != RT_EOK) { rt_kprintf("spi32 attach failed\n"); } else { rt_kprintf("spi32 attach sucess\n"); } spi_dev_recv = (struct rt_spi_device *)rt_device_find(RECV_SPI_DEVICE_NAME); /* 查找spi设备获取设备句柄 */ if (!spi_dev_recv) { rt_kprintf("spi sample run failed! can't find spi32 device!\n"); } else { /* config spi */ struct rt_spi_configuration cfg; cfg.data_width = 8; cfg.mode = RT_SPI_MASTER | RT_SPI_MODE_0 | RT_SPI_MSB; /* SPI Compatible: Mode 0 and Mode 3 */ cfg.max_hz = 1 * 1000 * 1000; /* 1M */ rt_spi_configure(spi_dev_recv, &cfg); } tid_recv = rt_thread_create("co_cfg", rt_hw_spi_recv_init_entry, RT_NULL, 1024, 21, 10); if (tid_recv != RT_NULL) rt_thread_startup(tid_recv); } INIT_APP_EXPORT(rt_hw_spi_recv_init); ``` 想问一下各位大佬,有没有遇到过这样的问题。
查看更多
StackYuan
认证专家
2021-08-23
这家伙很懒,什么也没写!
问题出在你的SPI_CS逻辑上: 首先74HC165不是严格意义上的SPI设备,应该遵从74芯片的数据手册去看。 ![image.png](https://oss-club.rt-thread.org/uploads/20210823/4d263a8929cc6818660a0a914be0a431.png) 注意荧光标记的地方,如果CS拉低去做移位采集,看看逻辑是不是和你现在的一样。 **故应该按照手册,在CS拉高后采集。** 如果你觉得我的说法正确,请记得采纳此答案!
4
个回答
默认排序
按发布时间排序
aozima
2021-08-23
调网络不抓包,调I2C等时序不上逻辑分析仪,就像电工不用万用表!多用整理的好的文字,比截图更省流量,还能在整理过程中思考。
SPI的CS应该接到第15脚,第1脚单独用个IO来LOAD数据。 - 拉低PL进行load, - 拉高PL停止LOAD,并准备读取。 - CS拉低,按SPI来读取1个字节数据。 - 如果有多个串联,读N个字节即可。 - 拉低CS,结束。
出出啊
2021-08-23
恃人不如自恃,人之为己者不如己之自为也
和其它 spi 设备通信 clk 数没少?其它地方有没有 这个 spi3 的操作?
游走在01的海洋
2021-08-24
In the end, it's not the years in your life that count. It's the life in your years.
具体楼上说的比较清楚,提几点思路: 一、注意芯片74HC165的使用方法:推荐看3楼的解释; 二、先抛开芯片74HC165直接使用,看输入输出是否正常,如果方便可以使用软件、硬件的方式一起查看;之后再根据芯片74HC165的使用方法来实现你想要的功能;
撰写答案
登录
注册新账号
关注者
0
被浏览
983
关于作者
小啊小林宝
这家伙很懒,什么也没写!
提问
8
回答
6
被采纳
1
关注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
RTduino物联网应用零基础入门
2
TinyUSB Demo运行教程
3
RT-Thread学习大礼包一键带走!
4
freemodbus从机调试说明
5
【1024】瑞萨 RA 系列 BSP 制作与适配最新版本的 Keil 、 RSC、固件,较新的 FSP
热门标签
RT-Thread Studio
串口
Env
LWIP
SPI
AT
Bootloader
Hardfault
CAN总线
ART-Pi
FinSH
USB
DMA
文件系统
RT-Thread
SCons
RT-Thread Nano
线程
MQTT
STM32
RTC
FAL
rt-smart
ESP8266
I2C_IIC
WIZnet_W5500
ota在线升级
UART
cubemx
PWM
flash
packages_软件包
freemodbus
BSP
潘多拉开发板_Pandora
定时器
ADC
GD32
flashDB
socket
中断
Debug
编译报错
msh
SFUD
rt_mq_消息队列_msg_queue
keil_MDK
ulog
C++_cpp
at_device
本月问答贡献
张世争
8
个答案
2
次被采纳
踩姑娘的小蘑菇
4
个答案
2
次被采纳
用户名由3_15位
11
个答案
1
次被采纳
KunYi
5
个答案
1
次被采纳
rv666
2
个答案
1
次被采纳
本月文章贡献
出出啊
1
篇文章
2
次点赞
小小李sunny
1
篇文章
1
次点赞
张世争
1
篇文章
4
次点赞
crystal266
2
篇文章
2
次点赞
whj467467222
2
篇文章
1
次点赞
回到
顶部
发布
问题
分享
好友
手机
浏览
扫码手机浏览
投诉
建议
回到
底部