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

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管理
行使您的权利
官方最新发布
STM32Cube扩展软件包
意法半导体边缘AI套件
ST - 理想汽车豪华SUV案例
ST意法半导体智能家居案例
STM32 ARM Cortex 32位微控制器
关注我们
st-img 微信公众号
st-img 手机版