你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

STM32F103的SPI模式

[复制链接]
lunar-412568 提问时间:2020-7-16 16:49 /

STM32F103连一个ADC芯片,此芯片时序如下图。
一开始用了全双工模式SPI_Direction_2Lines_FullDuplex,调试发现执行了发送和接收函数后,只实现了发送,没有接收。即图中红框内部分,后面接收部分连时钟信号都不产生。
然后又尝试SPI_Direction_2Lines_RxOnly,连发送信号都不输出了。
难道是发送和接收要分成两步,用两种模式实现?
连接.jpg

ADC芯片时序

ADC芯片时序

<
收藏 评论10 发布时间:2020-7-16 16:49

举报

10个回答
tgw860910 回答时间:2020-7-17 09:35:25
SPI是同步收发的,你要收数据必须要同时发数据,即使是发一串无意义的数据也行;
我猜你这个芯片应该是主机先发一串命令,然后ADC芯片才能把你想要的数据返回,这时候你应该再继续发一串FF FF FF FF ....

评分

参与人数 1蝴蝶豆 +3 收起 理由
STMCU + 3

查看全部评分

damiaa 回答时间:2020-7-17 10:15:41
SPI_Direction_2Lines_FullDuplex,收发
SPI_Direction_2Lines_RxOnly 只收了。

评分

参与人数 1蝴蝶豆 +2 收起 理由
STMCU + 2

查看全部评分

hjl2832 回答时间:2020-7-17 11:08:52
肯定是双工的了,你确定你的接收IO配置正确了吗?SPI收和发是2个独立的IO,并不会互相影响。只要有时钟,就会传输数据。

评分

参与人数 1蝴蝶豆 +2 收起 理由
STMCU + 2

查看全部评分

hjl2832 回答时间:2020-7-17 11:09:44
hjl2832 发表于 2020-7-17 11:08
肯定是双工的了,你确定你的接收IO配置正确了吗?SPI收和发是2个独立的IO,并不会互相影响。只要有时钟,就 ...

注意SPI下 ,IO 是工作在复用模式。
陌路夕颜 回答时间:2020-7-17 12:14:52
把软件配置部分源码贴出来有助于分析问题,或者直接用别人现成的驱动

评分

参与人数 1蝴蝶豆 +2 收起 理由
STMCU + 2

查看全部评分

lunar-412568 回答时间:2020-7-17 13:23:18
tgw860910 发表于 2020-7-17 09:35
SPI是同步收发的,你要收数据必须要同时发数据,即使是发一串无意义的数据也行;
我猜你这个芯片应该是主机 ...

对的,收发执行两次即可,第二次可以收到数据。
ts2000 回答时间:2020-7-17 14:30:06
spi的发送和接收是同步的,发送完成,就相当于接收完成。

评分

参与人数 1蝴蝶豆 +2 收起 理由
STMCU + 2

查看全部评分

dataozi 回答时间:2020-7-17 15:30:39
最好把这一块的代码发出来,SPI全双工,发的时候也是收的时候,看一下 MOSI和MOSI的配置。

评分

参与人数 1蝴蝶豆 +2 收起 理由
STMCU + 2

查看全部评分

butterflyspring 回答时间:2020-7-27 17:38:04
作为SOI的从设备是没有主动发送数据的能力,必须依靠主设备的时钟。所以主发送命令时,从可能没有准备好数据,所以下一次准备好后,主再发数据时就能收到信息了

评分

参与人数 1蝴蝶豆 +2 收起 理由
STMCU + 2

查看全部评分

12下一页

所属标签

相似问题

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版