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

STM32 F030 SPI

[复制链接]
wenzh00808ongzi 提问时间:2014-12-15 09:31 /
阅读主题, 点击返回1楼
收藏 评论18 发布时间:2014-12-15 09:31
18个回答
wxh0000mm 回答时间:2014-12-17 08:57:57
用示波器看看你的管脚信号对不对!
wenzh00808ongzi 回答时间:2014-12-17 11:10:14
Dylan疾风闪电 发表于 2014-12-16 18:22
读不到数据的时候,检查一下这些因素:
1.从设备的时序:SPI_CPOL 和 SPI_CPHA。
2.通讯速率,有的时候需要 ...

从设备的时序图已经贴上,sclk波形正常,miso.mosi没有波形。是不是spi配置有什么问题?但是实在是找不出哪里有问题?附带原理图。

stm32f030

stm32f030
回答时间:2014-12-17 11:24:59
总线上有数据在发送吗?SPI接收不到?
Dylan疾风闪电 回答时间:2014-12-17 16:08:30
主模式的情况下,GPIO端口的配置如下:
SPIx_SCK    推挽复用输出
SPIx_MOSI  推挽复用输出
SPIx_MISO  浮空输入或带上拉输入
-----------------------------------------------------------
你的MOSI引脚没波形,那么配置或者硬件肯定存在问题的。再怎么说,SCK和MOSI都是由MCU主控的。
Dylan疾风闪电 回答时间:2014-12-19 08:21:47
本帖最后由 Dylan疾风闪电 于 2014-12-19 08:27 编辑

/*附上GPIO配置,仅作参考。SPLIT_DEFINE_PIN、SPLIT_DEFINE_PORT、SetAF_SPI1_SCK是宏定义,等效于类似GPIO_Pin_5、GPIOA、GPIO_PinAFConfig(..,..)不用深入。*/

  1. //SPIx_SCK 主模式 推挽复用输出
  2.         //SPIx_MOSI 全双工模式/主模式 推挽复用输出
  3.         //SPIx_MISO 全双工模式/主模式 浮空输入或带上拉输入
  4.         GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF;
  5.         GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
  6.         GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
  7.         GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL;
  8.         GPIO_InitStructure.GPIO_Pin = SPLIT_DEFINE_PIN(X2_CLK);
  9.         GPIO_Init(SPLIT_DEFINE_PORT(X2_CLK), &GPIO_InitStructure);
  10.         SetAF_SPI1_SCK;
  11.        
  12.         GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF;
  13.         GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
  14.         GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
  15.         GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL;
  16.         GPIO_InitStructure.GPIO_Pin = SPLIT_DEFINE_PIN(X2_SDI);
  17.         GPIO_Init(SPLIT_DEFINE_PORT(X2_SDI), &GPIO_InitStructure);
  18.         SetAF_SPI1_MOSI;

  19.         GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF;
  20.         GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
  21.         GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
  22.         GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;
  23.         GPIO_InitStructure.GPIO_Pin = SPLIT_DEFINE_PIN(X2_SDO);
  24.         GPIO_Init(SPLIT_DEFINE_PORT(X2_SDO), &GPIO_InitStructure);
  25.         SetAF_SPI1_MISO;
复制代码


wenzh00808ongzi 回答时间:2014-12-19 18:29:57
Dylan疾风闪电 发表于 2014-12-19 08:21
/*附上GPIO配置,仅作参考。SPLIT_DEFINE_PIN、SPLIT_DEFINE_PORT、SetAF_SPI1_SCK[/backcolor ...

我忽然发现我spi配置的是正确的,我用逻辑分析仪发送数据已经读出,从设备就是没有回应,连clk都没有,我再研究研究,电路图,芯片数据手册。
Dylan疾风闪电 回答时间:2014-12-20 09:31:54
spi_clk是主设备产生的。从设备只会在spi_miso这一个引脚输出信号。
奔跑小蜗牛 回答时间:2014-12-20 09:59:58
读数据是从设备往主设备发数据,从设备操作总线,你是不是引脚状态没有配置好,stm32一直占用着总线,或者推挽输出,导致从设备不能正常的拉低拉高总线,那stm32就读不到数据了。找个示波器或者逻辑分析仪跟踪下通讯波形,不就一目了然了
wenzh00808ongzi 回答时间:2014-12-29 09:35:33
奔跑小蜗牛 发表于 2014-12-20 09:59
读数据是从设备往主设备发数据,从设备操作总线,你是不是引脚状态没有配置好,stm32一直占用着总线,或者 ...

最近比较忙,居然忘了,我又发现一个问题,就是spi只能第二次能读取到数据,其余全是0,但是波形上是能看到数据的 ,这个是为何?
12
关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版