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

stm32f103rbt6的SPI通信

[复制链接]
watercici 提问时间:2018-4-12 20:57 /
我想问两个问题:
1:SPI1,SPI2,SP3都是对应IO口的复用功能,是不是IO定了就只能选IO复用功能对应的那个SPI?
         我现在选的是PB13\PB14\PB15分别是SCK\MISO\MOSI,那我应该选哪个SPI呢?
2:我现在选的是SPI2,我的SPI通信,没有时钟,和数据输出,我用的是我之前调好的程序,就是换了板子就不行了?
收藏 评论16 发布时间:2018-4-12 20:57

举报

16个回答
大陶 回答时间:2018-4-13 11:55:24
选的是PB13\PB14\PB15分别是SCK\MISO\MOSI,应该是SPI1
SPI1的复用端口是
GPIO_InitStructure.GPIO_Pin=GPIO_Pin_13|GPIO_Pin_15;
GPIO_InitStructure.GPIO_Mode=GPIO_Mode_AF_PP;
GPIO_InitStructure.GPIO_Speed=GPIO_Speed_10MHz;
GPIO_Init(GPIOB,&GPIO_InitStructure);

GPIO_InitStructure.GPIO_Pin = GPIO_Pin_14;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;  
GPIO_Init(GPIOB, &GPIO_InitStructure);  
       
GPIO_InitStructure.GPIO_Pin=GPIO_Pin_12;//这个是片选线
GPIO_InitStructure.GPIO_Speed=GPIO_Speed_10MHz;
GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP;
GPIO_Init(GPIOB,&GPIO_InitStructure);

换板子不能用的原因你先查一下硬件,再看一下SPI的最大速度是多少,

评分

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

查看全部评分

watercici 回答时间:2018-4-13 09:29:35
wudianjun2001 发表于 2018-4-13 08:21
找个官方的例程修改,然后用示波器看波形

您好,我还想问一下,SPI通信中初始化完成之后,到底用不用发送0xff来启动数据传输,还有就是初始化的时候我将片选信号置为无效,之后读写的时候才将片选信号拉低,那么如果用写0xFF来启动传输的话,这句是写在初始化中,还是写在每次读写时片选信号拉低之后呢?
watercici 回答时间:2018-4-13 11:58:30
dataozi 发表于 2018-4-13 11:55
选的是PB13\PB14\PB15分别是SCK\MISO\MOSI,应该是SPI1
SPI1的复用端口是
GPIO_InitStructure.GPIO_Pin=GPI ...

等等,可是上面有人回复的是SPI2的复用啊,我用的芯片是STM32F103RBT的,到底是SPI1还是SPI2呢?
Angel_YY_ST 回答时间:2018-4-12 21:29:59
提示: 作者被禁止或删除 内容自动屏蔽
feixiang20 回答时间:2018-4-13 01:39:58
估计是硬件问题,你重新换个板子重新设置参数看看呢,可以去查阅STM32F103的SPI通讯例程及详解等帖子作参考

评分

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

查看全部评分

wudianjun2001 回答时间:2018-4-13 08:21:57
找个官方的例程修改,然后用示波器看波形

评分

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

查看全部评分

watercici 回答时间:2018-4-13 08:29:28
Angel_YY 发表于 2018-4-12 21:29
PB13\PB14\PB15对应的SPI2
换了板子就不行了,如果确定程序没问题,就要考虑硬件问题了,不过我依然怀疑是 ...

好的,谢谢,我再看看程序。
watercici 回答时间:2018-4-13 08:29:47
feixiang20 发表于 2018-4-13 01:39
估计是硬件问题,你重新换个板子重新设置参数看看呢,可以去查阅STM32F103的SPI通讯例程及详解等帖子作参考 ...

好的,谢谢
watercici 回答时间:2018-4-13 08:30:09
wudianjun2001 发表于 2018-4-13 08:21
找个官方的例程修改,然后用示波器看波形

我找找看
大陶 回答时间:2018-4-13 13:15:59
watercici 发表于 2018-4-13 11:58
等等,可是上面有人回复的是SPI2的复用啊,我用的芯片是STM32F103RBT的,到底是SPI1还是SPI2呢? ...

我写错了 SPI2 打错字了
watercici 回答时间:2018-4-13 13:44:29
dataozi 发表于 2018-4-13 13:15
我写错了 SPI2 打错字了

哦,没事。
wei1234 回答时间:2018-5-14 20:03:52
io定义有问题吧,都是复用口那就都要定义成af模式

评分

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

查看全部评分

小舟飞龙 回答时间:2018-5-14 23:45:07
很好!!!!!!!!!!!!!!!
小舟飞龙 回答时间:2018-5-14 23:45:42
进来学习学习

评分

参与人数 1ST金币 -1 收起 理由
zero99 -1 不要在求助帖灌水

查看全部评分

12下一页

所属标签

相似问题

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